はじめに
Hadoop分散ファイルシステム (HDFS) は、Hadoopエコシステムの重要なコンポーネントであり、ビッグデータアプリケーションに対して信頼性が高く拡張性のあるストレージソリューションを提供します。このチュートリアルでは、HDFSにファイルを作成してアップロードするプロセスを案内し、Hadoop環境内でデータを効果的に管理できるようにします。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
Hadoop分散ファイルシステム (HDFS) は、Hadoopエコシステムの重要なコンポーネントであり、ビッグデータアプリケーションに対して信頼性が高く拡張性のあるストレージソリューションを提供します。このチュートリアルでは、HDFSにファイルを作成してアップロードするプロセスを案内し、Hadoop環境内でデータを効果的に管理できるようにします。
Hadoop分散ファイルシステム (HDFS) は、汎用ハードウェアのクラスタ全体にわたって大規模なデータセットを格納および処理するように設計された分散ファイルシステムです。これはApache Hadoopエコシステムの核心的なコンポーネントであり、ビッグデータアプリケーションで広く使用されています。
HDFSは、アプリケーションデータへの高スループットなアクセスを提供する、高い耐障害性と拡張性を持つファイルシステムです。低コストのハードウェア上で動作するように設計されており、大規模なデータセットの格納と処理を扱うことができます。HDFSはマスター・スレーブアーキテクチャに従っており、マスターノードはNameNodeと呼ばれ、スレーブノードはDataNodeと呼ばれます。
HDFSアーキテクチャは以下の主要なコンポーネントで構成されています。
HDFSは、以下を含むさまざまなビッグデータアプリケーションで広く使用されています。
HDFSでファイルを作成するには、Hadoopコマンドラインインターフェイス (CLI) またはHDFS Java APIを使用できます。このセクションでは、Hadoop CLIを使用してHDFSでファイルを作成する方法を説明します。
HDFSでファイルを作成する前に、実行中のHadoopクラスタが必要であり、ファイルシステムとやり取りするための必要な権限を持っている必要があります。システムにHadoop CLIがインストールされ、設定されていることを確認してください。
sudo service hadoop-namenode start
sudo service hadoop-datanode start
hdfs dfs
コマンドを使用してHDFSでファイルを作成します。基本的な構文は次のとおりです。hdfs dfs -put <local_file_path> <hdfs_file_path>
ここで、<local_file_path>
はローカルシステム上のファイルのパスで、<hdfs_file_path>
はHDFSでファイルを作成したいパスです。
たとえば、HDFSの /user/username/
ディレクトリに example.txt
という名前のファイルを作成するには、次のコマンドを実行します。
hdfs dfs -put /path/to/local/example.txt /user/username/example.txt
hdfs dfs -ls /user/username/
これにより、/user/username/
ディレクトリ内のファイルとディレクトリが一覧表示され、新しく作成された example.txt
ファイルも含まれます。
あるいは、HDFS Java APIを使用してプログラムでHDFSにファイルを作成することもできます。以下はサンプルのJavaコードスニペットです。
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
import java.net.URI;
public class CreateFileInHDFS {
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create("hdfs://namenode:8020"), conf);
Path filePath = new Path("/user/username/example.txt");
fs.create(filePath).close();
System.out.println("File created in HDFS: " + filePath);
}
}
この例では、HDFSクラスタの /user/username/
ディレクトリに example.txt
という名前の新しいファイルを作成しています。
HDFSでファイルを作成した後、次のステップはそのファイルをHDFSクラスタにアップロードすることです。Hadoop CLIまたはHDFS Java APIを使用して、ファイルをHDFSにアップロードすることができます。このセクションでは、両方の方法を説明します。
sudo service hadoop-namenode start
sudo service hadoop-datanode start
hdfs dfs
コマンドを使用して、ファイルをHDFSにアップロードします。基本的な構文は次のとおりです。hdfs dfs -put <local_file_path> <hdfs_file_path>
ここで、<local_file_path>
はローカルシステム上のファイルのパスで、<hdfs_file_path>
はHDFS内でファイルをアップロードしたいパスです。
たとえば、ローカルシステム上の example.txt
という名前のファイルをHDFSの /user/username/
ディレクトリにアップロードするには、次のコマンドを実行します。
hdfs dfs -put /path/to/local/example.txt /user/username/example.txt
hdfs dfs -ls /user/username/
これにより、/user/username/
ディレクトリ内のファイルとディレクトリが一覧表示され、アップロードされた example.txt
ファイルも含まれます。
あるいは、HDFS Java APIを使用してプログラムでファイルをHDFSにアップロードすることもできます。以下はサンプルのJavaコードスニペットです。
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
import java.net.URI;
public class UploadFileToHDFS {
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create("hdfs://namenode:8020"), conf);
Path localFilePath = new Path("/path/to/local/example.txt");
Path hdfsFilePath = new Path("/user/username/example.txt");
fs.copyFromLocalFile(localFilePath, hdfsFilePath);
System.out.println("File uploaded to HDFS: " + hdfsFilePath);
}
}
この例では、ローカルシステム上の example.txt
ファイルをHDFSクラスタの /user/username/
ディレクトリにアップロードしています。
このHadoopチュートリアルで概説された手順に従うことで、Hadoop分散ファイルシステム (HDFS) にファイルを作成してアップロードする方法を学ぶことができます。この知識により、Hadoopベースのアプリケーション内でデータを効率的に格納し、アクセスすることが可能になり、Hadoopエコシステムの全ての可能性を引き出すことができます。