Spark本地开发的代码如何放到集群中测试并访问

环境:jdk1.8

spark:2.1

hadoop:2.7

Master:192.168.1.40

slave1:192.168.1.30

slave2:192.168.1.43

目的:运用spark实现统计功能

1、首先把本地代码打成的jar包和测试文件spark.txt 放到主服务器master上,目录自定义,我的是  /home/johnny/

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

5、也可以在spark目录下创建work 文件夹 然后里面编写启动脚本

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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值