GCS コネクタを使用して Google Cloud Storage for Hadoop 2.3.0 を使用しています。
Hadoop インストールの lib ディレクトリに GCS.jar を追加し、次のhadoop-env.sh
ファイルに GCS コネクタへのパスを追加しました。
export HADOOP_CLASSPATH=${HADOOP_CLASSPATH:"/share/hadoop/common/lib/gcs_connector"}
core-site.xml
また、Hadoop インストールのファイルを次のように変更しました。
<property>
<name>fs.defaultFS</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
<property>
<name>fs.gs.impl</name>
<value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem</value>
<description>The FileSystem for gs: (GCS) uris.</description>
</property>
<property>
<name>fs.AbstractFileSystem.gs.impl</name>
<value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS</value>
<description>The AbstractFileSystem for gs: (GCS) uris. Only necessary for use with Hadoop 2.
</description>
</property>
<property>
<name>fs.gs.impl</name>
<value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem</value>
</property>
<property>
<name>fs.gs.project.id</name>
<value>1113</value>
</property>
<property>
<name>fs.gs.system.bucket</name>
<value>hadoop1</value>
</property>
<property>
<name>fs.gs.working.dir</name>
<value>/</value>
</property>
<property>
<name>fs.gs.auth.service.account.enable</name>
<value>true</value>
</property>
<property>
<name>fs.gs.auth.service.account.email</name>
<value>7168543aovnjqaf1e7sumil@developer.gserviceaccount.com</value>
</property>
<property>
<name>fs.gs.auth.service.account.keyfile</name>
<value>C://hadoop-2.3.0/etc/hadoop/gcskey.p12</value>
</property>
<property>
<name>fs.gs.auth.client.id</name>
<value>7168543aovnjqaf1e7sumil.apps.googleusercontent.com</value>
</property>
作成したプロジェクトの請求先アカウントも有効になっています。
バケットを作成しました。バケットの内容は、次を使用して表示できます。
hadoop fs -ls gs://hadoop1
Hadoop のマスター ノードとワーカー ノードの Hadoop クリック デプロイ オプションを試してみたところ、VM インスタンスが作成されました。
認証ログイン用に gcloud をインストールしました。Git リポジトリも作成されます。
Google に投稿された MapReduce の記事に従っていましたが、完全なガイダンスには役立ちません。
質問: クラウド上にデプロイされた Hadoop を使用して、Java で開発された MapReduce プログラムを実行したいですか? プログラムで入力ファイルと出力ファイルにどのパスを指定すればよいですか?
私のプログラムは、私のシステムの Hadoop プラットフォームでうまく動作しています。