搭建Spark分布式集群
来源:互联网 发布:php留言板代码 编辑:程序博客网 时间:2024/05/22 04:24
搭建Spark分布式集群
环境:
- Host OS: OS X Yosemite 10.10.2
- VM OS: ubuntu-14.04.3-server
- Java: jre-7u7-linux-x64
- Hadoop: hadoop-2.6.1
- Spark: spark-1.5.0-bin-hadoop2.6
1. 创建VM
在Virtualbox上新建一个Ubuntu 14.04 Server VM。网络设置为Bridged Adaptor,这样每一个VM会被路由器分配一个独立IP,从而VM之间可以互相交互,宿主与VM之间也可以互相交互。
将第一个创建好的VM取名为spark1.
下面在spark1上安装所需的dependencies。
2. 安装Dependencies
安装Java
由于在墙内下载jdk特别慢,这里到一个找到的链接人工下载,然后scp到VM。
http://download.csdn.net/detail/aqtata/8599477
gzip -d jdk-8u45-linux-x64.tar.gztar -xf jdk-8u45-linux-x64.tar
安装Scala
wget http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgzgzip -d scala-2.11.7.tgztar -xf scala-2.11.7.tarmv scala-2.11.7 /usr/local/opt/scala-2.11.7
安装Hadoop
wget http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gzgzip -d hadoop-2.6.0.tar.gztar -xf hadoop-2.6.0.tar.gz
安装Spark
wget http://mirrors.cnnic.cn/apache/spark/spark-1.5.0/spark-1.5.0-bin-hadoop2.6.tgzgzip -d spark-1.5.0-bin-hadoop2.6.tgztar -xf spark-1.5.0-bin-hadoop2.6.tar
3. 配置VM集群
现在配置3个node的集群。
复制VM
在spark1上安装完dependencies之后,再将其clone为两个相同的VM,取名为spark2,spark3.
配置IP
用ifconfig查看eth0的IP地址
spark1: 192.168.1.102spark2: 192.168.1.103spark3: 192.168.1.104
在宿主主机上修改/etc/hosts,添加
# spark cluster configuration192.168.1.102 master192.168.1.103 slave1192.168.1.104 slave2
这样,就将spark1配置为master,spark2和spark3配置为spark1的slaves。
同时,需要将这个设置拷贝到master的/etc/hosts上
scp /etc/hosts master:/etc/hosts
注意:
因为ubuntu server默认的hostname事bogon,这样在之后一系列初始化时(如Hadoop启动HDFS格式化,Spark的slave启动)会出现Unknown hostname error,这时需要将/etc/hostname中的bogon修改为对应的名称(master, slave1, slave2)
配置SSH
在master上输入以下命令。
ssh-keygencd ~/.sshcp id_rsa.pub authorized_keyscp id_rsa.pub slave1_id_rsa.pubcp id_rsa.pub slave2_id_rsa.pubscp authorized_keys slave1:~/.sshscp authorized_keys slave2:~/.ssh
配置Hadoop
Hadoop的部署相对来说比较繁琐,可以直接跳过这一步如果不打算采用HDFS。
cd /home/yeqing/hadoop-2.6.0/etc/hadoop/hadoop-env.shexport JAVA_HOME=/home/yeqing/jdk1.8.0_45
core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/tmp</value> </value> </property></configuration>
hdfs-site.xml
<configuration> <property> <name>dfs.name.dir</name> <value>/home/yeqing/hadoop/name/name1,/home/yeqing/hadoop/name/name2</value> </property> <property> <name>dfs.data.dir</name> <value>/home/yeqing/hadoop/data/data1,/home/yeqing/hadoop/data/data2</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property></configuration>
注:dfs.name.dir、dfs.data.dir目录不能人为创建,由Hadoop自动创建。
其中,
(1)dfs.name.dir是执行hadoop namenode -format时创建。
(2)dfs.data.dir是执行start-all.sh时创建。
mapred-site.xml
<configuration> <property> <name>mapred.job.tracker</name> <value>master:9001</value> </property> <property> <name>mapred.local.dir</name> <value>/home/yeqing/hadoop/mapred/mapred1,/home/yeqing/hadoop/mapred/mapred2</value> </property></configuration>
masters文件
master
slaves文件
slave1slave2
配置Spark
cd /home/yeqing/spark-1.5.0-bin-hadoop2.6/confcp spark-env.sh.template spark-env.sh
修改spark-env.sh,添加
export JAVA_HOME=/home/yeqing/jdk1.8.0_45export SPARK_HOME=/home/yeqing/spark-1.5.0-bin-hadoop2.6export SCALA_HOME=/home/yeqing/scala-2.11.7
修改slaves文件,添加
slave1slave2
注:slave1和slave2对应/etc/hosts中slave的IP
4. 测试
启动spark服务器集群
cd /home/yeqing/spark-1.5.0-bin-hadoop2.6./sbin/start-all.sh
到master:8080会出现以下界面
启动Spark Shell
./bin/spark-shell
打开master:4040会出现Spark Shell Application UI界面
5. 分析案例
(先挖坑,待续)
6. 其他
Spark CSV Library
这是个非常有用的library,能让Spark读写CSV
git clone https://github.com/databricks/spark-csvcd spark-csv./sbt/sbt package
参考:
Spark相关:
- http://www.tuicool.com/articles/MbuaUv
- http://my.oschina.net/mup/blog/387619
Hadoop相关:
- http://blog.csdn.net/aaronhadoop/article/details/24867257
- http://my.oschina.net/vigiles/blog/208430
其他:
- http://www.iteblog.com/archives/1380
- http://www.csdn.net/article/2015-02-13/2823955?ref=myread
- https://github.com/databricks/spark-csv
- 搭建Spark分布式集群
- 搭建Spark分布式集群
- Spark 分布式集群环境搭建
- spark完全分布式集群搭建
- spark分布式安装 spark集群搭建 hadoop集群搭建
- spark分布式安装 spark集群搭建 hadoop集群搭建
- 高效搭建Spark完全分布式集群
- spark环境搭建,伪分布式、集群
- Spark入门 - 1 搭建Hadoop分布式集群
- Spark 1.6.1分布式集群环境搭建
- linux spark分布式集群搭建图文详解
- Hadoop+Spark分布式集群搭建过程
- Spark 2.0分布式集群环境搭建
- SequoiaDB分布式数据库集群模式搭建Spark
- Spark 完全分布式集群搭建过程
- 构建Spark分布式集群第一步:搭建Hadoop伪分布式环境
- CentOS6.5下spark分布式集群的搭建
- 基于CentOS的Hadoop和Spark分布式集群搭建过程
- Connection #Facebook Relay文档翻译#
- 三种三栏网页宽度自适应布局方法
- gradle笔记
- 观察者设计模式
- 数组的增删改查的C语言实现
- 搭建Spark分布式集群
- 单点登录实现思路
- JPush极光推送
- String,StringBuffer与StringBuilder的区别??
- LINUX JDK Tomcat 安装
- java web 分页查询、显示
- 多线程的优先级与休眠
- UDP用户数据报协议
- 未初始化变量详解