1、基于 docker 大数据集群搭建技术手册一、 简介 2二、 docker 搭建 .31. docker 搭建 .32. weave 搭建 3三、 hadoop 集群镜像搭建 41. 搭建准备 .42. hadoop 部署 43. 扩展:HA 部署 .114. 扩展:namenode 的手动删除 .11四、 集群部署与启动 111. docker 搭建 master 和 slave 集群 .112. weave 设置 ip 地址 .123. 服务启动: 12五、 基于 ambari 管理平台的镜像搭建 141. 部署准备 .142. 私库配置 .143. ambari-server 安装 14
2、4. ambari-client 安装 .165. ambari 管理 17六、 桌面系统 XFCE 搭建 17七、 附录 .182一、 简介大数据集群部署依托于 docker,组建虚拟集群,机组间通过 weave 搭建互通网络环境,如图 1:图 1hadoop 集群搭建 YARN 平台,基于 HDFS。在 YARN 基础上搭建 SPARK 进行业务处理,如图 2:图 2环境版本:1) Ubuntu 14.042) jdk:1.7docker物理机10.10.65.131Hadoop192.168.1.2192.168.1.3tomcat192.168.1.4其他Nodejs192.168.1
3、.12hbase192.168.1.13mongo192.168.1.14其他物理机10.10.65.132dockerweave33) docker:1.9.14) hadoop-2.6.0-cdh5.5.05) scala-2.11.76) spark-1.5.0-bin-hadoop2.6.tgz7) zookeeper-3.4.5-cdh5.5.0下载地址见附录 1注:集群部署所有权限都为 root,请以 root 权限登陆启动服务二、 docker 搭建1. docker 搭建# apt-get install software-properties-common # apt-get
4、 install python-software-properties # add-apt-repository ppa:dotcloud/lxc-docker # apt-get update # apt-get install lxc-docker# docker pull ubuntu:14.04# docker run -i -t ubuntu:14.04 /bin/bash2. weave 搭建# sudo wget -O /usr/local/bin/weave https:/ sudo chmod a+x /usr/local/bin/weave# weave launch4三、
5、 hadoop 集群镜像搭建1. 搭建准备进入新建的一个 docker 实例,将上述软件包下载并解压到/opt/ 目录下,各软件包安装路径如下hadoop: /opt/yarn/hadoop-2.6.0-cdh5.5.0spark: /opt/spark-1.5.0-cdh5.5.0scala: /opt/scala-2.11.72. hadoop 部署1) 配置 jdk 等环境变量:#vim /etc/profile 添加如下配置(根据所安装目录修改路径):export JAVA_HOME=/usr/local/jdkexport CLASS_PATH=$JAVA_HOME/lib:$JAV
6、A_HOME/jre/libexport SCALA_HOME=/opt/scalaexport SPARK_HOME=/opt/sparkexport PATH=$PATH:$JAVA_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/binexport HADOOP_DEV_HOME=/opt/yarn/hadoop-2.6.0-cdh5.5.0/export PATH=$PATH:$HADOOP_DEV_HOME/binexport PATH=$PATH:$HADOOP_DEV_HOME/sbinexport HADOOP_MAPA
7、RED_HOME=$HADOOP_DEV_HOMEexport HADOOP_COMMON_HOME=$HADOOP_DEV_HOMEexport HADOOP_HDFS_HOME=$HADOOP_DEV_HOMEexport YARN_HOME=$HADOOP_DEV_HOMEexport HADOOP_CONF_DIR=$HADOOP_DEV_HOME/etc/hadoopexport HDFS_CONF_DIR=$HADOOP_DEV_HOME/etc/hadoop5export YARN_CONF_DIR=$HADOOP_DEV_HOME/etc/hadoop#source profi
8、le2) 配置 host 和 hostname127.0.0.1 localhost192.168.1.2 master192.168.1.3 slave1192.168.1.4 slave2192.168.1.13 slave13192.168.1.14 slave14192.168.1.15 slave15 3) 创建数据和日志目录hadoop 需要不同的日志目录,创建以下目录#mkdir -p /var/data/hadoop/hdfs/nn#mkdir -p /var/data/hadoop/hdfs/snn#mkdir -p /var/data/hadoop/hdfs/dn4) 在
9、hadoop 目录下建立 logs 目录,并设置权限#cd /opt/yarn/hadoop-2.6.0-cdh5.5.0#mkdir logs#chmod g+w logs5) 配置 core-site.xml#cd /opt/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop添加如下配置:fs.default.namehdfs:/master:90006hadoop.http.staticuser.userhdfshadoop.tmp.dir/hadoop/tmpA base for other temporary directories.6) 配置 hdfs-si
10、te.xml同上,添加如下配置:dfs.replication3dfs.namenode.name.dirfile:/var/data/hadoop/hdfs/nnfs.checkpoint.dirfile:/var/data/hadoop/hdfs/snnfs.checkpoint.edits.dir7file:/var/data/hadoop/hdfs/snndfs.datanode.data.dirfile:/var/data/hadoop/hdfs/dndfs.hosts.exclude/opt/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop/exclude
11、7) 配置 mapred-site.xmlmapred.job.history.server.embeddedtruemapreduce.jobhistory.addressmaster:10020mapreduce.jobhistory.webapp.addressmaster:50060mapreduce.jobhistory.intermediate-done-dir/mr-history/tmp8mapreduce.jobhistory.done-dir/mr-history/donemapreduce.framework.nameyarn8) 配置 yarn-site.xmlyarn
12、.resourcemanager.addressmaster:8032yarn.resourcemanager.scheduler.addressmaster:8030yarn.resourcemanager.resource-tracker.addressmaster:8035yarn.resourcemanager.admin.addressmaster:80339yarn.resourcemanager.webapp.addressmaster:8088yarn.resourcemanager.hostnamemasteryarn.nodemanager.aux-servicesmapr
13、educe_shuffleyarn.nodemanager.aux-services.mapreduce.shuffle.classorg.apache.hadoop.mapred.ShuffleHandler9) 修改 slaves 文件slave1slave2slave13slave14slave1510) spark 配置#cd /opt/spark-1.5.0-cdh5.5.0/conf修改 spark-env.sh,添加如下配置:export SCALA_HOME=/opt/scala10export JAVA_HOME=/usr/local/jdkexport HADOOP_HOM
14、E=/opt/yarn/hadoop-2.6.0-cdh5.5.0/export SPARK_MASTER_IP=masterexport SPARK_WORKER_MEMORY=1024mexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop11) 修改启动脚本#cd /bin/#touch boot.sh#chmod 777 boot.sh#vim boot.sh 添加以下配置:#!/usr/bin/env bashsource /etc/profileservice ssh start/bin/bash12) 配置免登陆(实体机部署参照网上 hado
15、op 集群 ssh 免登陆配置)apt 安装 ssh 并启动,并在/root/.ssh/ 下执行 ssh-keygen 生成秘钥将 id_rsa.pub 文件内容添加到.ssh/authorized_keys13) 挂载文件(实体机部署略过)退出系统,将上述修改过的配置文件挂载到 docker 容器下,方便修改#cd #mkdir env#cd env#touch hosts#mkdir hadoop#mkdir spark拉取相应的文件1114) 将配置好的单机做成镜像#docker commit -m=spark -author=IEDS a790e8142381 ieds/ spark-
16、base:v63. 扩展:HA 部署4. 扩展:namenode 的手动删除四、 集群部署与启动1. docker 搭建 master 和 slave 集群#docker run -idt -p 50070:50070 -p 8088:8088 -p 4040:4040 -p 50075:50075 -p 8080:8080 -v /env/hosts:/etc/hosts -v /env/hadoop/hadoop-env.sh:/opt/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop/hadoop-env.sh -v /env/hadoop/slaves:/op
17、t/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop/slaves -v /env/hadoop/core-site.xml:/opt/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop/core-site.xml -v /env/hadoop/hdfs-site.xml:/opt/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop/hdfs-site.xml -v /env/hadoop/mapred-site.xml:/opt/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop/mapred-
18、site.xml -v /env/hadoop/yarn-site.xml:/opt/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop/yarn-site.xml -v /env/spark/slaves:/opt/spark/conf/slaves -v /env/spark/spark-env.sh:/opt/spark/conf/spark-env.sh -name=“master“ -hostname=“master“ ieds/spark-base:v6 /bin/boot.sh12#docker run -idt -v /env/hosts:/etc/ho
19、sts -v /env/hadoop/hadoop-env.sh:/opt/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop/hadoop-env.sh -v /env/hadoop/slaves:/opt/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop/slaves -v /env/hadoop/core-site.xml:/opt/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop/core-site.xml -v /env/hadoop/hdfs-site.xml:/opt/yarn/hadoop-2.6.0-
20、cdh5.5.0/etc/hadoop/hdfs-site.xml -v /env/hadoop/mapred-site.xml:/opt/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop/mapred-site.xml -v /env/hadoop/yarn-site.xml:/opt/yarn/hadoop-2.6.0-cdh5.5.0/etc/hadoop/yarn-site.xml -v /env/spark/slaves:/opt/spark/conf/slaves -v /env/spark/spark-env.sh:/opt/spark/conf/spa
21、rk-env.sh -name=“slave1“ -hostname=“slave1“ ieds/spark-base:v6 /bin/boot.sh2. weave 设置 ip 地址#weave connect 10.10.65.131#weave attach 192.168.1.2/24 master#weave attach 192.168.1.3/24 slave1 3. 服务启动:进入 master 主机,并验证各机器间 ssh 通信无问题1) 格式化 master 的 hdfs#cd /opt/yarn/hadoop-2.6.0-cdh5.5.0/bin#./hdfs namen
22、ode format2) 启动 hdfs 服务13#cd /opt/yarn/hadoop-2.6.0-cdh5.5.0/sbin#./start-dfs.sh3) 启动 yarn 服务同上目录#./start-yarn.sh4) 启动 jobserver#./mr-jobhistory-daemon.sh historyserver5) 验证a.命令验证:执行 jps 命令查看服务是否启动master 下:ResourceManagerSecondaryNameNodeJobHistoryServerNameNodeslave 下:DataNodeNodeManagerb.Web 验证(须部
23、署第六章):http:/master:80808/cluster http:/master:50070 五、 基于 ambari 管理平台的镜像搭建1. 部署准备14由于 ambari 部署所需安装包太大,故需要搭建私库下载 ambari:http:/public-repo- HDP:http:/public-repo- HDP-UTILS:http:/public-repo- 私库配置在物理机上安装 apache2 并配置 httpd#vim /etc/apache2/apache2.conf 文件,加入:ServerName localhostDirectoryIndex index.ht
24、ml index.htm index.phpAddDefaultCharset GB2312启动 appache2,并将上面下载的文件解压到 /var/www/html/目录下3. ambari-server 安装1) 修改 ambari 源#cd /etc/apt/sources.list.d15#wget http:/public-repo- mabari.list修改路径为:http:/10.10.65.132/ambari/ubuntu14(私库地址)#apt-key adv -recv-keys -keyserver B9733A7A07513CAD#apt-get update2
25、) 安装 jdk 并配置环境变量export JAVA_HOME=/opt/jdk1.7.0_79export CLASSPATH=$JAVA_HOME/libexport PATH=$JAVA_HOME/bin:$PATH3) 配置免登陆,参考上一章4) # apt-get install ambari-server# ambari-server setup5) 配置 host 和 hostname192.168.1.211 ambari#slaves192.168.1.213 hadoop1 192.168.1.214 hadoop2192.168.1.215 hadoop36) 制作 b
26、oot.sh,添加如下内容#!/bin/bashsource /etc/profile16service ssh start/bin/bash7) commit 镜像docker commit -m=ambariserver -author=IEDS a790e8142381 ieds/ambari:v18) 验证:#docker run -itd -p 8080:8080 -p 5901:5901 -name=“ ambari “ -hostname=“ambari“ ieds/ambari:v2 /bin/boot.sh#weave attach 192.168.1.211/24 amba
27、ri#docker attach ambari# ambari-server start访问 http:/ ambari:80804. ambari-client 安装1) 重复上述 1,2 ,3,5 步2) # apt-get install ambari-agent# apt-get install ambari-ntp173) 配置 boot.sh#!/bin/bashsource /etc/profileservice ssh startservice ntp startambari-agent start4) commit 镜像先执行第六章的操作,然后在执行以下命令docker co
28、mmit -m=ambariclient -author=IEDS a790e8142381 ieds/ambariclient:v15) 部署实例:#docker run -itd -name=“hadoop1“ -hostname=“hadoop1“ ieds/ambariclient:v1 /bin/boot.sh#weave attach 192.168.1.212/24 hadoop15. ambari 管理页面访问: http:/10.10.65.132:8080 进入管理页面,登陆账号admin/admin第二布配置路径时修改为以下路径http:/10.10.65.132/HDP
29、/ubuntu14/2.x/updates/2.3.2.0http:/10.10.65.132/HDP-UTILS-1.1.0.20/repos/ubuntu14六、 桌面系统 XFCE 搭建由于集群是基于 docker 构建内网虚拟环境,故此需要搭建桌面系统进行管理页面的访问。#docker attach ambari /为了方便管理直接在 ambari 上搭建,如不需要管理服务 ambari 则新建一个 docker 实例即可,注意:docker 建实例时需要将 5901 端口做映射18# apt-get install xubuntu-desktop #安装 xubuntu 桌面环境,默
30、认xfce4 桌面,如果是 ubuntu 12.04,那么可以用 unity 桌面环境,改为 apt-get install ubuntu-desktop#apt-get install vnc4server #安装 vncserver 服务端#vncserver #启动 vnc 服务,第一次会让你输入远程连接的密码#cd /.vnc#vim xstartup #编辑 xstartup 文件,最后一行注释掉,添加一行startxfce4 &。如果是 unity 桌面环境,改为 gnome-session &,注意这个在ubuntu14.04 下 vnc 是花屏,在 ubuntu 12.04 是正常的。#vncserver -kill :1#vncserver #杀掉原来的 vnc 进程,重启 vnc 服务生效搭建成功后下载软件 VNC VIEWER 客户端连接(端口默认为 1)七、 附录1.hadoop 相关包下载地址:http:/