org.apache.spark.storage.StorageLevelインポート インポートorg.apache.spark.streaming。{秒急速、StreamingContext} インポートorg.apache.spark。{SparkConf、SparkContext} / ** * WORDCOUNTプログラムは、消費者のTCPストリーミングサーバスパーク送ってくれましたリアルタイムデータの例: * * 1マスターサーバー上でNetcatをサーバーを起動するには * `$ NC -lk 9998`(NCコマンドがない場合、我々はインストールするために使用することができますyumをインストール-y NC NC) * * * / オブジェクト{LocalNetworkWordCount DEFメイン(引数:配列[文字列]){ // StreamingContextプログラミング入口 //ローカル[2]コア2は、スレッドのデータ、処理データを受信するためのスレッド有効 //秒(1)毎に第二の処理時間 ヴァルのSSC =新しいStreamingContext( "ローカル [2]"、 "LocalNetworkWordCount"、秒(1)、 System.getenv( "SPARK_HOME")、StreamingContext.jarOfClass(this.getClass).toSeq) //データ受信機(受信機) 、それが終了した後に実行し、//このコード行をコメントした(必見オープン) //データ受信機(ReceiverInputDStream)を作成し、受信機は、ソケット及び処理によりポートによって送信された機械受信 ヴァル= ssc.socketTextStreamライン(「ローカルホスト」、9998、StorageLevel.MEMORY_AND_DISK_SER) //データプロセス(プロセス) //論理処理を単に実行されるワード数 ヴァルワードlines.flatMap =(_。スプリット( "")) ヴァルwordPairs = words.map(X =>(X ,. 1)) ヴァル= wordcounts wordPairs.reduceByKey(_ _ +) //結果の出力(出力) //コンソールに出力する (wordCounts.print) 処理フローストリーミングを開始// (ssc.start)を //待機ルーチンをストリーミング終了する // 7 X 24営業時間は、停止しません待っている ssc.awaitTermination() } }
NetworkWordCount
org.apache.sparkインポート。{SparkConf、SparkContext} インポートorg.apache.spark.storage.StorageLevel インポートorg.apache.spark.streaming。{秒急速、StreamingContext} / ** * WORDCOUNTプログラム、消費者TCPストリーミングサーバスパーク送ってくれましたリアルタイムデータの例は: * * 1マスターサーバー上でNetcatをサーバーを起動します * `$ NC -lk 9998`(NCコマンドがない場合、我々は-y NC NCとyumをインストールインストールすることができます) * で、2 *次のコマンドは、Sparkストリーミングアプリケーションクラスタまでに実行されます 火花--class com.twq.streaming.NetworkWordCount \を提出 //マスター:7077 \スパーク--master --deploy MODE-Clientを\ --driver、メモリ512M \ --executor、メモリー512M \ --total-エグゼキュータ。4コア\ --executor-2コアを\ /home/hadoop-twq/spark-course/streaming/spark-streaming-basic-1.0-SNAPSHOT.jar * / {オブジェクトNetworkWordCount DEFメイン(引数:配列[文字列]){ 。ヴァルsparkConf新しい新しいSparkConf =()setAppName( "NetworkWordCount")を ヴァルのSC =新しい新しいSparkContext(sparkConf) // StreamingContextプログラミング入口 ヴァルのSSC =新しいStreamingContext(SC、秒(1)) //データ受信機(受信機) //シンク(ReceiverInputDStream)を作成し、受信機は、マシン上のソケットおよびプロセスを介してポートを介して送信されるデータ受信 // StorageLevel.MEMORY_AND_DISK_SER_2この方法最初のメモリにメモリに格納されたバイトのように格納されたディスク上の十分なメモリではない、二つの記憶 ヴァル= ssc.socketTextStreamライン(「マスター」、9998、StorageLevel.MEMORY_AND_DISK_SER_2)reduceByKey(_ _ +) //結果出力(アウトプット) //データ処理(プロセス) //論理処理、それは簡単なワードカウントが行われます lines.flatMapワード=ヴァル(_。スプリット( "")) ヴァルwordPairs = words.map(X =>(X ,. 1)) ヴァルwordcounts = wordPairs.reduceByKey(_ _ +) //コンソールに出力 wordCounts.print() //スタートストリーミング処理フロー ssc.start() //プログラム終了ストリーミング待つ ssc.awaitTerminationを() } }
org.apache.spark.storage.StorageLevelインポート インポートorg.apache.spark.streaming。{秒急速、StreamingContext} インポートorg.apache.spark。{SparkConf、SparkContext} / ** * WORDCOUNTプログラムは、消費者のTCPストリーミングサーバスパーク送ってくれましたリアルタイムデータの例は: * * 1マスターサーバー上でNetcatをサーバーを起動します * `$ NC -lk 9998`(NCコマンドがない場合、我々は-y NC NCとyumをインストールインストールすることができます) * で、2 *次のコマンドは、Sparkストリーミングアプリケーションクラスタにまで実行されます 火花--class com.twq.streaming.NetworkWordCountDetail \提出 \ 7077://マスター:スパーク--master --deploy MODE-クライアント\ --driver-メモリ512M \ --executor、メモリー512M \ * / --total-エグゼキュータ。4コア\ --executor-2コアを\ /home/hadoop-twq/spark-course/streaming/spark-streaming-basic-1.0-SNAPSHOT.jar NetworkWordCountDetail {オブジェクト {:DEFメイン(配列[文字列]引数を) =ヴァルsparkConf新しい新しいSparkConf()setAppName(「NetworkWordCount。 「) ヴァルのSC =新新SparkContext(sparkConf) // SECOND、バッチサイズを作成して1とコンテキストで // 1、StreamingContext入口スパークストリーミングプログラム、その後、StreamingContextとSparkContextがそれである関係は何ですか? SparkContextへの参照を保持する必要が//1.1,StreamingContext =新しい新しいStreamingContext(SC、秒急速(1))のValのSSC SparkContextが起動しない場合//1.2を、我々は次のコードStreamingContextで開始することができる ヴァルSSC2新しい新しいStreamingContext(= sparkConf、秒(1))// SparkContext内で開始され、このコード ssc.sparkContextは// SparkContextにStreamingContextから得ることができます。 それを停止する//1.3、StreamingContext呼び出し、SparkContextがオフに停止する場合があります SparkContextをオフに停止しない場合、我々は呼び出すことができます。// ssc.stop(偽) sc.stopを() 2 //:StreamingContext注: と同じ時間で// 2.1、同じ一つだけでJVMをStreamingContext StreamingContextは、起動している場合、// 2.2 //その後、私たちは、この計算のために、新たなストリーミングStreamingContextを追加することはできません 、それが再びできない、StreamingContextが停止している場合は、// 2.3開始 、複数StreamingContext SparkContextを開始することができ、// 2.4 // StreamingContextストップオフの前方に設けられているが、SparkContextをオフに停止しない //シンク(ReceiverInputDStream)を作成し、受信機は、機械を受信しますソケットを介してポートから送信され、データ処理 ヴァルライン= ssc.socketTextStream(「マスター」、9998は、StorageLevel.MEMORY_AND_DISK_SER) //論理処理は、単にワード数行われる ヴァルワード= lines.flatMap(_します。スプリット( "")) wordcounts =ヴァル(X =>(X ,. 1))。reduceByKey(_ _ +)words.map //コンソールに出力 wordCounts.print() //スタートストリーミング処理フロー (ssc.start) //待機ストリーミングプログラムは終了します )(ssc.awaitTerminationを } }
☛DSTREAM(離散ストリーム離散流れが)機能
(賛成のフォールトトレランスに依存)の依存親DSTREAMリスト
RDDは、時間間隔を生成する(バッチInteravl)
RDDの生成関数(DSTREAMにRDD変換)
図1は、スパークストリーミングは、入力データストリームバッチに切断し、その後、メモリに格納されたスパーク
図2に示すように、各バッチを処理するためにスパークジョブ(RDD変換動作及びアクション)を生成します