【转载请注明出处】: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界面
打开spark-shell
spark-shell
spark-shell 的UI
至此,单节点安装已经完成。
【转载请注明出处】:https://www.jianshu.com/p/5f8dc1b520e5
网友评论