2014-03-07 149 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