从谷歌存储GS阅读:从本地火花实例//文件系统(Reading from google storag

2019-09-29 07:32发布

这个问题很简单:你有一个本地的火花实例(无论是群集或只是运行它在本地模式下),你想从GS阅读://

Answer 1:

我在这里提交的解决方案,我想出了通过组合不同的资源:

  1. 下载谷歌云存储连接器: GS-连接器并将其存储在$SPARK/jars/文件夹(查看备选1在底部)

  2. 下载core-site.xml从文件在这里 ,或者从下面复制它。 这是通过使用的Hadoop一个配置文件,(其用于通过火花)。

  3. 存储core-site.xml文件夹中的文件。 我个人创建$SPARK/conf/hadoop/conf/文件夹并将其存储在那里。

  4. 在spark-env.sh文件中加入下面的行指示的hadoop CONF fodler: export HADOOP_CONF_DIR= =</absolute/path/to/hadoop/conf/>

  5. 创建一个从谷歌(各自的页面中加入OAuth2键Google Console-> API-Manager-> Credentials )。

  6. 凭据复制到core-site.xml文件。

选择1:相反,复制文件到的$SPARK/jars的文件夹,你可以存储任何文件夹中的罐子和火花classpath中添加的文件夹。 一种方法是编辑SPARK_CLASSPATHspark-env.sh``folder but SPARK_CLASSPATH`现在已经过时。 因此,我们可以看这里如何在火花classpath中添加一个罐子

<configuration>
    <property>
        <name>fs.gs.impl</name>
        <value>com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem</value>
        <description>Register GCS Hadoop filesystem</description>
    </property>
    <property>
        <name>fs.gs.auth.service.account.enable</name>
        <value>false</value>
        <description>Force OAuth2 flow</description>
     </property>
     <property>
        <name>fs.gs.auth.client.id</name>
        <value>32555940559.apps.googleusercontent.com</value>
        <description>Client id of Google-managed project associated with the Cloud SDK</description>
     </property>
     <property>
        <name>fs.gs.auth.client.secret</name>
        <value>fslkfjlsdfj098ejkjhsdf</value>
        <description>Client secret of Google-managed project associated with the Cloud SDK</description>
     </property>
     <property>
        <name>fs.gs.project.id</name>
        <value>_THIS_VALUE_DOES_NOT_MATTER_</value>
        <description>This value is required by GCS connector, but not used in the tools provided here.
  The value provided is actually an invalid project id (starts with `_`).
      </description>
   </property>
</configuration>


Answer 2:

在我的星火2.4.3情况下,我需要做到以下几点,以使从星火本地GCS访问。 我用了一个JSON密钥文件主场迎战client.id/secret上述建议。

  1. $SPARK_HOME/jars/ ,使用阴影gcs-connector从这里罐子: http://repo2.maven.org/maven2/com/google/cloud/bigdataoss/gcs-connector/hadoop2-1.9.17/要不然我曾与传递依赖的各种故障。

  2. (可选)要我build.sbt地址:

     "com.google.cloud.bigdataoss" % "gcs-connector" % "hadoop2-1.9.17" exclude("javax.jms", "jms") exclude("com.sun.jdmk", "jmxtools") exclude("com.sun.jmx", "jmxri") 
  3. $SPARK_HOME/conf/spark-defaults.conf ,添加:

     spark.hadoop.google.cloud.auth.service.account.enable true spark.hadoop.google.cloud.auth.service.account.json.keyfile /path/to/my/keyfile 

和一切工作。



文章来源: Reading from google storage gs:// filesystem from local spark instance