利用Docker搭建大数据处理集群
来源:互联网 发布:苹果手机照片导入mac 编辑:程序博客网 时间:2024/06/01 10:19
前面的Android项目刚完,项目总结文章还未写完,公司需要研究大数据处理应用平台,任务下达到我们部门了,鉴于部门物理机只有一台,而虚拟机启动太慢的原因,自己动手在Docker搭建了三个三节点的数据分析集群,主要包括Hdfs集群(分布式存储集群),YARN集群(分布式资源管理集群),Spark集群(分布式计算集群)。
在开始正文之前,需要掌握以下基础知识:
- Linux基础知识(推荐《鸟哥的Linux私房菜》,我早年看的时候是第三版,现在已经有了新版本);
- Doceker镜像,容器和仓库的概念(推荐《Docker — 从入门到实践》);
- Hadoop的基础概念和原理;
在Centos7上搭建数据分析集群过程包括:
- 在Cnetos7上安装Docker并创建Hadoop镜像和三节点容器
- 在Docker上配置三节点Hdfs集群
- 在Docker上配置三节点Yarn集群
- 在Docker上配置三节点Spark集群
(一)安装Docker与创建Hadoop镜像和三节点容器
1.1 安装Dcoker
本文在Cnetos7系统上安装Docker,安装Docker对于Linux系统的要求是
64 位操作系统,内核版本至少为 3.10。
1.1.1 安装Docker
- 1
- 1
1.1.2 配置Docker加速器和开机启动服务
这里需要注册一个阿里云账号,每个账号有自己专属的加速器,专属加速器的地址,根据自己的地址配。
- 1
- 2
- 3
- 1
- 2
- 3
1.2 在Docker上创建Hadoop镜像
1.2.1 从Docker Hub官网仓库上获取centos镜像库
- 1
- 2
- 3
- 1
- 2
- 3
1.2.2 生成带有SSH功能的centos的镜像文件
为了后面配置各节点之间的SSH免密码登陆,需要在pull下的centos镜像库种安装SSH,
这里利用 Dockerfile 文件来创建镜像
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
1.2.3 根据上面的Dockerfile生成centos7-ssh镜像
- 1
- 2
- 3
- 1
- 2
- 3
1.2.4 生成Hadoop镜像库文件
在构建Hadoop镜像库的Dockerfile所在目录下,上传已经下载的 jdk-8u101-linux-x64.tar.gz, hadoop-2.7.3.tar.gz,Scala-2.11.8.tgz,spark-2.0.1-bin-hadoop2.7.tgz。
注意:这里要提前在Dockerfile文件配置环境变量,如果镜像库构建完成后,在
容器中配置环境变量是不起作用的。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
1.2.5 根据上面的Dockerfile构建Hadoop镜像库
- 1
- 2
- 3
- 1
- 2
- 3
1.2.6 生成三节点Hadoop容器集群
1.2.6.1首先规划一下节点的主机名称,IP地址(局域网内构建docker镜像时,自动分配172.17.0.1/16网段的IP)和端口号
master 172.17.0.2
slave01 172.17.0.3
slave02 172.17.0.4
1.2.6.2下面在Hadoop镜像上创建三个容器,做为集群的节点
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
1.2.6.3 查看已创建的容器并更改hadoop和spark2.0.1目录所属用户
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
(二)在Docker上配置三节点Hdfs集群
2.1开启三个容器终端
- 1
- 2
- 3
- 1
- 2
- 3
2.1 配置hdfs账号容器各节点间的SSH免密码登陆
分别进入master,slave01,slave02三个容器节点,执行下面命令
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
2.2 配置hadoop
这里主要配置hdfs,因为我们的计算框架要用spark,所以maprreduce的不需要配置。
进入master容器的hadoop配置目录,需要配置有以下7个文件:hadoop-env.sh,slaves,core-site.xml,hdfs-site.xml,maprd-site.xml,yarn-site.xml
2.2.1 在hadoop-env.sh中配置JAVA_HOME
- 1
- 1
2.2.2 在slaves中配置子节点主机名
进入slaves文件,添加下面名称
- 1
- 2
- 1
- 2
2.2.3 修改core-site.xml
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
2.2.4 修改hdfs-site.xml
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
2.2.5 修改mapred-site.xml
2.2.5.1 复制mapred-site.xml文件
- 1
- 2
- 1
- 2
2.2.5.2 修改mapred-site.xml
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
2.2.6 修改yarn-site.xml
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
2.2.7 master容器配置的hadoop目录分别分发到slave01,slave02节点
- 1
- 2
- 1
- 2
2.3 启动HDFS集群,验证是否搭建成功
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
浏览器输入http://本机ip地址:50070 ,可以浏览hadoop node管理界面
(二)在Docker上配置三节点Yarn集群
上面已经配置成功,直接启动yarn集群
- 1
- 2
- 1
- 2
浏览器输入http://本机ip地址:8088/cluster 可以浏览节点;
(三) 在Docker上配置三节点spark集群
3.1 配置spark
进入master容器的spark配置目录,需要配置有两个文件:spark-env.sh,slaves
3.1.1 配置spark-env.sh
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
在spark-env.sh末尾添加以下内容:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
3.1.2 在slaves文件下填上slave主机名
- 1
- 2
- 1
- 2
3.1.3 master容器配置的spark目录分别分发到slave01,slave02节点
- 1
- 2
- 1
- 2
3.2 启动spark集群
- 1
- 1
浏览Spark的Web管理页面: http://本机ip地址:8900
总结
本文只是搭建了数据分析的开发环境,作为开发测试使用,距离生成环境的标准还很远。例如容器节点的自动化扩容,容器的CPU内存,调整,有待继续研究。
- 利用Docker搭建大数据处理集群
- 利用Docker搭建大数据处理集群
- 利用Docker搭建大数据处理集群
- 利用Docker搭建MongoDB副本集群
- 利用Docker Compose 搭建Spark 集群
- 搭建大数据处理集群(Hadoop,Spark,Hbase)
- docker swarm集群搭建
- Swarm搭建Docker集群
- Docker搭建hadoop集群
- docker搭建zookeeper集群
- Docker搭建Swarm集群
- docker搭建redis集群
- docker 搭建 consul 集群
- Swarm搭建Docker集群
- Swarm+docker集群搭建
- k8s docker集群搭建
- Swarm -- 搭建Docker集群
- docker搭建mysql集群
- 深入解析虚函数
- CXF+Spring搭建Restful接口服务
- adb shell 命令详解
- 所有的多面体都是凸集
- 玛雅乐队—飞行
- 利用Docker搭建大数据处理集群
- js,jq,css多方面实现简易下拉菜单
- git 合并两次提交记录
- 我对敏捷开发的看法
- python classmethod staticmethod
- Linux系统常用基本操作(一)
- 利用JSPsession对象保持住登录状态
- Android点击事件分发机制
- 20170513 Win10打不开菜单且点击通知栏无反应的解决方法