roy*_*roy 3 hadoop azure hdpi hdinsight
我们在Azure中运行了HDInsight群集,但是在群集创建时不允许其加速边缘/网关节点。所以我通过安装来创建此边缘/网关节点
echo 'deb http://private-repo-1.hortonworks.com/HDP/ubuntu14/2.x/updates/2.4.2.0 HDP main' >> /etc/apt/sources.list.d/HDP.list
echo 'deb http://private-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/ubuntu14 HDP-UTILS main' >> /etc/apt/sources.list.d/HDP.list
echo 'deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/azurecore/ trusty main' >> /etc/apt/sources.list.d/azure-public-trusty.list
gpg --keyserver pgp.mit.edu --recv-keys B9733A7A07513CAD
gpg -a --export 07513CAD | apt-key add -
gpg --keyserver pgp.mit.edu --recv-keys B02C46DF417A0893
gpg -a --export 417A0893 | apt-key add -
apt-get -y install openjdk-7-jdk
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
apt-get -y install hadoop hadoop-hdfs hadoop-yarn hadoop-mapreduce hadoop-client openssl libhdfs0 liblzo2-2 liblzo2-dev hadoop-lzo phoenix hive hive-hcatalog tez mysql-connector-java* oozie oozie-client sqoop flume flume-agent spark spark-python spark-worker spark-yarn-shuffle
Run Code Online (Sandbox Code Playgroud)
然后我复制 /usr/lib/python2.7/dist-packages/hdinsight_common/ /usr/share/java/ /usr/lib/hdinsight-datalake/ /etc/spark/conf/ /etc/hadoop/conf/
但是当我运行时,出现spark-shell以下错误
java.io.IOException: No FileSystem for scheme: wasb
Run Code Online (Sandbox Code Playgroud)
这是完整的堆栈https://gist.github.com/anonymous/ebb6c9d71865c9c8e125aadbbdd6a5bc
我不确定这里缺少哪个包/罐。
有人知道我在做什么错吗?
谢谢
在spark-shell中设置Azure存储(wasb和wasbs文件)的另一种方法是:
使用参数-jars [以逗号分隔的列表以及指向这些jar的路由]运行spark-shell示例:
$ bin/spark-shell --master "local[*]" --jars jars/hadoop-azure-2.7.0.jar,jars/azure-storage-2.0.0.jar
Run Code Online (Sandbox Code Playgroud)将以下行添加到Spark上下文:
sc.hadoopConfiguration.set("fs.azure", "org.apache.hadoop.fs.azure.NativeAzureFileSystem")
sc.hadoopConfiguration.set("fs.azure.account.key.my_account.blob.core.windows.net", "my_key")
Run Code Online (Sandbox Code Playgroud)运行一个简单的查询:
sc.textFile("wasb://my_container@my_account_host/myfile.txt").count()
Run Code Online (Sandbox Code Playgroud)使用此设置,您可以轻松地设置一个Spark应用程序,将参数传递给当前Spark上下文中的“ hadoopConfiguration”
来自 Microsoft 的 Hai Ning 撰写了一篇关于在 apache hadoop 安装上设置 wasb 的优秀博客文章。
总结如下:
将hadoop-azure-*.jar和添加azure-storage-*.jar到 hadoop 类路径
1.1 在本地安装中找到 jar。它位于 HDInsight 群集上的 /usr/hdp/current/hadoop-client 文件夹。
1.2 更新HADOOP_CLASSPATH变量hadoop-env.sh。使用准确的 jar 名称,因为 java 类路径不支持部分通配符。
更新 core-site.xml
<property>
<name>fs.AbstractFileSystem.wasb.Impl</name>
<value>org.apache.hadoop.fs.azure.Wasb</value>
</property>
<property>
<name>fs.azure.account.key.my_blob_account_name.blob.core.windows.net</name>
<value>my_blob_account_key</value>
</property>
<!-- optionally set the default file system to a container -->
<property>
<name>fs.defaultFS</name>
<value>wasb://my_container_name@my_blob_account_name.blob.core.windows.net</value>
</property>
Run Code Online (Sandbox Code Playgroud)请参阅此处的确切步骤: https ://github.com/hning86/articles/blob/master/hadoopAndWasb.md
| 归档时间: |
|
| 查看次数: |
6465 次 |
| 最近记录: |