docker1.7 搭建spark1.4.0-hadoop2.6集群
1 概述 现在国内的资料很少,即使你看到了,资料也不是很全,每个人都为中国在这方面做点贡献,也是为了相互学习。作为学习Spark中的一个重要环节--搭建Spark集群,此次搭建环境使用了Docker1.7,Spark1.4-hadoop2.6,搭建的集群环境,操作系统为CentOS6.5,内存4G2 升级Linux内核具体的什么是Docker,以及Docker的基本原理等,我在这里就不在介绍了。2.1 查看系统内核版本# lsb_release -aLSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarchDistributor ID: CentOS
Description: CentOS release 6.5 (Final)
Release: 6.5
Codename: Final
# uname -a
Linux xxxxxxx 2.6.32-431.23.3.el6.x86_64 #1 SMP Thu Jul 31 17:20:51 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
因为 Docker 推荐使用 3.8 以上内核,所以我们选择使用 YUM 方式来升级内核。
2.2 升级Linux内核版本2.2.1 联网安装 (本部分参考http://dockerpool.com/article/1415195109)# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# yum --enablerepo=elrepo-kernel install kernel-lt -yvi/etc/grub.conf 修改默认的启动内核,新安装的内核一般在第一个,这里把default= 1 改为 default= 0 就好了。重启云主机,查看内核是否升级成功。
# uname -a
Linux xxxxxxx 3.10.59-1.el6.elrepo.x86_64 #1 SMP Thu Oct 30 23:46:31 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
注意:不知道怎么的使用的他们的办法行不通,升级的Linux内核版本还是2.6的,改为下载rpm包安装2.2.2手动安装下载kernel-lt-3.10.86-1.el6.elrepo.x86_64.rpm,下载地址:http://elrepo.reloumirrors.net/kernel/el6/x86_64/RPMS/kernel-lt-3.10.86-1.el6.elrepo.x86_64.rpmrpm -ivh kernel-lt-3.10.86-1.el6.elrepo.x86_64.rpmvi /etc/grub.conf 修改默认的启动内核,新安装的内核一般在第一个,这里把default= 1 改为 default= 0 就好了。重启云主机,查看内核是否升级成功。
# uname -a
Linux xxxxxxx 3.10.86-1.el6.elrepo.x86_64 #1 SMP Thu Oct 30 23:46:31 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
3 安装与配置Docker(保持网络畅通)3.1 安装yum install docker-io3.2 配置文件# vi /etc/sysconfig/docker
other-args列更改为:other_args="--exec-driver=lxc --selinux-enabled"3.3 启动Dockerservice docker start 3.4 设置开机自动启动chkconfig docker on 3.5 查询docker版本docker version:查看docker的版本号,包括客户端、服务端、依赖的Go等3.6 查询docker信息docker info 不好了出现个这个问题(没法链接docker的守候进程):Cannot connect to the Docker daemon. Is 'docker -d' running on this host?那就按他说的做吧:docker -d3.7 测试一下(docker的一些命令你需要知道一些哦)# docker pull dl.dockerpool.com:5000/ubuntu:14.04
# docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
dl.dockerpool.com:5000/ubuntu latest 5506de2b643b 12 days ago 197.8 MB
启动一个容器看看: docker run -ti ubuntu4 搭建spark集群 4.1 pull spark镜像docker pull sequenceiq/spark:1.4.0这个过程很慢的,并且你的网速还要很好,要是你的网速不好的话,去我的网盘上拿吧加载本地镜像:docker load spark1.4.0.tar4.2 创建镜像docker build --rm -t sequenceiq/spark:1.4.0 .运行时将Docker-hub上的那个Dockerfile下载下来,放到你运行该指令的文件目录下下载地址:https://github.com/sequenceiq/docker-spark/blob/master/Dockerfile4.3 启动并创建容器创建一个master容器:docker run --name master -it -p 8088:8088 -p 8042:8042 -p 8085:8080 -p 4040:4040 -p 7077:7077 -p 2022:22-v /data:/data-h master sequenceiq/spark:1.4.0 bash
说明:--name 表示创建的容器的名称,-it可以理解创建一个标准的临时终端,-p表示映射本地到容器的端口 -v 建立本地到容器的文件,就是让本地的data文件和容器上的文件共享,-h设置容器的机器名
创建三个worker容器(在三个不同终端运行):docker run --name worker1 -it -h worker1 sequenceiq/spark:1.4.0 bashdocker run --name worker2 -it -h worker2 sequenceiq/spark:1.4.0 bashdocker run --name worker3 -it -h worker3 sequenceiq/spark:1.4.0 bash
四个容器现在已经建立成功了,相互ping一下,若是平不通的话,请关闭本地的防火墙: service iptables stop5 spark集群配置文件5.1 关闭每个容器上的hadoop集群cd /usr/local/hadoop-2.6.0/sbin/./stop-all.sh5.2 配置每个容器上的hosts文件vi /etc/hosts172.17.0.2 master
172.17.0.3 worker1
172.17.0.4 worker2
172.17.0.5 worker3
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters5.2 配置每个容器上hadoop的slaves文件 vi /usr/local/hadoop-2.6.0/etc/hadoop/slaves配置为worker1
worker2
worker35.2 配置每个容器上core-site.xmlvi /usr/local/hadoop-2.6.0/etc/hadoop/core-site.xml配置为(注意红色部分)<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>5.3 配置每个容器上spark的slaves文件cd /usr/local/spark-1.4.0-bin-hadoop2.6/confcp slaves.template slavesvi slaves配置为worker1
worker2
worker36 启动spark集群6.1 在master上启动hadoop集群cd /usr/local/hadoop-2.6.0/sbin/#./start-all.sh在master上可以查看jpsbash-4.1# jps
2441 NameNode
2611 SecondaryNameNode
2746 ResourceManager
3980 Jps
在worker上查看bash-4.1# jps
1339 DataNode1417 NodeManager
2290 Jps6.2 在master上启动spark集群cd /usr/local/spark-1.4.0-bin-hadoop2.6/sbin/./start-all.sh在master上查看bash-4.1# jps
2441 NameNode
2611 SecondaryNameNode
2746 ResourceManager
3980 Jps
3392 Master在每个worker上查看bash-4.1# jps
1339 DataNode1417 NodeManager
2290 Jps1759 Worker6.3 在webui上看看
7 总结耐下心来学习,做一件事件。
没完,待续,下篇将介绍Spark编程的那些事儿。
用到的软件:链接:http://pan.baidu.com/s/1o6BuO3o 密码:zi9u
推荐学习:Docker —— 从入门到实践:http://dockerpool.com/static/books/docker_practice/index.html
Docker的常用命令:http://www.open-open.com/lib/view/open1410568733492.html 版权声明:本文为博主原创文章,未经博主允许不得转载。
页:
[1]