Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 使用Google数据流从GCS文件读取序列_Hadoop_Hadoop2_Google Cloud Dataflow_Sequencefile - Fatal编程技术网

Hadoop 使用Google数据流从GCS文件读取序列

Hadoop 使用Google数据流从GCS文件读取序列,hadoop,hadoop2,google-cloud-dataflow,sequencefile,Hadoop,Hadoop2,Google Cloud Dataflow,Sequencefile,我们正在尝试使用GoogleDataflowSDK将保存为序列文件的数据加载到BQ中 在入口点,我们尝试使用以下代码将数据读入管道 Read.Bounded<KV<LongWritable, BytesWritable>> resuls = HadoopFileSource.readFrom("gs://raw-data/topic-name/dt=2017-02-28/1_0_00000000002956516884.gz", org.a

我们正在尝试使用GoogleDataflowSDK将保存为序列文件的数据加载到BQ中

在入口点,我们尝试使用以下代码将数据读入管道

    Read.Bounded<KV<LongWritable, BytesWritable>> resuls = HadoopFileSource.readFrom("gs://raw-data/topic-name/dt=2017-02-28/1_0_00000000002956516884.gz",
            org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat.class, LongWritable.class, BytesWritable.class);
Read.Bounded results=HadoopFileSource.readFrom(“gs://raw data/topic name/dt=2017-02-28/1_0_00000000002956516884.gz”,
org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat.class、LongWritable.class、BytesWritable.class);
[1]我们正在使用“gcs连接器”来启用hadoop概念

[2]hadoop文件源来自com.google.cloud.dataflow.contrib.hadoop

我们的core-sites.xml文件如下所示:

<configuration>
<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>

fs.gs.impl
com.google.cloud.hadoop.fs.gcs.googlehadoop文件系统
gs:(GCS)URI的文件系统。
fs.AbstractFileSystem.gs.impl
com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS
gs:(GCS)URI的抽象文件系统。仅适用于Hadoop 2。

但是我们不断得到“java.net.UnknownHostException:metadata”

i event将GOOGLE_APPLICATION_CREDENTIALS=“/path/to/key.json”添加到环境变量中,但我们仍然得到相同的异常

只需要简单的方式读取序列文件到谷歌数据流管道 来自地面军事系统

非常感谢你的帮助

谢谢,
Avi

不太清楚从何处获得异常,也不清楚这与应用程序凭据的关系。还不完全清楚您是如何将
HadoopFileSource
与您的pipelien一起使用的--您可以包含更多的源代码吗?谢谢@BenChambers。我在代码中解决了这个错误,并能够在添加到core-site.xml后从gs://读取相关凭据。但是,当使用--runner=BlockingDataflowPipelineRunner运行此代码时,我现在得到的是java.lang.NoClassDefFoundError:com/google/api/client/util/BackOff(我从google日志中附加了我的源代码和printscreen)这个错误看起来像是一个依赖性问题。检查您是否正在使用SDK的最新版本以及任何依赖项的匹配版本,如中所列