Spark-1.4.0スタンドアロン導入テスト

2657 ワード

前編に続きます.この編は前編に対するテストです.

テスト

  • Spark-shellテスト
    ./spark-shell
    ...
    scala> val days = List("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
    days: List[String] = List(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
    scala> val daysRDD =sc.parallelize(days)
    daysRDD: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[0] at parallelize at :14
    scala>daysRDD.count()
    scala>res0:Long =7
    
  • スクリプトテスト
  • ローカルモード
  • ./bin/run-example org.apache.spark.examples.SparkPi 2 spark://localhost:7077
  • ./bin/run-example SparkPi 10 --master local[2]

  • standaloneモード【注意】127.0.0.1&&*.JArのパス
  • ./spark-submit --class org.apache.spark.examples.SparkPi --master spark://127.0.0.1:7077 ../lib/spark-examples-1.4.0-hadoop2.6.0.jar 100

  • yarnテスト(clusterモードとclientモード)【注意】*JArのパス
  • ./spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster ../lib/spark-examples*.jar 10 http://localhost:8088/(localhostはサーバアドレスであってもよい)
  • ./spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client ../lib/spark-examples*.jar 10
  • localhost:8088にアクセスして結果を見ることができます.


  • データテスト
  • shellスクリプト
  • getNum(){
        c=1
        while [[ $c -le 5000000 ]]
        do
            echo $(($RANDOM/500))
            ((c++))
        done
    }
    for i in `seq 30`
    do
        getNum >> ${i}.txt &
        # getNum
    done
    wait
    echo "------------------DONE-----------------"
    cat [0-9]*.txt > num.txt
    
  • hdfsファイルディレクトリ(実行ファイルはhadoop/bin/hdfs、hdfsルートディレクトリはhdfs://localhost:9000)実行コマンド:./bin/hdfs dfs -mkdir -p /user/hadoop/datatest
  • 作成したhdfsファイルにデータ(スクリプト生成データ)を書き込むコマンド:./bin/hdfs dfs -put /root/num.txt /user/hadoop/datatest
  • scalaテストコード:実行コマンド:spark/bin/Spark-shell
  • scala> val file = sc.textFile("hdfs://localhost:9000/user/hadoop/datatest/num.txt")
    scala> val count = file.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_+_)
    scala> count.sortBy(_._2).map(x => x._1 + "\t" + x._2).saveAsTextFile("hdfs://localhost:9000/user/hadoop/datatest/numCount")
    
    hadoop関連操作コマンドを実行します:(hadoop/bin/)./hadoop fs -cat hdfs://localhost:9000/user/hadoop/datatest/numCount/p*|sort -k2nテスト結果は以下の通りです.