赞
踩
一、准备好所需要的文件
1、打包好的wordFreqFileSpark-0.1-jar-with-dependencies.jar
2、自己编写好的run.sh脚本文件
例子:
/usr/local/spark/spark/bin/spark-submit \#这里的路径为你所存放spark的路径
--class saprkstreaming_action.wordfreq.main.WordFreq \ #你的jar包程序类入口
--num-executors 4 \
--driver-memory 1G \
--executor-memory 1g \
--exccutor-cores 1 \
--conf spark.deafut.parallelism=1000 \
./wordFreqFileSpark-0.1-jar-with-dependencies.jar #这里的.是当前目录下的文件获取就读取jar包内容
3、input.txt 统计的文本文件#这个文件就是你在jar里面打包好的代码要统计的单词文件,我这里是放在和jar包一个目录下的!这取决于你开始写的代码
二、给run.sh赋予权限
sudo chmod u+x run.sh
#注意:要在务必要在run.sh的文件目录下
三、启动spark集群
1、进入到你的spark的sbin目录下使用命令:./start-all.sh
2、在启动之前务必要修改三个文件
修改文件之前先把这三个文件的尾缀.template 去掉
可以使用命令,例:mv log4j.properties.template log4j.properties
1、log4j.properties
修改内容为:
log4j.rootCategory=WARM, console 原来的值改为WARN
2、spark-env.sh
添加内容:
JAVA_HOME=/usr/local/jdk/jdk1.8.0_181/#此外为你jdk的路径
SCALA_HOME=/usr/local/scala/scala-2.11.12/#此处为你scala存放的路径
SPARK_HOME=/usr/local/spark/spark/#此处为你spark存放的路径
SPARK_MASTER_HOST=localhsot #这个是你所要指定spark活动监听ip,这个要对应你wordcount那个jar包写的ip,当然写成localhost基本上没问题,这个按照个人喜好!推荐使用localhost
SPARK_WORKER_CORES=2
SPARK_WORKER_MEMORY=7g
SPARK_WORKER_INSTANCES=2
SPARK_DAEMON_MEMORY=1g
3、slaves
修改内容为
localhost#这取决于你的主机命名
#推荐使用localhost
四、启动run.sh脚本
1、没什么问题基本是会出现统计结果的了
五、附加,中途报错
1、其中可能会出现
java.lang.ClassNotFoundException:saprkstreaming_action.wordfreq.main.WordFreq
还有就是所这个jar包 does no exist!
注意注意注意
文件目标的路径设置非常重要,还有运行的路径
./run.sh
比如说我在/home/su/下放了这个jar包
我进入到了这个目录下,那么我run.sh的文件里配置就是
./wordFreqFileSpark-0.1-jar-with-dependencies.jar
就这样就可以了
2、run.sh 行2 $\r:未找到命令
解决方法:
先安装一个重构文件的东西:
命令:yum install dos2unix
安装完毕后到,你的run.sh的文件目录下
执行命令:
dos2unix run.sh
3、can not connect 127.0.0.1:7077 拒绝连接
解决方法:
1、检测自己的防火墙状态
命令:firewall-cmd --state
若是启动的使用命令关闭:
systemctl stop firewalld.service
2、修改 hosts 文件
命令: vi /etc/hosts
修改成和你spark-env.sh一致的ip地址
我的是localhost
所以我不用修改
3、修改 hostname 文件
命令:vi /etc/hostname
和你上面修改slaves一致
我的是localhost所以我不用修改!
4、最最最重要的来了,以上修改完成后,重启你的虚拟机电脑
#注意步骤三报错解决后重新再启动集群,再重新执行一下你的run.sh的脚本
到此结束!小白心得,有什么不对的地方请及时提出,谢谢!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。