8

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

それから私はコピーしました/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

ここに完全なスタックがありますhttps://gist.github.com/anonymous/ebb6c9d71865c9c8e125aadbbdd6a5bc

ここで欠落しているパッケージ/jarがわかりません。

誰が私が間違っているのか手がかりを持っていますか?

ありがとう

4

2 に答える 2

8

spark-shell で Azure Storage (wasb および wasbs ファイル) を設定する別の方法は次のとおりです。

  1. Spark インストールの ./jars ディレクトリに azure-storage および hadoop-azure jar をコピーします。
  2. パラメータ —jars [これらの jar へのルートを含むカンマ区切りのリスト] を指定して spark-shell を実行します。例:

    
    $ bin/spark-shell --master "local[*]" --jars jars/hadoop-azure-2.7.0.jar,jars/azure-storage-2.0.0.jar
    
  3. 次の行を 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")
    
  4. 簡単なクエリを実行します。

    
    sc.textFile("wasb://my_container@my_account_host/myfile.txt").count()
    
  5. 楽しみ :)

この設定を使用すると、現在の Spark コンテキストの「hadoopConfiguration」にパラメーターを渡して、Spark アプリケーションを簡単にセットアップできます。

于 2017-01-09T20:12:00.857 に答える
0

Microsoft の Hai Ning は、Apache Hadoop インストールでの wasb のセットアップに関する優れたブログ投稿を書いています。

要約は次のとおりです。

  1. hadoop-azure-*.jarandazure-storage-*.jarを Hadoop クラスパスに追加

    1.1 ローカル インストールで jar を見つけます。これは、HDInsight クラスターの /usr/hdp/current/hadoop-client フォルダーにあります。

    HADOOP_CLASSPATH1.2で変数を更新しますhadoop-env.sh。Java クラスパスは部分的なワイルドカードをサポートしていないため、正確な jar 名を使用してください。

  2. 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>
    

ここで正確な手順を参照してください: https://github.com/hning86/articles/blob/master/hadoopAndWasb.md

于 2016-07-07T21:02:55.530 に答える