2014-03-07 113 views

回答

3

從例如:https://github.com/holdenk/fastdataprocessingwithsparkexamples/tree/master/src/main/scala/pandaspark/examples中挑選wordcount示例。 按照以下步驟來創建脂肪jar文件:

mkdir example-java-build/; cd example-java-build 

mvn archetype:generate \ 
    -DarchetypeGroupId=org.apache.maven.archetypes \ 
    -DgroupId=spark.examples \ 
    -DartifactId=JavaWordCount \ 
    -Dfilter=org.apache.maven.archetypes:maven-archetype-quickstart 

cp ../examples/src/main/java/spark/examples/JavaWordCount.java 
JavaWordCount/src/main/java/spark/examples/JavaWordCount.java 

您添加相關的火花核心和火花的例子依賴。確保你擁有基於你的火花版本的依賴關係。我使用spark 1.1.0,所以我有相關的依賴關係。 我的pom.xml看起來是這樣的:

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

<dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-examples_2.10</artifactId> 
     <version>1.1.0</version> 
</dependency> 
<dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-core_2.10</artifactId> 
     <version>1.1.0</version> 
</dependency> 
    </dependencies> 

使用MVN建立你的jar文件。

cd example-java-build/JavaWordCount 
mvn package 

這會在目標目錄內創建你的fat jar文件。 將jar文件複製到服務器上的任何位置。 轉到您的火花的bin文件夾。 (在我的情況:/root/spark-1.1.0-bin-hadoop2.4/bin

提交火花的工作:我的工作是這樣的:

./spark-submit --class "spark.examples.JavaWordCount" --master yarn://myserver1:8032 /root/JavaWordCount-1.0-SNAPSHOT.jar hdfs://myserver1:8020/user/root/hackrfoe.txt 

這裏--class是:爲您的應用程序的入口點(如org.apache.spark.examples。 SparkPi) --master:羣集的主要URL(例如spark://23.195.26.187:7077) 最後一個參數是您爲程序選擇的任何文本文件。

輸出應該這樣,給出文本文件中所有單詞的單詞計數。

in: 17 
sleeping.: 1 
sojourns: 1 
What: 4 
protect: 1 
largest: 1 
other: 1 
public: 1 
worst: 1 
hackers: 12 
detected: 1 
from: 4 
and,: 1 
secretly: 1 
breaking: 1 
football: 1 
answer.: 1 
attempting: 2 
"hacker: 3 

希望這有助於!

+2

+1有記錄的答案。我還沒有嘗試過,但即使它有任何小錯誤,它也會有所幫助。如果有任何細節遺漏,我會報告。 – javadba