docker1.7 搭建spark1.4.0-hadoop2.6集群

4 篇文章 0 订阅
2 篇文章 0 订阅
1 概述
     现在国内的资料很少,即使你看到了,资料也不是很全,每个人都为中国在这方面做点贡献,也是为了相互学习。作为学习Spark中的一个重要环节--搭建Spark集群,此次搭建环境使用了Docker1.7,Spark1.4-hadoop2.6,搭建的集群环境,操作系统为CentOS6.5,内存4G
2 升级Linux内核
      具体的什么是Docker,以及Docker的基本原理等,我在这里就不在介绍了。
2.1 查看系统内核版本
   # lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
Distributor 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 -y
vi /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.rpm
rpm -ivh kernel-lt-3.10.86-1.el6.elrepo.x86_64.rpm
vi /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-io
3.2 配置文件
# vi /etc/sysconfig/docker
other-args列更改为:other_args="--exec-driver=lxc --selinux-enabled"
3.3 启动Docker
service 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 -d
若是docker: relocation error: docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference
进行这个操作:yum upgrade device-mapper-libs
3.7 测试一下(docker的一些命令你需要知道一些哦)
# docker pull dl.dockerpool.com:5000/ubuntu:14.04
# docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
dl.dockerpool.com:5000/ubuntu   latest              5506de2b643b        12 days ago         197.8 MB
启动一个容器看看:
 docker run -ti ubuntu
4 搭建spark集群 
4.1 pull spark镜像
docker pull sequenceiq/spark:1.4.0
这个过程很慢的,并且你的网速还要很好,要是你的网速不好的话,去我的网盘上拿吧
加载本地镜像:docker load  spark1.4.0.tar
4.2 创建镜像
docker build --rm -t sequenceiq/spark:1.4.0 .
运行时将Docker-hub上的那个Dockerfile下载下来,放到你运行该指令的文件目录下
4.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 bash
docker run --name worker2 -it -h worker2 sequenceiq/spark:1.4.0 bash
docker run --name worker3 -it -h worker3 sequenceiq/spark:1.4.0 bash

四个容器现在已经建立成功了,相互ping一下,若是平不通的话,请关闭本地的防火墙: service iptables stop
5 spark集群配置文件
5.1 关闭每个容器上的hadoop集群
cd /usr/local/hadoop-2.6.0/sbin/
./stop-all.sh
5.2 配置每个容器上的hosts文件
vi /etc/hosts
172.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-allrouters
5.2 配置每个容器上hadoop的slaves文件
 vi /usr/local/hadoop-2.6.0/etc/hadoop/slaves
配置为
worker1
worker2
worker3
5.2 配置每个容器上core-site.xml
vi /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/conf
cp slaves.template slaves
vi slaves
配置为
worker1
worker2
worker3
5.4 配置每个容器上Spark的spark-env.sh 
cd /usr/local/spark-1.4.0-bin-hadoop2.6/conf/
cp spark-env.sh.template spark-env.sh 
vi spark-env.sh
添加
export SPARK_MASTER_IP=master
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MEMORY=1g
export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}

6 启动spark集群
6.1 在master上启动hadoop集群
cd /usr/local/hadoop-2.6.0/sbin/
#./start-all.sh
在master上可以查看jps
bash-4.1# jps
2441 NameNode
2611 SecondaryNameNode
2746 ResourceManager
3980 Jps
在worker上查看
bash-4.1# jps
1339 DataNode
1417 NodeManager
2290 Jps
6.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 DataNode
1417 NodeManager
2290 Jps
1759 Worker
6.3 在webui上看看



7 总结
耐下心来学习,做一件事件。

没完,待续,下篇将介绍Spark编程的那些事儿。

用到的软件:
链接: http://pan.baidu.com/s/1o6BuO3o 密码:zi9u

推荐学习:

Docker —— 从入门到实践:http://dockerpool.com/static/books/docker_practice/index.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值