本节书摘来异步社区《Spark Cookbook 中文版》一书中的第1章,第1.3节,作者: 【印度】Rishi Yadav(亚达夫)译者: 顾星竹 , 刘见康 责编: 胡俊英,更多章节内容可以访问云栖社区“异步社区”公众号查看。
在大多数情况下使用二进制文件安装Spark已经足够了。对于一些高级的需求(并不局限于下列需求),通过源码编译是个更好的选择。
需要使用特定的Hadoop版本进行编译。集成Hive。集成YARN。开始本篇教程之前需要以下必备条件。
Java 1.6或更新版本。Maven 3.x。使用Maven构建Spark源码的步骤如下。
1.增大堆的MaxPermSize参数。
$ echo "export _JAVA_OPTIONS=\"-XX:MaxPermSize=1G\"" >> /home/ hduser/.bashrc2.打开一个新的终端窗口并通过GitHub下载源码。
$ wget https://github.com/apache/spark/archive/branch-1.4.zip3.解压缩文档。
$ gunzip branch-1.4.zip4.进入spark目录。
$ cd spark5.通过以下标签编译源码:激活Yarn、Hadoop版本设置为2.4,激活Hive以及跳过测试以加快编译速度。
$ mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive -DskipTests clean package6.为了制作软链接,把conf目录移动到etc目录下。
$ sudo mv spark/conf /etc/7.把spark目录移动到/opt,因为spark是一个附加软件包。
$ sudo mv spark /opt/infoobjects/spark8.设置root为spark主目录的权限用户。
$ sudo chown -R root:root /opt/infoobjects/spark9.修改spark主目录的权限,0755意味着主用户将拥有读写和执行权限,而同组用户和其他用户拥有读和执行权限。
$ sudo chmod -R 755 /opt/infoobjects/spark10.进入spark主目录。
$ cd /opt/infoobjects/spark11.创建软链接。
$ sudo ln -s /etc/spark conf12.在.bashrc文件中添加到PATH变量。
$ echo "export PATH=$PATH:/opt/infoobjects/spark/bin" >> /home/ hduser/.bashrc13.在/var目录下创建log目录。
$ sudo mkdir -p /var/log/spark14.设置hduser为Spark log目录的权限用户。
$ sudo chown -R hduser:hduser /var/log/spark15.在Spark下创建tmp目录。
$ mkdir /tmp/spark16.在以下命令的帮助下配置Spark。
$ cd /etc/spark $ echo "export HADOOP_CONF_DIR=/opt/infoobjects/hadoop/etc/hadoop" >> spark-env.sh $ echo "export YARN_CONF_DIR=/opt/infoobjects/hadoop/etc/Hadoop" >> spark-env.sh $ echo "export SPARK_LOG_DIR=/var/log/spark" >> spark-env.sh $ echo "export SPARK_WORKER_DIR=/tmp/spark" >> spark-env.sh 相关资源:Apache Spark for Data Science Cookbook