美文网首页玩转大数据大数据
spark2.2 源码编译并安装部署

spark2.2 源码编译并安装部署

作者: 后端老鸟 | 来源:发表于2017-12-17 23:51 被阅读0次


【转载请注明出处】:https://www.jianshu.com/p/5f8dc1b520e5

1.环境说明

spark 运行在Java 8+、Python 2.7+/3.4+ 、 R 3.1+。spark2.2.0用scala2.11,编译的时候需要scala2.11.x、Maven 3.3.9+。

2.下载源码

git clone git://github.com/apache/spark.git -b branch-2.2

3.编译

设置maven的内存使用

export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"

如果编译SparkR这时需要R的安装环境

下载地址,https://cloud.r-project.org/

我是mac,下载的是mac的安装包 https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/macosx/R-3.4.3.pkg

其他系统类似,然后配置环境变量

export R_HOME=/Library/Frameworks/R.framework/Resources

export PATH=$R_HOME/bin:$PATH

安装R的依赖包

R -e "install.packages(c('knitr', 'rmarkdown', 'testthat', 'e1071', 'survival', 'devtools','roxygen2'), repos='http://cran.us.r-project.org')"

这下再执行编译命令

./dev/make-distribution.sh --pip --r --tgz -Psparkr -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn

如果不编译SparkR

./dev/make-distribution.sh --pip --tgz -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn

编译完

编译遇到的问题

3.1. Error in loadDF : java.net.ConnectException: Call From localhost/127.0.0.1 to localhost:8200 failed on connection exception: java.net.ConnectException: Connection refused; 

这个是因为在编译SparkR时,需要在hadoop运行上运行测试,启动hadoop就好了。

3.2. org.apache.spark.sql.AnalysisException: Path does not exist: hdfs://localhost:8200/work/tools/hdp/spark-2.2-src/examples/src/main/resources/people.json;

在编译SparkR运行测试例子时这个文件并没有上传到hdfs中,手动上传一下即可。

hadoop fs -mkdir -p /work/tools/hdp/spark-2.2-src/examples/src/main/resources/

hadoop fs -put /work/tools/hdp/spark-2.2-src/examples/src/main/resources/ /work/tools/hdp/spark-2.2-src/examples/src/main/resources/people.json 

3.3. checking PDF version of manual without hyperrefs or index ... ERROR    pdflatex is not available

在编译SparkR时需要pdflatex,这个错误是因为没有安装MikTeX,官网的地址是www.miktex.org,在官网的首页有各种系统的安装说明和安装方法,照着做即可。我在mac上安装时遇到了一些问题,mark一下

CMake Error at /usr/local/Cellar/cmake/3.10.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message):  Could NOT find GMP (missing: GMP_LIBRARY GMP_INCLUDE_DIR)

我在安装gmp时发现提示已经安装

brew install gmp

执行命令

brew link gmp

提示

Linking /usr/local/Cellar/gmp/6.1.2_1... Error: Could not symlink share/info/gmp.info/usr/local/share/info is not writable.

这是因为没有写/usr/local/share/info的权限,需要单独加权限

sudo chown -R $(whoami) /usr/local/share/info

重新执行

brew link gmp

brew install miktex

等待安装完miktex之后,命令都会安装在/usr/local/bin,使用下面命令进行检验

which pdflatex

输出

/usr/local/bin/pdflatex

如果没有,请重新打开terminal,如果无效有可能安装失败,需要重新安装,然后重新执行spark的编译命令。

4.安装

将编译好的安装包解压到安装目录

4.1 配置环境变量

vi /etc/profile

添加:

export SPARK_HOME=/work/tools/hdp/spark-2.2

export PATH=$SPARK_HOME/bin:$PATH

使变量生效

source /etc/profile

4.2.进入目录conf修改配置文件

4.2.1 spark-env.sh

cp spark-env.sh.template spark-env.sh

4.2.2 slaves

cp slaves.template slaves

4.2.3 log4j.properties

 cp log4j.properties.template log4j.properties

4.2.4 fairscheduler.xml

cp fairscheduler.xml.template fairscheduler.xml

到这里单节点的环境已经配置完了,启动spark

 sbin/start-all.sh

查看进程

jps

查看Spark的WebUI界面

http://localhost:8080/

打开spark-shell

spark-shell

spark-shell 的UI

http://localhost:4040/jobs/

至此,单节点安装已经完成。

【转载请注明出处】:https://www.jianshu.com/p/5f8dc1b520e5

相关文章

网友评论

    本文标题:spark2.2 源码编译并安装部署

    本文链接:https://www.haomeiwen.com/subject/sjezbxtx.html