基于cdh5.10.x hadoop版本的apache源码编译安装spark
参考文档:http://spark.apache.org/docs/1.6.0/building-spark.html
spark安装需要选择源码编译方式进行安装部署,cdh5.10.0提供默认的二进制安装包存在未知问题,如果直接下载spark二进制安装文件,配置完成后会发现启动spark及相关使用均会报错。
编译spark需要联网,spark使用scala语言编写,所以运行spark需要scala语言,上一步已经安装了scala,scala使用java编写,所以安装scala需要jdk支持,上文已经安装了jdk环境,同时编译spark最好手动安装maven,这里主要目的是更改maven工程镜像地址为国内镜像地址,这样可以加快spark编译安装速度,最主要的是可能你使用原生地址会出现各种奇怪问题,这也是我们独一无二的国情所决定的,国内想培养出顶尖级别计算机科学家,除了良好教育方式的欠缺,基于这些先决条件估计也是不可能的。
1、下载spark安装介质
maven安装介质:http://archive.apache.org/dist/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz
spark源码包:http://archive.apache.org/dist/spark/spark-1.6.0/spark-1.6.0.tgz
2、安装mave:
1)解压缩maven
tar -zxvf apache-maven-3.3.3-bin.tar.gz
mv apache-maven-3.3.3 /opt/service/maven-3.3.3
chown -R hadoop:hadoop /opt/service/maven-3.3.3/
2)配置maven环境变量:
export MAVEN_HOME=/opt/service/maven-3.3.3
export PATH=$MAVEN_HOME/bin:$PATH
3)本机编译环境如下:
#java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
# scala -version
Scala code runner version 2.10.6 -- Copyright 2002-2013, LAMP/EPFL
# mvn -version
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T19:57:37+08:00)
Maven home: /opt/service/maven-3.3.3
Java version: 1.7.0_67, vendor: Oracle Corporation
Java home: /opt/service/jdk1.7.0_67/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-514.el7.x86_64", arch: "amd64", family: "unix"
4)修改maven仓库默认位置:
vim conf/settings.xml
--添加如下内容:
<localRepository>/home/hadoop/.m2/repository/</localRepository>
5)修改maven镜像位置为阿里云的maven镜像仓库
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
</mirrors>
更改完成之后可以在命令行,执行命令验证一下:mvn help:system
命令执行完成后我们可以在目录/home/hadoop/.m2/repository/下看到很多文件,这时表示maven已经配置成功了。
$ ls /home/hadoop/.m2/repository/
backport-util-concurrent classworlds com commons-cli commons-lang jdom jtidy junit org plexus xmlpull xpp3
3、编译spark源码
sudo tar -zxvf spark-1.6.0.tgz
sudo chown -R hadoop:hadoop spark-1.6.0
cd spark-1.6.0
vim pom.xml
==注释掉以下部分,否则编译过程会报错:
<!-- For transitive dependencies brougt by parquet-thrift -->
<repository>
<id>twttr-repo</id>
<name>Twttr Repository</name>
<url>http://maven.twttr.com</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
1)maven方式编译spark:
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
nohup mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0 -Phive -Phive-thriftserver -Dmaven.test.skip=true package -X >> spark_build_log.output & tail -f spark_build_log.output --已测试通过
nohup mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0 -Phive -Phive-thriftserver -Pspark-ganglia-lgpl -Dmaven.test.skip=true package -X >> spark_build_log.output & tail -f spark_build_log.output --未测试
2)打包工程:
vim make-distribution.sh
修改 MVN="$SPARK_HOME/build/mvn" 为 MVN="/opt/service/maven-3.3.3/bin/mvn" 形式,保存。
./make-distribution.sh --tgz --name 2.6.0 -Pyarn -Phadoop-2.6 -Pspark-ganglia-lgpl -P hive --已测试通过
./make-distribution.sh --tgz --name -Phadoop-2.6 -Dhadoop-version=2.6.0 -Pyarn -Phive-1.1.0 -Phive-thriftserver -Pspark-ganglia-lgpl --未测试
--注意:编译过程中出现问题,根据日志输出处理问题,然后重复执行以上两步,直到编译成功为止。
3)编译成功后会在spark源码包根目录下生成spark tar包文件:
$ls spark-1.6.0-bin-2.6.0.tgz
spark-1.6.0-bin-2.6.0.tgz
4、安装spark
tar -zxvf spark-1.6.0-bin-2.6.0.tgz -C /opt/cdh5/
cd /opt/cdh5/spark-1.6.0
5、配置环境变量
:spart-env.sh
JAVA_HOME=/opt/service/jdk1.7.0_67
SCALA_HOME=/opt/service/scala-2.10.6
HADOOP_CONF_DIR=/opt/cdh5/hadoop-2.6.0-cdh5.10.0/etc/hadoop
SPARK_MASTER_IP=db01
SPARK_MASTER_PORT=7077
SPARK_MASTER_WEBUI_PORT=8080
SPARK_WORKER_CORES=8
SPARK_WORKER_MEMORY=5g
SPARK_WORKER_PORT=7078
SPARK_WORKER_WEBUI_PORT=8081
SPARK_WORKER_INSTANCES=4
SPARK_WORKER_DIR=/opt/cdh5/spark-1.6.0/data/tmp
:slaves
db02
db03
db04
db05
6、配置spark-defaults.conf文件:不配置此选项运行spark服务还是在local模式下运行。
spark.master spark://db01:7077
7、scp安装文件到其他节点
scp -r spark-1.6.0/ db02:/opt/cdh5/
scp -r spark-1.6.0/ db03:/opt/cdh5/
scp -r spark-1.6.0/ db04:/opt/cdh5/
scp -r spark-1.6.0/ db05:/opt/cdh5/
8、启动spark集群
sbin/start-master.sh
sbin/start-slaves.sh
基于cdh5.10.x hadoop版本的apache源码编译安装spark的更多相关文章
- Apache源码编译安装脚本
Apache是开源的的.最流行的Web服务器软件之一,它快速.可靠并且可通过简单的API扩充,将Perl/Python/PHP等解释器编译到服务器中.Apache的模块超多,以及具有运行稳定,强大 ...
- apache源码编译安装
源码安装apche 下载apache的源码包文件 访问http://mirror.bit.edu.cn/apache/httpd/,复制如下gz文件的链接地址,并使用wget下载到本地 wget -P ...
- centos 7.1 apache 源码编译安装
Apache编译安装 一,需要软件: http://mirrors.cnnic.cn/apache//apr/apr-1.5.2.tar.gz 1.apr-1.5.2.tar.gz http://mi ...
- apache源码编译安装详解
查看是否安装 rpm -qa httpd 如果已安装,则卸载:rpm -e 卸载 --nodeps 不考虑意外 下载 wget http://mirrors.sohu.c ...
- Apache源码包安装和子配置文件介绍--update.2014-12-5
安装apache: 官网:http://httpd.apache.org/download.cgi#apache24 1.wget http://mirror.bit.edu.cn/apache//h ...
- centos 6.5源码编译安装subversion 1.8.10
一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网 ...
- zstack源码编译安装(1.7.x版本)
图片没粘贴过来,请看本人gitbook吧https://www.gitbook.com/book/jingtyu/how-to-learn-zstack-code 运行环境 zstack的安装方式有很 ...
- centos7 源码编译安装TensorFlow CPU 版本
一.前言 我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢. ...
- mysql5.7.10 源码编译安装记录 (centos6.4)【转】
一.准备工作 1.1 卸载系统自带mysql 查看系统是否自带MySQL, 如果有就卸载了, 卸载方式有两种yum, rpm, 这里通过yum卸载 rpm -qa | grep mysql //查看系 ...
随机推荐
- Boinx FotoMagico for Mac(电子相册制作工具)破解版安装
1.软件简介 FotoMagico 是 macOS 系统上一款非常好用的电子视频相册制作工具,FotoMagico 被誉为 Mac 上的「会声会影」,我们可以使用这款软件快速的制作出精美的音乐视 ...
- [Aaronyang] 写给自己的WPF4.5 笔记16[多线程]
=============潇洒的版权线==========www.ayjs.net===== Aaronyang ========= AY =========== 安徽 六安 杨洋 ======= ...
- oradim新建服务后,登录数据库报ORA-12560错误
> oradim -new -sid mydb 实例已创建. > sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Production on 星期二 ...
- BigDecimal乘法
BigDecimal result = new BigDecimal(doubleValue).multiply(factor2); public class Payment { BigDecimal ...
- 并发和多线程-说说面试长提平时少用的volatile
说到volatile,一些参加过面试的同学对此肯定不陌生. 它是面试官口中的常客,但是平时的编码却很少打照面(起码,我是这样的). 最近的面试,我也经常会问到volatile相关的问题,比如volat ...
- [k8s]一些技巧性的yaml和dockerfile-docker学习思路
我会把一些dockerfile和yaml的技巧性东西不定期搜集到这里 docker学习思路 三部曲: 1,vm会搭建服务 2,docker会跑服务 3,k8s集群会调度该服务 存储 vm1 vm2 共 ...
- 物联网架构成长之路(7)-EMQ权限验证小结
1. 前言 经过前面几小节,讲了一下插件开发,这一小节主要对一些代码和目录结构进行讲解,这些都是测试过程中一些个人经验,不一定是官方做法.而且也有可能会因为版本不一致导致差异. 2. 目录结构 这个目 ...
- 如何在TextView类中创建超链接 Linkify
Linkify是一个辅助类,通过RegEx样式匹配,自动地在TextView类(和继承的类)中创建超链接.符合特定的RegEx样式的文本会被转变成可点击的超链接,这些超链接隐式的调用startActi ...
- Android Launcher分析和修改12——Widget列表信息收集
很久没写Launcher分析的文章,最近实在太忙.今天七夕本来是想陪女朋友逛街 ,碰巧打台风呆在家里,就继续写一篇文章.今天主要是讲一下Launcher里面的Widget列表,这方面信息比较多,今天重 ...
- 史上最详细的JavaScript事件使用指南
事件流 事件流描述的是从页面中接收事件的顺序,IE和Netscape提出来差不多完全相反的事件流的概念,IE事件流是事件冒泡流,Netscape事件流是事件捕获流. 事件冒泡 IE的事件流叫做事件冒泡 ...