スパーク開発例(プログラミング手法)

このセクションでは、記述、コンパイル、パッケージ、およびスパークアプリケーションを実行する方法だけでなく、ハンズRDD変換および操作を実行する方法について説明します。

スパーク開始  シェル

スパークインタラクティブスクリプトAPIは、学習の簡単な方法が、また、データ・セットが相互作用解析するための強力なツールです。スパークは、複数の動作モードは、スタンドアロンモードを使用することができる含み、分散モードを使用することができます。スタンドアロンモードスパークで、このセクションでは、簡単にするために。

どちらのモードでは、限り、起動が完了すると、それはSparkContextオブジェクト(SC)が、またSparkSQL動作にSparkSQLターゲットを作成し、初期化します。インタラクティブなインターフェースにScalaは、あなたはRDDの操作とアクションを変換することができます。

スパークシェルを起動するには、次のコマンドを実行し、ディレクトリSPARK_HOME / binがダウン入力します。

$。/火花シェル

シェルの使用をスパーク

これは、ローカルファイルシステムは、ファイルホーム/ Hadoopの/ SparkData / WORDCOUNT /テキスト1の内容は、以下のことを想定しました。

こんにちは、世界
こんにちは私の名前は、私はHadoopのプログラミングを愛するジョンであります

ここでは、ファイルに基づいてシェル操作をスパーク。

1)新しいRDDを作成するには、テキストファイルのローカルファイルシステムを使用して。

スカラ> VARテキストファイル= sc.textFile(「ファイル://ホーム/ Hadoopの/ SparkData / WORDCOUNT /テキスト1」);
テキストファイル:でテキストファイルでorg.apache.spark.rdd.RDD [文字列] = MappedRDD [1]
12:<コンソール>

2)アクションの実装は、文書内の行数を計算することです。

スカラ> textFile.count()// RDDどのように多くの行が
完成した仕事:AT <コンソール> COUNT:17/05/17夜十時59分07秒はINFO spark.SparkContext、15を取った5.654325469 Sの
RESL:ロング= 2

結果は、文書が「2」の行に返されることを示しています。

3)ドキュメントの最初の行を取得するための操作ステップを実行します。

スカラ> textFile.first()//コンテンツRDD最初の行
17/05/17 23時01分25秒INFO spark.SparkContext:仕事を終え 、15かかった:最初の<コンソール>で

文書の最初の行を返す結果ショーは、「Hello World」のです。

4)スイッチング動作が新しいRDD RDDに変換されます。以下のように「ハロー」含むコードの行を取得します

スカラ> VAR newRDD = textFile.filter(ライン => line.contains( "こんにちは"))// 何こんにちは含む行
のScala> newRDD.ountを()//何こんにちは含む行
17/05/17 23時06 :33はINFO spark.SparkContextです:仕事を終了:COUNT AT <コンソール>:15は、0.867975549 Sかかった
RES4を:ロング= 2

RDDフィルタのスイッチング動作により「ハロー」を含む行のみを含む第一のコードを形成し、その後、計算により行数を数えます。

5)WORDCOUNTのシェル実現をスパーク

スカラ> valのファイル= sc.textFile(「ファイル://ホーム/ hendoop / SparkData / WORDCOUNT /テキスト1」));
地図スカラ>ヴァル・カウント= file.flatMap(=> line.split(「」)ライン)(ワード=>(単語、1))。reduceByKey(_ _ +)
スカラ> count.collect()
17/05 / 17午後11時11分46秒INFO spark.SparkContext:17:<コンソール>に集まる:ジョブが終了
1.624248037秒かかった
res5を:配列[(文字列、INT)] =配列((こんにちは、2)、(世界、1)、 (私、1)、(である、1)、(愛、1)、(I、1)、(ジョン、1)、(Hadoopの、1)、(名前、1)、(プログラミング、1))

  1. 使用sparkContextクラステキストファイルは、()ローカルファイルを読み込み、MappedBJDDを生成します。
  2. ワードスペースに応じてファイルの内容はFlatMappedRDD flatMap()メソッドを使用して、スプリット形態を分割しました。
  3. 使用マップ(ワード=>(単語は、1))、この時MappedBJDDで生成された単語<ワード1>データを分割するように形成されています。
  4. 、それによってShuffledRDDを生成し、単語頻度統計のreduceByKey()メソッドを使用して、結果によって経営の仕事を収集します。

書くのJavaアプリケーションを

1. Mavenをインストールします。

Mavenを手動でインストールし、Mavenは公式ダウンロードapache-maven-3.3.9-bin.zipを訪問することができます。インストールディレクトリは/ usr / local / mavenのある選択します。

sudoの解凍〜/下载/apache-maven-3.3.9-bin.zip -dは/ usr / local
CDは/ usr / local
sudoのMVのapache-mavenの-3.3.9 / ./maven
のsudoのchown -R Hadoopの./maven

2.書き込みJavaアプリケーション・コード

ターミナル内のアプリケーションのルートディレクトリとして、フォルダsparkapp2を作成するには、次のコマンドを実行します。

CD〜#ユーザーのホームフォルダを入力するように
ます。mkdir -p ./sparkapp2/src/main/java

使用vim./sparkapp2/src/main/java/SimpleApp.javaは、次のようにコードがあり、SimpleApp.javaという名前のファイルを作成します。

  1. / *** SimpleApp.java *** /
  2. 輸入org.apache.spark.api.java *。;
  3. 輸入org.apache.spark.api.java.function.Function。
  4.  
  5. パブリッククラスSimpleApp {
  6. パブリック静的無効メイン(文字列[] args){
  7. 文字列のLOGFILE =「ファイル:///usr/local/spark/README.md」; //は、あなたのシステム上でいくつかのファイルである必要があります
  8. JavaSparkContext SC =新JavaSparkContext(「ローカル」、「シンプルなアプリ」、
  9. 「ファイル:/// USR /ローカル/スパーク/」、新たな文字列[] {「ターゲット/シンプル・プロジェクト-1.0.jar」})。
  10.  
  11. JavaRDDの<string> LOGDATA = sc.textFile(ログファイル).cache();
  12. 長いnumAs = logData.filter(新機能<文字列、ブール>(){
  13. パブリックブールコール(文字列s){
  14. リターンs.contains(「A」);
  15. }
  16. })。カウント();
  17.  
  18. 長いnumBs = logData.filter(新機能<文字列、ブール>(){
  19. パブリックブールコール(文字列s){
  20. リターンs.contains(「B」);
  21. }
  22. })。カウント();
  23. System.out.printIn(「の行:」+ numAs +「Bと、行:」+ numBs)。
  24. }
  25. }

プログラムは、Java APIをスパーク依存しているので、私たちは達人で、パッケージをコンパイルする必要があります。新しい文書./sparkapp2用のpom.xml(vim./sparkapp2/pom.xml)、及び依存情報スパークを宣言し、独立したアプリケーションコードに次の通りです。

  1. <プロジェクト>
  2. <groupld> edu.berkeley </ groupIdを>
  3. <たartifactId>シンプル・プロジェクト</たartifactId>
  4. <modelVersion> 4.0.0 </ modelVersion>
  5. <名前>単純なプロジェクト</名前>
  6. <パッケージ> JAR </梱包>
  7. <バージョン> l.0 </バージョン>
  8. <リポジトリ>
  9. <リポジトリ>
  10. <ID>アッカリポジトリ</ ID>
  11. <URL> http://repo.akka.io/releases </ URL>
  12. </リポジトリ>
  13. </リポジトリ>
  14.  
  15. <依存性>
  16. <依存> <! - スパーク依存性 - >
  17. <groupIdを> org.apache.spark <groupIdを>
  18. <たartifactId>火花core_2.11 </たartifactId>
  19. <バージョン> 2.1.0 </バージョン>
  20. </依存関係>
  21. </依存関係>
  22. </プロジェクト>

3. MavenのパッケージJavaプログラム

適切に機能するためにMavenを確保するために、アプリケーション全体のファイル構造を確認するには、次のコマンドを実行します。

CD〜/ sparkapp2を
見つけます

ファイル構造は、図1に示します。

SimpleApp.javaファイル構造
図の1 SimpleApp.javaファイル構造。

次に、アプリケーション全体は、次のコードこれらの瓶に包装してもよいです。

/ usr / local / mavenの/ binに/ MVNパッケージ

次のメッセージと同様に、ジャーパケット生成成功を示す、上記のコマンドを実行した後に表示されます。

[INFO] ---------------
[INFO] SUCCESS BUILD
[INFO] ---------------
[INFO]合計時間:6.583秒
[ INFO]完成時:2017-02-19T15:52:08 + 08:00
[INFO]最終的なメモリ:15M / 121M
[INFO] ----------------

4.提出スパークしてプログラムを実行します

最後に、ジャーパッケージには、Spark提出スパークの実行、次のコマンドにより提出することができます。

/ usr / local /火花/ binに/ -class「SimpleApp」〜/ sparkapp2 /ターゲット/シンプルなプロジェクト-1.0.jarをスパーク提出

次のように最後に、得られた結果です。

ライン:62、Bとライン:30

40 +すべてここにビッグデータ開発[W]チュートリアルの年俸!

43. A Sparkの開発例
44 スパークストリーミングプロファイル
45 スパークストリーミングアーキテクチャ
46 スパークストリーミング・プログラミング・モデル
47 スパークDSTREAM関連動作
48 スパーク開発インスタンスストリーミング

おすすめ

転載: blog.csdn.net/yuidsd/article/details/92173153