环境:jdk1.8
spark:2.1
hadoop:2.7
Master:192.168.1.40
slave1:192.168.1.30
slave2:192.168.1.43
目的:运用spark实现统计功能
2、在HDFS下创建文件夹:用来存放读取文件
hadoop fs -mkdir input
hdfs dfs -put /home/johnny/spark.txt /input
hdfs dfs -ls /input
3、启动hadoop集群 和Spark集群
hadoop/sbin/start-all.sh
spark/sbin/start-all.sh
输入jps查看
master显示
slave显示:
4、开始进行Spark Submit提交操作
[root@master bin]# ./spark-submit \
> --class com.johnny.wordCountSpark \
> --master spark://master:7077 \
> --executor-memory 512M \
> --total-executor-cores 2 \
> /home/johnny/SparkJava-1.0.0-jar-with-dependencies.jar \
> hdfs://master:9000/input/spark.txt \
> hdfs://master:9000/output
或者如下:
./spark-submit --class com.johnny.wordCountSpark --master spark://master:7077 --executor-memory 512M --total-executor-cores 2 /home/johnny/SparkJava-1.0.0-jar-with-dependencies.jar hdfs://master:9000/input/spark.txt hdfs://master:9000/output
mkdir work
vi wordcount.sh
内容如下:
/opt/workspace/spark2.1/bin/spark-submit \
--class com.johnny.wordCountSpark \
--num-executors 3 \
--driver-memory 512m \
--executor-memory 512m \
--executor-cores 3 \
--packages org.apache.spark:spark-streaming-flume_2.11:2.3.0 \
/home/johnny/SparkJava-1.0.0-jar-with-dependencies.jar \
5、运行脚本进行测试
./wordcount.sh >> spark.log
cat spark.log 显示运行结果
此时如果出现报错如下,那就说明本地与集群环境的spark版本冲突较大,造成call函数不可用
java.lang.AbstractMethodError: JavaKryoSerializer$1.call(Ljava/lang/Object;)Ljava/lang/Iterable;
此时修改本地的版本即可。
浏览器访问:
master:8080 我自己对应的是http://192.168.1.40:8080
因篇幅问题不能全部显示,请点此查看更多更全内容