《Spark Cookbook 中文版》一1.3 通过Maven构建Spark源码

1.3 通过Maven构建Spark源码

在大多数情况下使用二进制文件安装Spark已经足够了。对于一些高级的需求(并不局限于下列需求),通过源码编译是个更好的选择。

  • 需要使用特定的Hadoop版本进行编译。
  • 集成Hive。
  • 集成YARN。

1.3.1 准备工作

开始本篇教程之前需要以下必备条件。

  • Java 1.6或更新版本。
  • Maven 3.x。

1.3.2 具体步骤

使用Maven构建Spark源码的步骤如下。

1.增大堆的MaxPermSize参数。

$ echo "export _JAVA_OPTIONS=\"-XX:MaxPermSize=1G\"" >> /home/
 hduser/.bashrc

2.打开一个新的终端窗口并通过GitHub下载源码。

$ wget https://github.com/apache/spark/archive/branch-1.4.zip

3.解压缩文档。

$ gunzip branch-1.4.zip

4.进入spark目录。

$ cd spark

5.通过以下标签编译源码:激活Yarn、Hadoop版本设置为2.4,激活Hive以及跳过测试以加快编译速度。

$ mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive
-DskipTests clean package

6.为了制作软链接,把conf目录移动到etc目录下。

$ sudo mv spark/conf /etc/

7.把spark目录移动到/opt,因为spark是一个附加软件包。

$ sudo mv spark /opt/infoobjects/spark

8.设置root为spark主目录的权限用户。

$ sudo chown -R root:root /opt/infoobjects/spark

9.修改spark主目录的权限,0755意味着主用户将拥有读写和执行权限,而同组用户和其他用户拥有读和执行权限。

$ sudo chmod -R 755 /opt/infoobjects/spark

10.进入spark主目录。

$ cd /opt/infoobjects/spark

11.创建软链接。

$ sudo ln -s /etc/spark conf

12.在.bashrc文件中添加到PATH变量。

$ echo "export PATH=$PATH:/opt/infoobjects/spark/bin" >> /home/
   hduser/.bashrc

13.在/var目录下创建log目录。

$ sudo mkdir -p /var/log/spark

14.设置hduser为Spark log目录的权限用户。

$ sudo chown -R hduser:hduser /var/log/spark

15.在Spark下创建tmp目录。

$ mkdir /tmp/spark

16.在以下命令的帮助下配置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
时间: 2024-09-16 18:42:52

《Spark Cookbook 中文版》一1.3 通过Maven构建Spark源码的相关文章

《Spark Cookbook 中文版》一导读

前 言 Spark Cookbook 中文版 随着Hadoop这个大数据平台的成功,用户的期望也水涨船高,他们既希望解决不同分析问题的功能提高,又希望减少延迟.由此,各类工具应运而生.Apache Spark这个可以解决所有问题的单一平台也出现在了Hadoop的大舞台上."Spark一出,谁与争锋",它终结了需要使用多种工具来完成复杂挑战和学习曲线的局面.通过使用内存进行持久化存储和计算,Apache Spark避免了磁盘上的中间存储过程并将速度提高了100倍,并且提供了一个单一平台用

《Spark Cookbook 中文版》一第1章 开始使用Apache Spark

第1章 开始使用Apache Spark Spark Cookbook 中文版在本章中,我们将介绍安装和配置Spark,包括如下内容. 通过二进制可执行文件安装Spark. 通过Maven构建Spark源码. 在Amazon EC2上安装Spark. 在集群上以独立模式部署Spark. 在集群上使用Mesos部署Spark. 在集群上使用YARN部署Spark. 使用Tachyon作为堆外存储层.

maven导入Struts2源码项目时报错

问题描述 maven导入Struts2源码项目时报错 No marketplace entries found to handle core/pom.xml in Eclipse. Please see Help for more information. 解决方案 没有找到这个文件?或者不识别

《Spark Cookbook 中文版》一1.5 在集群上以独立模式部署Spark

1.5 在集群上以独立模式部署Spark 在分布式环境中的计算资源需要管理,使得资源利用率高,每个作业都有公平运行的机会.Spark有一个便利的被称为独立模式的自带集群管理器.Spark也支持使用YARN或者Mesos做为集群管理器. 选择集群处理器时,主要需要考虑延迟以及其他架构,例如MapReduce,是否共享同样的计算资源池.如果你的集群运行着旧有的MapReduce作业,并且这些作业不能转变为Spark作业,那么使用YARN作为集群管理器是个好主意.Mesos是一种新兴的.方便跨平台管理

《Spark Cookbook 中文版》一1.7 在集群上使用YARN部署

1.7 在集群上使用YARN部署 另一种资源协调者(YARN)是基于HDFS这个Hadoop存储层的Hadoop计算框架. YARN遵循主从架构.主守护进程被称为资源管理器(ResourceManager),从守护进程被称为节点管理器(NodeManager).除此之外,生命周期管理由ApplicationMaster负责,它可以被派生到任何从节点上并可以生存一个应用的生命周期时长. 如果Spark运行在YARN上的话,资源管理器充当Spark master,节点管理器充当执行节点. 如果Spa

《Spark Cookbook 中文版》一1.2 使用二进制文件安装Spark

1.2 使用二进制文件安装Spark Spark既可以通过源码安装也可以通过预编译二进制安装,下载地址为http://spark.apache.org.对于标准使用场景来说,二进制安装已经足够了,这里将主要介绍通过二进制文件安装Spark. 1.2.1 准备工作 本书的所有教程都是适用于Ubuntu Linux系统的,不过应该也适用于任何POSIX环境.在安装Spark之前,首先需要安装好Java,并且配置好JAVA_HOME环境变量. 在Linux/Unix系统中,文件和目录的位置是有特定标准

《Spark Cookbook 中文版》一1.1 简介

1.1 简介 Apache Spark是一个用于处理大数据工作流的多功能集群计算系统.Spark在速度.易用性以及分析能力上都强于它的前辈们(如MapReduce). Apache Spark最初在2009年,由加州大学伯克利分校的AMPLab实验室研发,在2010年按照BSD协议实现开源,并在2013年转为Apache 2.0协议.到2013年下半年,Spark的创始人建立了Databricks,专注于Spark的研发和未来的公开发行. 谈到速度,Spark大数据工作流的处理可以达到亚秒级别的

《Spark Cookbook 中文版》一1.6 在集群上使用Mesos部署Spark

1.6 在集群上使用Mesos部署Spark Mesos正慢慢崛起为跨数据中心管理所有计算资源的数据中心管理系统.Mesos可以运行在任意一台Linux操作系统的机器上.Mesos与Linux内核有着相同的配置原则.让我们看看如何安装Mesos. 具体步骤 Mesosphere提供Mesos的二进制安装包.最新的Mesos分布式安装包可以通过Mesosphere库按照如下步骤安装. 1.在Ubuntu操作系统的可靠版本上执行Mesos. $ sudo apt-key adv --keyserve

《Spark Cookbook 中文版》一1.8 使用Tachyon作为堆外存储层

1.8 使用Tachyon作为堆外存储层 Spark弹性分布式数据集(RDD)很适合在内存上存储数据集,可以在不同应用上存储大量备份.Tachyon可以解决Spark RDD管理的一些挑战性问题,如下所示. RDD仅存在于Spark应用期间.计算程序和RDD内存存储共享同样的执行过程:所以,如果一个进程崩溃了,那么内存存储也会消失.即使处理同样的底层数据,不同作业的RDD是不能共享的,例如使用HDFS数据块.慢速写入磁盘.在内存中备份数据,更高的内存占用.如果需要与其他应用程序共享输出,由于需要