标签: google-hadoop

通过Hadoop输入格式示例的pyspark的BigQuery连接器

我有一个存储在BigQuery表中的大型数据集,我想将其加载到pypark RDD中以进行ETL数据处理.

我意识到BigQuery支持Hadoop输入/输出格式

https://cloud.google.com/hadoop/writing-with-bigquery-connector

并且pyspark应该能够使用此接口以使用方法"newAPIHadoopRDD"创建RDD.

http://spark.apache.org/docs/latest/api/python/pyspark.html

不幸的是,两端的文档似乎很少,超出了我对Hadoop/Spark/BigQuery的了解.是否有人知道如何做到这一点?

google-bigquery apache-spark google-hadoop pyspark google-cloud-dataproc

10
推荐指数
1
解决办法
1404
查看次数

在本地运行spark作业时“没有用于Scheme的文件系统:gs”

我正在运行Spark作业(版本1.2.0),输入的内容是Google Clous存储桶中的文件夹(例如gs:// mybucket / folder)

在Mac机器上本地运行作业时,出现以下错误:

5932 [main]错误com.doit.customer.dataconverter.Phase1-日期作业:2014_09_23失败,错误:方案的无文件系统:gs

我知道要支持gs路径,需要做2件事。一种是安装GCS连接器,另一种是在Hadoop安装的core-site.xml中进行以下设置:

<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>
Run Code Online (Sandbox Code Playgroud)

我认为我的问题来自这样一个事实,即我不确定在此本地模式下确切需要在哪里配置每个组件。在Intellij项目中,我正在使用Maven,因此我按以下方式导入了spark库:

<dependency> <!-- Spark dependency -->
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.10</artifactId>
    <version>1.2.0</version>
    <exclusions>
        <exclusion>  <!-- declare the exclusion here -->
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
        </exclusion>
    </exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)

和Hadoop 1.2.1,如下所示:

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>1.2.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

问题是,我不确定为Spark配置hadoop的位置,以及配置hadoop conf的位置。因此,我可能添加了错误的Hadoop安装。另外,修改文件后是否需要重新启动?据我所知,我的机器上没有运行Hadoop服务。

hadoop google-cloud-storage apache-spark google-hadoop google-cloud-dataproc

7
推荐指数
2
解决办法
6000
查看次数

以高效的方式从BigQuery读入Spark?

当使用BigQuery Connector从BigQuery读取数据时,我发现它首先将所有数据复制到Google云端存储.然后将这些数据并行读入Spark,但是在读取大表时,复制数据阶段需要很长时间.那么有更有效的方法将数据从BigQuery读入Spark吗?

另一个问题:从BigQuery读取由2个阶段组成(复制到GCS,从GCS并行读取).复制阶段受Spark群集大小影响还是需要固定时间?

google-bigquery apache-spark google-hadoop google-cloud-dataproc

6
推荐指数
2
解决办法
3384
查看次数

如何管理冲突的DataProc Guava,Protobuf和GRPC依赖项

我正在执行scala Spark作业,该作业需要使用Java库(youtube / vitess),该库依赖于比DataProc 1.1当前提供的GRPC(1.01),Guava(19.0)和Protobuf(3.0.0)更高的版本。图片。

当在本地运行项目并使用maven进行构建时,将加载这些依赖项的正确版本,作业将无问题运行。将作业提交给DataProc时,首选这些库的DataProc版本,并且该作业将引用无法解析的类函数。

在DataProc上提交Spark作业时,如何确保加载正确版本的依赖项依赖关系的推荐方法是什么?我无法重写此库的组件,以使用DataProc提供的这些软件包的旧版本。

apache-spark google-hadoop google-cloud-dataproc vitess

5
推荐指数
1
解决办法
724
查看次数

将50TB数据从本地Hadoop集群迁移到Google云存储

我正在尝试将我的Hadoop集群中的现有数据(JSON)迁移到Google云端存储.

我已经探索过GSUtil,它似乎是将大数据集移动到GCS的推荐选项.它似乎可以处理庞大的数据集.虽然GSUtil似乎只能将数据从本地机器移动到GCS或S3 < - > GCS,但是无法从本地Hadoop集群移动数据.

  1. 将数据从本地Hadoop集群移动到GCS的推荐方法是什么?

  2. 对于GSUtil,它可以直接将数据从本地Hadoop集群(HDFS)移动到GCS,还是首先需要在运行GSUtil的机器上复制文件然后转移到GCS?

  3. 使用Google客户端(Java API)库与GSUtil的优缺点是什么?

非常感谢,

google-api google-api-java-client google-hadoop

5
推荐指数
1
解决办法
5945
查看次数

从Hadoop访问只读Google存储桶

我正在尝试使用该bdutil脚本从部署在Google Cloud中的Hadoop群集访问Google Storage存储桶.如果存储桶访问是只读的,则会失败.

我在做什么:

  1. 使用部署集群

    bdutil deploy -e datastore_env.sh
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在主人:

    vgorelik@vgorelik-hadoop-m:~$ hadoop fs -ls gs://pgp-harvard-data-public 2>&1 | head -10
    14/08/14 14:34:21 INFO gcs.GoogleHadoopFileSystemBase: GHFS version: 1.2.8-hadoop1
    14/08/14 14:34:25 WARN gcsio.GoogleCloudStorage: Repairing batch of 174 missing directories.
    14/08/14 14:34:26 ERROR gcsio.GoogleCloudStorage: Failed to repair some missing directories.
    java.io.IOException: Multiple IOExceptions.
    java.io.IOException: Multiple IOExceptions.
        at com.google.cloud.hadoop.gcsio.GoogleCloudStorageExceptions.createCompositeException(GoogleCloudStorageExceptions.java:61)
        at com.google.cloud.hadoop.gcsio.GoogleCloudStorageImpl.createEmptyObjects(GoogleCloudStorageImpl.java:361)
        at com.google.cloud.hadoop.gcsio.GoogleCloudStorageImpl.createEmptyObjects(GoogleCloudStorageImpl.java:372)
        at com.google.cloud.hadoop.gcsio.GoogleCloudStorageImpl.listObjectInfo(GoogleCloudStorageImpl.java:914)
        at com.google.cloud.hadoop.gcsio.CacheSupplementedGoogleCloudStorage.listObjectInfo(CacheSupplementedGoogleCloudStorage.java:455)
    
    Run Code Online (Sandbox Code Playgroud)

看看GCS Java源代码,似乎Google Cloud Storage Connector for Hadoop需要空的"目录"对象,如果存储桶是可写的,它可以自己创建; 否则就失败了.设置fs.gs.implicit.dir.repair.enable=false会导致"错误检索对象"错误.

是否有可能以某种方式使用只读桶作为MR作业输入?

gsutil用于文件上传.可以强制在文件上传时创建这些空对象吗?

hadoop google-cloud-storage gsutil google-cloud-platform google-hadoop

5
推荐指数
1
解决办法
1366
查看次数

Hadoop无法连接到Google云端存储

我正在尝试将在Google Cloud VM上运行的Hadoop连接到Google云端存储.我有:

  • 修改core-site.xml以包含fs.gs.impl和fs.AbstractFileSystem.gs.impl的属性
  • 在生成的hadoop-env.sh中下载并引用了gcs-connector-latest-hadoop2.jar
  • 通过gcloud auth登录使用我的个人帐户(而不是服务帐户)进行身份验证.

我可以运行gsutil -ls gs:// mybucket /但没有任何问题,但是当我执行时

hadoop fs -ls gs:// mybucket /

我得到输出:

14/09/30 23:29:31 INFO gcs.GoogleHadoopFileSystemBase: GHFS version: 1.2.9-hadoop2 

ls: Error getting access token from metadata server at: http://metadata/computeMetadata/v1/instance/service-accounts/default/token
Run Code Online (Sandbox Code Playgroud)

想知道我缺少哪些步骤让Hadoop能够看到Google存储?

谢谢!

google-app-engine hadoop google-cloud-storage google-hadoop

5
推荐指数
1
解决办法
2522
查看次数

如何在Google Compute Engine的hadoop集群上启用Snappy/Snappy Codec

我正在尝试在Google Compute引擎上运行Hadoop Job来对抗我们的压缩数据,该数据位于Google云端存储上.在尝试通过SequenceFileInputFormat读取数据时,我得到以下异常:

hadoop@hadoop-m:/home/salikeeno$ hadoop jar ${JAR} ${PROJECT} ${OUTPUT_TABLE}
14/08/21 19:56:00 INFO jaws.JawsApp: Using export bucket 'askbuckerthroughhadoop' as specified in 'mapred.bq.gcs.bucket'
14/08/21 19:56:00 INFO bigquery.BigQueryConfiguration: Using specified project-id 'regal-campaign-641' for output
14/08/21 19:56:00 INFO gcs.GoogleHadoopFileSystemBase: GHFS version: 1.2.8-hadoop1
14/08/21 19:56:01 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
14/08/21 19:56:03 INFO input.FileInputFormat: Total input paths to process : 1
14/08/21 19:56:09 INFO mapred.JobClient: Running job: job_201408211943_0002
14/08/21 19:56:10 INFO mapred.JobClient:  map 0% reduce …
Run Code Online (Sandbox Code Playgroud)

google-api google-api-java-client google-compute-engine snappy google-hadoop

2
推荐指数
1
解决办法
4790
查看次数

使用 globStatus 和 Google Cloud Storage 存储桶作为输入时无法运行 Spark 作业

我正在使用 Spark 1.1。我有一个 Spark 作业,它只在存储桶下寻找特定模式的文件夹(即以...开头的文件夹),并且应该只处理那些。我通过执行以下操作来实现这一点:

FileSystem fs = FileSystem.get(new Configuration(true));
FileStatus[] statusArr = fs.globStatus(new Path(inputPath));
List<FileStatus> statusList = Arrays.asList(statusArr);

List<String> pathsStr = convertFileStatusToPath(statusList);

JavaRDD<String> paths = sc.parallelize(pathsStr);
Run Code Online (Sandbox Code Playgroud)

但是,在 Google Cloud Storage 路径上运行此作业时:gs://rsync-1/2014_07_31*(使用最新的 Google Cloud Storage 连接器 1.2.9),我收到以下错误:

4/10/13 10:28:38 INFO slf4j.Slf4jLogger: Slf4jLogger started    
14/10/13 10:28:38 INFO util.Utils: Successfully started service 'Driver' on port 60379.    
14/10/13 10:28:38 INFO worker.WorkerWatcher: Connecting to worker akka.tcp://sparkWorker@hadoop-w-9.c.taboola-qa-01.internal:45212/user/Worker    
Exception in thread "main" java.lang.reflect.InvocationTargetException    
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)    
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    
    at java.lang.reflect.Method.invoke(Method.java:606)    
    at org.apache.spark.deploy.worker.DriverWrapper$.main(DriverWrapper.scala:40)    
    at org.apache.spark.deploy.worker.DriverWrapper.main(DriverWrapper.scala) …
Run Code Online (Sandbox Code Playgroud)

hadoop google-cloud-storage apache-spark google-hadoop

1
推荐指数
1
解决办法
1370
查看次数