我正在使用 GCS 连接器使用 Google Cloud Storage for Hadoop 2.3.0。
我已将 GCS.jar 添加到我的 hadoop 安装的 lib 目录中,并在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 和 VM 实例创建主节点和工作节点的 Hadoop click-to-deploy 选项。
我已经安装了 gcloud 以进行身份验证登录。还创建了 Git 存储库。
我关注了 Google 上发布的 MapReduce 文章,但它对完整的指导没有帮助。
问题:我想使用部署在云上的 Hadoop 运行用 Java 开发的 MapReduce 程序?我在我的程序中为输入和输出文件提供什么路径?
我的程序在我系统上的 Hadoop 平台上运行良好。