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

来源:互联网 发布:淘宝被恶意退款 编辑:程序博客网 时间:2024/06/06 02:51
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下载下来,放到你运行该指令的文件目录下
下载地址:https://github.com/sequenceiq/docker-spark/blob/master/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

Docker的常用命令:http://www.open-open.com/lib/view/open1410568733492.html你
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 医保卡冻结了出院结算怎么办 住院医保卡钱不够怎么办 住院押金条丢了怎么办 急用新社保卡要怎么办 看病没带社保卡怎么办 医保卡掉了住院怎么办 厦门医保卡丢了怎么办 成都医保卡丢了怎么办 长春医保卡丢了怎么办 县城医保卡丢了怎么办 医保卡丢了怎么办南宁 西安职工医保丢了怎么办 重庆医保卡丢了怎么办 外地医保卡丢了怎么办 换单位后医保卡怎么办 单位没交失业金怎么办 沈阳医保卡密码忘了怎么办 西安网约车资格证怎么办 红跑车卡丢了怎么办 苏州住房公积金密码忘了怎么办 公积金查询密码忘记了怎么办 公积金账户密码忘记了怎么办 公积金网上查询密码忘记了怎么办 苏州改公积金密码忘了怎么办 与单位解除劳动合同公积金怎么办 在泰国钱包丢了怎么办 中山车牌网上选号后怎么办 买楼房70年以后怎么办 暂住证过期2个月怎么办 换领驾驶证超期了怎么办 车牌租出去要不回来怎么办 汽车放久了没电怎么办 上海网约车资格证怎么办 手机掉在滴滴上怎么办 在滴滴上丢手机怎么办 把东西落在出租车上怎么办 租好房子后悔了怎么办 转租房东不退押金怎么办 亲戚借户口本办公租房怎么办 7.1深圳禁行货车怎么办 怎么办无锡市的货车临时通行证