--SparkStreamingカフカを学ぶビッグデータは、サイトのクリックストリームのリアルタイムの統計情報の統合を完了しました

ZKをインストールして設定します1

カフカをインストールして設定します2。

3. [スタート] ZK

4.スタートカフカ

5.トピックを作成します。

[ルート@ mini3のカフカ]#ビン/カフカ-コンソールプロデューサー。SH --brokerリストmini1:9092 --topic CYFテスト

 

プログラムコード

パッケージorg.apache.spark 

輸入java.net.InetSocketAddress 

輸入org.apache.spark.HashPartitionerの
 輸入org.apache.spark.SparkConfの
 輸入org.apache.spark.storage.StorageLevelの
 輸入org.apache.spark.streaming.Secondsは、
 インポート組織.apache.spark.streaming.StreamingContextの
 インポートorg.apache.spark.streaming.flume.FlumeUtilsは
 インポートorg.apache.spark.streaming.kafka.KafkaUtilsが

オブジェクトKafkaWordCount { 

  ヴァルupdateFunction =(ITER:イテレータ[(文字列、配列[INT] 、オプション[INT])])=> { 
    iter.flatMap { ケース(X、Y、Z)=>一部(y.sum + z.getOrElse(0))マップ(V =>。(X、V))} 
  } 

  DEFメイン(引数:配列[文字列]){ 
    ヴァルCONF = 新しい SparkConf()。setMaster( "ローカル[2]")。setAppName( "KafkaWordCount" 
    ヴァルSSC = 新しい StreamingContext(CONF、秒(5 ))
     // 回滚点设置在本地
 //     ssc.checkpoint(」。 / ")
     // 将回滚点写到HDFS 
    ssc.checkpoint(" HDFS:// mini1:9000 / kafkatest」

    // のValアレイ(zkQuorum、groupIdを、トピック、NumThreadsに)=引数 
    valのアレイ(zkQuorum、のgroupId、トピック、NumThreadsに)=配列[文字列]( "mini1:2181、MINI2:2181、mini3:2181"、 "G1" 、 "CYF-テスト"、 "2"
    ヴァルtopicMap = topics.split( "" ).MAP((_、numThreads.toInt))。toMap 
    ヴァル線 = KafkaUtils.createStream(SSC、zkQuorum、groupIdを、topicMap).MAP(_._ 2)
    ヴァル結果 = lines.flatMap(_。スプリット(」「))。マップ((_、1))。updateStateByKey(updateFunction、新しい HashPartitioner(ssc.sparkContext.defaultParallelism)、


    results.print()
    ssc.start()
    SSC。 awaitTermination()
  } 

}

 

 ハチソンの問題がで遭遇  https://www.cnblogs.com/feifeicui/p/11018761.html

おすすめ

転載: www.cnblogs.com/feifeicui/p/11018774.html