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