运行spark及hadoop版本不一致解决方法
目的:
希望在自己电脑上run项目组之前的代码,帮助理解代码,同时为之后的修改做铺垫。由于代码是基于 Spark 2.0.1、Scala 2.11.8 、 Hadoop 2.7.3以及JAVA 1.8,而我自己电脑配置的是 Spark 1.6.1、Scala 2.11.8 、 Hadoop 1.2.1以及JAVA 1.8。
为避免版本问题出现报错,觉得有两种解决方法:
1.将spark1.6.1版本换成spark2.0.1版本。
2.sbt版本都设置成我电脑的版本,run一下是否成功。
这篇文章记录了方法1的心路历程,其实方法2似乎更为简洁,主要是没有很好的理解sbt等工具的效果以及对依赖的版本不够了解,导致修改依赖后打包失败之后可以再尝试。
过程
一、在spark官网下载了spark2.0.1的安装包,根据基于hadoop的版本分别下载了spark-2.0.1-bin-hadoop2.7(基于hadoop2.7)、spark-2.0.2-bin-without-hadoop(基于2.0之前的hadoop版本)两个压缩包。
二、解压并移动到相应目录。
三、修改相应的配置文件:
修改/etc/profie (sudo 是修改权限为root)
sudo vim /etc/profile
在其中增加如下内容:
export SPARK_HOME=/home/yy/spark-2.1.0-bin-hadoop2.7/
export PATH=$PATH:$SPARK_HOME/bin
并更新/etc/profie
source /etc/profile
四、依次尝试打开spark-shell,发现spark-2.0.2-bin-without-hadoop不能打开,所以选择使用spark-2.0.1-bin-hadoop2.7。
五、本地运行简单的例子
已将打包好的jar包放在bin目录下,在bin目录下直接运行:
spark-submit --master local[4] --class WordCount wordcount.jar
spark-submit --master local[4] --class helloscala helloscala.jar
六、本地运行项目代码
1.kmercounting:
./bin/spark-submit --master local[4] --class org.jgi.spark.localcluster.tools.KmerCounting bin/LocalCluster-assembly-0.1.jar -i data/small/sample.seq -o tmp/seq_result.txt --format seq -k 31
2.KmerMapReads2
./bin/spark-submit --master local[4] --class org.jgi.spark.localcluster.tools.KmerMapReads2 bin/LocalCluster-assembly-0.1.jar --reads data/small/sample.seq --format seq -k 31 --kmer tmp/seq_result.txt --output tmp/kmer_reads
3.GraphGen2
./bin/spark-submit --master local[4] --class org.jgi.spark.localcluster.tools.GraphGen2 bin/LocalCluster-assembly-0.1.jar -i tmp/kmer_reads.txt -o tmp/edges.txt
4.GraphLPA2
./bin/spark-submit --master local[4] --class org.jgi.spark.localcluster.tools.GraphLPA2 bin/LocalCluster-assembly-0.1.jar -i tmp/edges.txt -o tmp/lpa.txt
5.AddSeq
./bin/spark-submit --master local[4] --class org.jgi.spark.localcluster.tools.CCAddSeq bin/LocalCluster-assembly-0.1.jar --wait 1 -i tmp/lpa.txt --reads data/small/sample.seq -o tmp/lpa_seq.txt
结合本地实验输出结果和程序步骤理解算法。
七、在独立集群上运行代码
简单例子:
spark-submit --master spark://yypc:7077 --class WordCount wordcount.jar
发现报错:
java.io.IOException: Failed to connect to yypc/58.198.102.156:7077
在网上参考各类文档,参照http://blog.csdn.net/ybdesire/article/details/70666544找到问题:
用nmap确认能连接Master主机端口7077
nmap -p 7077 master_ip
显示master并没有开:
Starting Nmap 6.40 ( http://nmap.org ) at 2017-12-04 21:06 CST
Nmap scan report for yypc (58.198.102.156)
Host is up (0.000018s latency).
PORT STATE SERVICE
7077/tcp closed unknown
Nmap done: 1 IP address (1 host up) scanned in 0.40 seconds
主要原因在于我开spark集群时出现错误。
正确开spark,应该在bin目录下./start-all.sh而不是直接start-all.sh;
其次,新安装的spark要修改两个文件:conf/spark-env.sh和conf/slaves,这应该是在spark安装过程中的,但是被遗忘了。文件修改的具体过程详见https://www.cnblogs.com/zengxiaoliang/p/6478859.html Hadoop2.7.3+Spark2.1.0完全分布式集群搭建过程。
这两个问题解决完之后,wordcount能run了。
项目代码
(试了一部分)
kmercounting:
./bin/spark-submit --master spark://yypc:7077 --deploy-mode client --conf spark.executor.extraClassPath=bin/LocalCluster-assembly-0.1.jar --conf spark.speculation=true --conf spark.speculation.multiplier=2 --conf spark.eventLog.enabled=false bin/LocalCluster-assembly-0.1.jar KmerCounting --wait 1 -i data/small/sample.seq -o tmp/seq_result2.txt --format seq -k 31 -C
KmerMapReads2:
./bin/spark-submit --master spark://yypc:7077 --deploy-mode client --conf spark.executor.extraClassPath=bin/LocalCluster-assembly-0.1.jar --conf spark.speculation=true --conf spark.speculation.multiplier=2 --conf spark.eventLog.enabled=false bin/LocalCluster-assembly-0.1.jar KmerMapReads2 --wait 1 --reads data/small/sample.seq --format seq -k 31 --kmer tmp/seq_result2.txt --output tmp/kmer_reads2.txt
刚修改完文件后运行不成功,重启后再运行成功了。
当前是hadoop1.2.1版本不变,下载了spark-2.0.1-bin-hadoop2.7版本,可正常使用,能应对当前初步的写代码和调试的需要。
运行spark及hadoop版本不一致解决方法相关推荐
- win10更新1809版本后运行Dev-cpp, dos控制台字符乱码解决方法
win10更新1809版本后运行Dev-cpp, dos控制台字符乱码解决方法 参考文章: (1)win10更新1809版本后运行Dev-cpp, dos控制台字符乱码解决方法 (2)https:// ...
- Spark面对OOM问题的解决方法及优化总结 (转载)
Spark面对OOM问题的解决方法及优化总结 (转载) 转载地址: http://blog.csdn.net/yhb315279058/article/details/51035631 Spark中的 ...
- win7计算机窗口像xp,windows7界面突然变成xp老版本怎么回事?win7界面突然变成老版本的解决方法...
现如今许多用户都给电脑安装windows7系统,安全稳定的特点赢得很多人的喜爱.可是在运行过程中难免会遇到一些问题,比如有位用户说windows7界面突然变成xp老版本,怎么回事呢?明明也没做什么设置 ...
- vs 警告当前源代码跟内置的版本不一致解决办法
vs 警告当前源代码跟内置的版本不一致解决办法, 我在网上搜了一圈,各种方法都试过了,还是不行,编译出来的可执行文件用的还是旧的代码,把代码删了还是不行.我就奇怪了vs在哪里保存了原来的版本. 后来我 ...
- qq炫舞手游显示无法连接服务器失败,qq炫舞手游无法连接版本服务器_QQ炫舞手游无法连接版本服务器解决方法_游戏吧...
QQ炫舞手游有玩家遇到了无法连接版本服务器的原因,想必大家都很想知道怎么办吧.下面游戏吧小编就为各位玩家带来了QQ炫舞手游无法连接版本服务器解决方法. 无法连接版本服务器 亲爱的玩家 由于网络问题,服 ...
- 因为计算机安装了更新i,电脑安装iTunes时提示这台电脑已安装了更高版本的解决方法图文教程...
最近有用户在电脑中安装iTunes软件时,出现了提示"这台电脑已安装了更高版本的Apple Software Update",如果遇到了这样的问题,这该怎么办呢?下面脚本之家的小编 ...
- Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法
Adobe flash cs5 的Java运行时环境初始化错误 完美解决方法 下载网络上的Adobe flash cs5 精简版(绿色版),Java运行时环境初始化时出现错误,你可能需要重装Flash ...
- hbase或hadoop错误及解决方法
hbase或hadoop错误及解决方法 参考文章: (1)hbase或hadoop错误及解决方法 (2)https://www.cnblogs.com/wukenaihe/archive/2013/0 ...
- “正尝试安装的adobe flash player不是最新版本”的解决方法:
在安装flash player 10时遇到提示"正尝试安装的adobe flash player不是最新版本"的解决方法: 执行 regedit,找到以下位置:[HKEY_LOCA ...
- 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件的解决方法(webpack热加载)
[README]webpack-dev-server 是一个支持热编译的服务器(动态编译) [1]问题 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件的 ...
最新文章
- 深度学习最近发现详细分析报告
- node.js中对 mysql 进行增删改查等操作和async,await处理
- leetcode 79:simplify path
- YARN中的失败分析
- 工作272:上传部分代码优化之两种上传视频的方式
- 【转】ABP源码分析二十八:ABP.MemoryDB
- 电动车充电器原理及带电路图维修
- laravel sql_mode 严格模式
- 条件数、奇异值与海森矩阵
- sql未保存文档找回
- 企业官方微博的视觉设计与营销策略分析
- python产生一个1到10的列表_python-列表生成式(一)
- 上了一堂健身课,27岁程序员尿尿像酱油!
- 安卓开发常用词汇总结
- 【商业数据分析】—— 用户价值RFM模型详解(小仙女搬运工)
- 如何恢复文件夹隐藏文件?超实用的2种技巧来了
- 中国食物链?(看不上,看不起,瞧不起,狗眼看人低)
- Linux系列:二进制 Byte为什么是-127—127范围
- CSDN开发者周刊:因制裁 多个地区GitHub账号使用受限!Python 之父考虑重构解释器​​​​​​​
- C语言初学零基础(一)——安装Visual Studio2022