【Spark学习】Spark 1.1.0 with CDH5.2 安装部署
【时间】2014年11月18日
【平台】Centos 6.5
【工具】scp
【软件】jdk-7u67-linux-x64.rpm
spark-worker-1.1.0+cdh5.2.0+56-1.cdh5.2.0.p0.35.el6.noarch.rpm
spark-core-1.1.0+cdh5.2.0+56-1.cdh5.2.0.p0.35.el6.noarch.rpm
spark-history-server-1.1.0+cdh5.2.0+56-1.cdh5.2.0.p0.35.el6.noarch.rpm
spark-master-1.1.0+cdh5.2.0+56-1.cdh5.2.0.p0.35.el6.noarch.rpm
spark-python-1.1.0+cdh5.2.0+56-1.cdh5.2.0.p0.35.el6.noarch.rpm
【步骤】
1. 准备条件
(1)集群规划
| 主机类型 | IP地址 | 域名 |
| master | 192.168.50.10 | master.hadoop.com |
| worker | 192.168.50.11 | slave1.hadoop.com |
| worker | 192.168.50.12 | slave2.hadoop.com |
| worker | 192.168.50.13 | slave3.hadoop.com |
(2)以root身份登录操作系统
(3)在集群中的每台主机上执行如下命令,设置主机名。
hostname *.hadoop.com
编辑文件/etc/sysconfig/network如下
HOSTNAME=*.hadoop.com
(4)修改文件/etc/hosts如下
192.168.86.10 master.hadoop.com
192.168.86.11 slave1.hadoop.com
192.168.86.12 slave2.hadoop.com
192.168.86.13 slave3.hadoop.com
执行如下命令,将hosts文件复制到集群中每台主机上
.*:/etc/hosts
(5)安装jdk
rpm -ivh jdk-7u67-linux-x64.rpm
创建文件
echo -e "JAVA_HOME=/usr/java/default\nexport PATH=\$JAVA_HOME/bin:\$PATH" > /etc/profile.d/java-env.sh
. /etc/profile.d/java-env.sh
(6)安装hadoop-client
yum install hadoop-client
(7)关闭iptables
service iptables stop
chkconfig iptables off
(8)关闭selinux。修改文件/etc/selinux/config,然后重启操作系统
SELINUX=disabled
2. 安装
yum install spark-core spark-master spark-worker spark-history-server spark-python
3. 配置。将以下文件修改完毕后,用scp命令复制到集群中的所有主机上
(1)修改文件/etc/spark/conf/spark-env.sh
export STANDALONE_SPARK_MASTER_HOST= master.hadoop.com
(2)修改文件/etc/spark/conf/spark-defaults.conf
spark.master spark://master.hadoop.com:7077
spark.eventLog.enabled true
spark.eventLog.dir hdfs://master.hadoop.com:8020/user/spark/eventlog
spark.yarn.historyServer.address http://master.hadoop.com:18081
spark.executor.memory 2g
spark.logConf true
(3)修改文件/etc/default/spark 必须设置此环境变量,否则,history server的WebUI上无法显示任务信息
export SPARK_HISTORY_SERVER_LOG_DIR=hdfs://master.hadoop.com:8020/user/spark/eventlog 用于history server读取任务日志
(4)复制配置文件到集群所有主机
scp /etc/spark/conf/* 192.168.50.10:/etc/spark/conf/*
(5)在HDFS上执行如下操作
sudo -u hdfs hadoop fs -mkdir /user/spark
sudo -u hdfs hadoop fs -mkdir /user/spark/applicationHistory
sudo -u hdfs hadoop fs -chown -R spark:spark /user/spark
/user/spark/applicationHistory
4. 优化。向HDFS上传spark-assembly.jar文件,从而提高集群加载该依赖文件的速度;上传spark-examples.jar文件是为了提高cluster模式下加载应用程序的速度
(1)在集群中的每台主机上修改文件 /etc/spark/conf/spark-defaults.conf
spark.yarn.jar hdfs://master.hadoop.com:8020/user/spark/share/lib/spark-assembly.jar
(2)执行如下命令
sudo -u hdfs hadoop fs -mkdir -p /user/spark/share/lib
-cdh5.2.0-hadoop2.5.0-cdh5.2.0.jar /user/spark/share/lib/spark-assembly.jar
-cdh5.2.0-hadoop2.5.0-cdh5.2.0.jar /user/spark/share/lib/spark-examples.jar
sudo -u hdfs hadoop fs -chown -R root:spark /user/spark/share/lib
5. 启动spark
(1)在集群中选择一台主机作为master,并执行如下命令
service spark-master start
service spark-history-server start
注意:history server服务可以单独部署在一台主机上
(2)在集群中的其他所有主机上执行如下命令
service spark-worker start
6. 测试。向Spark提交程序,有三种工具可用:spark-shell、pyspark、spark-submit
(1)执行如下命令,进入交互式模式,运行scala代码测试
spark-shell --driver-library-path /usr/lib/hadoop/lib/native/ --driver-class-path /usr/lib/hadoop/lib/
输入以下代码
val file = sc.textFile("hdfs://master.hadoop.com:8020/tmp/input.txt")
val counts = )).reduceByKey(_ + _)
counts.saveAsTextFile("hdfs://master.hadoop.com:8020/tmp/output")
运行完毕,执行exit或者ctrl-d退出
(2)执行如下命令,进入交互式模式,运行python代码测试
pyspark --driver-library-path /usr/lib/hadoop/lib/native/ --driver-class-path /usr/lib/hadoop/lib/
运行完毕,执行exit()、quit()或者ctrl-d退出
(3)执行如下命令,使用非交互式模式执行测试代码
1)local[N]执行模式: 使用N个worker线程在本地运行Spark应用程序(其中N代表线程数,默认为1。请根据你本地主机的CPU核数而定)
spark-submit --class org.apache.spark.examples.SparkPi --deploy-mode client --master local[N] --driver-library-path /usr/lib/hadoop/lib/native/ \
--driver-class-path /usr/lib/hadoop/lib/ /usr/lib/spark/examples/lib/spark-examples-1.1.0-cdh5.2.0-hadoop2.5.0-cdh5.2.0.jar 10
2)local[*]执行模式: 使用你本地主机上所有剩余的worker线程在本地运行Spark应用程序
spark-submit --class org.apache.spark.examples.SparkPi --deploy-mode client --master local[*] --driver-library-path /usr/lib/hadoop/lib/native/ \
--driver-class-path /usr/lib/hadoop/lib/ /usr/lib/spark/examples/lib/spark-examples-1.1.0-cdh5.2.0-hadoop2.5.0-cdh5.2.0.jar 10
3)standalone client执行模式: 连接到Spark Standalone集群,driver在client运行,而executor在cluster中运行。
spark-submit --class org.apache.spark.examples.SparkPi --deploy-mode client --master spark://master.hadoop.com:7077 --driver-library-path /usr/lib/hadoop/lib/native/ \
--driver-class-path /usr/lib/hadoop/lib/ /usr/lib/spark/examples/lib/spark-examples-1.1.0-cdh5.2.0-hadoop2.5.0-cdh5.2.0.jar 10
4)standalone cluster执行模式: 连接到Spark Standalone集群,driver和executor都在cluster中运行。
spark-submit --class org.apache.spark.examples.SparkPi --deploy-mode cluster --master spark://master.hadoop.com:7077 --driver-library-path /usr/lib/hadoop/lib/native/ \
--driver-class-path /usr/lib/hadoop/lib/ hdfs://master.hadoop.com:8020/user/spark/share/lib/spark-examples.jar 10
5)yarn-client执行模式: 连接到YARN集群,driver在client运行,而executor在cluster中运行。(需要安装部署YARN集群)
spark-submit --class org.apache.spark.examples.SparkPi --deploy-mode client --master yarn --driver-library-path /usr/lib/hadoop/lib/native/ \
--driver-class-path /usr/lib/hadoop/lib/ /usr/lib/spark/examples/lib/spark-examples-1.1.0-cdh5.2.0-hadoop2.5.0-cdh5.2.0.jar 10
6)yarn-cluster执行模式: 连接到YARN集群,driver和executor都在cluster中运行。(需要安装部署YARN集群)
spark-submit --class org.apache.spark.examples.SparkPi --deploy-mode cluster --master yarn --driver-library-path /usr/lib/hadoop/lib/native/ \
--driver-class-path /usr/lib/hadoop/lib/ hdfs://master.hadoop.com:8020/user/spark/share/lib/spark-examples.jar 10
注意:命令参数请依据需要而定;以上spark-submit的六种模式中,*.jar文件可以换成*.py以执行python代码;更多参数可以参考命令“spark-submit --help”
7. 停止spark
service spark-master stop
service spark-worker stop
service spark-history-server stop
8. 查看spark集群状态
(1)Standalone模式,登录http://192.168.50.10:18080
(2)Standalone模式,登录http://192.168.50.10:18081
(3)YARN模式,登录http://192.168.50.10:8088
【参考】
1)http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_spark_installation.html
2)http://blog.csdn.net/book_mmicky/article/details/25714287
【扩展】
1)JavaChen's Blog Spark安装和使用 http://blog.javachen.com/2014/07/01/spark-install-and-usage/
2) China_OS's Blog Hadoop CDH5 学习 http://my.oschina.net/guol/blog?catalog=483307
3)Spark on Yarn遇到的几个问题 http://www.cnblogs.com/Scott007/p/3889959.html
4)How to Run Spark App on CDH5 http://muse.logdown.com/posts/2014/08/26/how-to-run-spark-app-on-cdh5
5)Cloudera Spark on GitHub https://github.com/cloudera/spark
6)deploy Spark Server and compute Pi from your Web Browser http://gethue.com/get-started-with-spark-deploy-spark-server-and-compute-pi-from-your-web-browser/
【Spark学习】Spark 1.1.0 with CDH5.2 安装部署的更多相关文章
- Linux平台Oracle 12.1.0.2 单实例安装部署
主题:Linux平台Oracle 12.1.0.2 单实例安装部署 环境:RHEL 6.5 + Oracle 12.1.0.2 需求:安装部署OEM 13.2需要Oracle 12.1.0.2版本作为 ...
- spark学习7(spark2.0集群搭建)
第一步:安装spark 将官网下载好的spark-2.0.0-bin-hadoop2.6.tgz上传到/usr/spark目录下.这里需注意的是spark和hadoop有对应版本关系 [root@sp ...
- redis4.0.1集群安装部署
安装环境 序号 项目 值 1 OS版本 Red Hat Enterprise Linux Server release 7.1 (Maipo) 2 内核版本 3.10.0-229.el7.x86_64 ...
- 0、ubuntu16.04安装部署kvm
ubuntu16.04安装部署kvm1.查看CPU是否支持KVM egrep "(svm|vmx)" /proc/cpuinfo 2.安装相关kvm包 sudo apt-get i ...
- 【转载】Spark学习——spark中的几个概念的理解及参数配置
首先是一张Spark的部署图: 节点类型有: 1. master 节点: 常驻master进程,负责管理全部worker节点.2. worker 节点: 常驻worker进程,负责管理executor ...
- spark学习6(Centos下Scala2.11.4安装)
Centos下Scala安装 上传Scala到/usr/scala目录下 [root@spark1 scala]# chmod u+x scala-2.11.4.tgz #修改权限 [root@spa ...
- 【Hadoop学习】CDH5.2安装部署
[时间]2014年11月19日 [平台]Centos 6.5 [工具]scp [软件]jdk-7u67-linux-x64.rpm CDH5.2.0-hadoop2.5.0 [步骤] 1. 准备条件 ...
- centos7 ambari2.6.1.5+hdp2.6.4.0 大数据集群安装部署
前言 本文是讲如何在centos7(64位) 安装ambari+hdp,如果在装有原生hadoop等集群的机器上安装,需要先将集群服务停掉,然后将不需要的环境变量注释掉即可,如果不注释掉,后面虽然可以 ...
- Redis学习笔记(2)——Redis的下载安装部署
一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...
随机推荐
- uva 825
这个......小学生就会的 坑在输入输出了 两个数之间可能不止一个空格....wa了好几遍啊 #include <cstdio> #include <cstring> # ...
- C++11新特性:右值引用和转移构造函数
问题背景 #include <iostream> using namespace std; vector<int> doubleValues (const vector< ...
- POJ 1562 && ZOJ 1709 Oil Deposits(简单DFS)
题目链接 题意 : 问一个m×n的矩形中,有多少个pocket,如果两块油田相连(上下左右或者对角连着也算),就算一个pocket . 思路 : 写好8个方向搜就可以了,每次找的时候可以先把那个点直接 ...
- URAL 1012 K-based Numbers. Version 2(DP+高精度)
题目链接 题意 :与1009一样,不过这个题的数据范围变大. 思路:因为数据范围变大,所以要用大数模拟,用java也行,大数模拟也没什么不过变成二维再做就行了呗.当然也可以先把所有的都进行打表,不过要 ...
- java I/O Stream 代码学习总结
一. InputStream 类学习介绍 mark方法 public void mark(int readlimit) 在此输入流中标记当前的位置.对 reset 方法的后续调用会在最后标记的位置重新 ...
- NPOI.dll学习
NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 简介 编辑 使用 NPOI 你就可以在没有安装 Office 或者相应环 ...
- PHP基础语法3
文件系统 判断文件是否存在 如果只是判断文件存在,使用file_exists就行,file_exists不仅可以判断文件是否存在,同时也可以判断目录是否存在,从函数名可以看出, is_file是确切的 ...
- ANDROID_MARS学习笔记_S01_006ImageView
一.ImageView介绍 设置scalType Must be one of the following constant values. Constant Value Description ma ...
- raid之理解
RAID方案有两种,一种是硬件RAID解决方案,一种是软RAID解决方案. 硬件RAID解决方案 1.RAID 0 RAID 0是最早出现的RAID模式,即Data Stripping数据分条技术.R ...
- 【HDOJ】4652 Dice
1. 题目描述对于m面的骰子.有两种查询,查询0表示求最后n次摇骰子点数相同的期望:查询1表示最后n次摇骰子点数均不相同的期望. 2. 基本思路由期望DP推导,求得最终表达式.(1) 查询0 不 ...