Centos下docker搭建Hadoop集群 光环大数据hadoop培训
光环大数据作为国内知名的hadoop培训的机构,聘请专业讲师面对面授课,与时俱进及时更新课程体系,为保障学员就业与多家单位进行合作,保障学员就业。光环大数据所有项目都由阿里云真实项目数据,光环大数据成为阿里云授权认证中心,毕业通过相关考试就可以获得阿里云的证书。
随着业务发展需要,数据量的逐步提升,需要用到hadoop来处理一些数据,所以搭建一个Hadoop集群,搭建Hadoop集群需要多台主机,但是由于资源有限,所以刚好可以利用近些年比较火的docker来搭建,用docker搭建也有一个好处,就是一次构建多节点重复利用。在上服务器之前,现在自己的电脑里用虚拟机模拟一下,顺便可以做个记录,把可能遇到的坑先趟过去(谁叫我笔记本16G内存呢)。
第一步、安装Centos,部署docker
先从Centos官网载一个最小版的Centos7镜像,用VMWare安装,由于是最小版镜像所以装完之后有很多组件需要手动yum安装,(什么?为什么不装完全版的?我要是有几台刀片我也装啊!)
完成之后的第一步当然是换yum源:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupwget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
安装完之后记得 yum makecache一下。由于是Minimal版,连最基本的网络工具都没有,所以全都开始手动安装:
yum install -y wgetyum install -y gcc
安装基本工具之后就是安装docker,docker安装很简单直接yum install -y docker,docker基本配置和使用就不再赘述了,docker的镜像本身下载很慢的,所以这里我用的是daocloud的加速器,那下载速度杠杠的!但是不知道daocloud最近怎么了,curl生成的加速器是有问题的,配置了之后docker启动不了,看了日志发现是他们修改的etc/docker/daemon.json有问题,里面多了一个逗号,把逗号去了就行。 接下来就是启动docker
systemctl start docker
没毛病,直接启动成功,接卸来下载镜像
docker pull daocloud.io/centos:6
为什么不用centos7而是用6,这个问题就比较搞笑了,刚开始用的就是7的镜像但是有个很严重的BUG就是systemd无法使用,也就是说容器内的服务是无法用systemctl管理的,网上也有解决方法,但是都不好使!所以退而求其次用centos6就行。镜像拉取完成之后启动镜像:
docker run -it -h master --name master daocloud.io/library/centos:6 /bin/bash
ok~!镜像启动成功,控制台会直接进入镜像内的控制台,如果想退回宿主机控制台直接ctrl+p ctrl+q可以从容器返回宿主机,再想回来直接docker attach 【容器名称或ID】。
第二步、制作Hadoop镜像
进入容器控制台,开始搭建Hadoop,在搭建之前一样要先把基础工具给装了,Hadoop是JAVA写的所以JDK先给装上:
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gzmkdir /usr/javatar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/java
修改环境变量
vim /etc/profile#在最下方加入JAVA配置export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROLexport JAVA_HOME=/usr/java/jdk1.8.0_131export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar#source一下source /etc/profile
安装gcc,vim,lrzsz和ssh
yum install -y gccyum install -y vimyum install -y lrzszyum -y install openssh-serveryum -y install openssh-clients
配置ssh免密登录
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
关闭烦人sellinux:
setenforce 0
启动ssh
service sshd start
测试一下
ssh master
如果没什么问题就代表一些准备就绪。
完成之后开始下载Hadoop镜像:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.0/hadoop-2.8.0.tar.gzmkdir /usr/local/hadooptar -zxvf hadoop-2.8.0.tar.gz -C /usr/local/hadoop
配置环境变量
vim /etc/profile#在最下方加入Hadoop配置export HADOOP_HOME=/usr/local/hadoop/hadoop-2.8.0export PATH=$PATH:$HADOOP_HOME/bin
修改Hadoop的配置文件,进入Hadoop的目录
cd /usr/local/hadoop/hadoop-2.8.0/etc/hadoop/
在hadoop-env.sh 和 yarn-env.sh 在开头添加JAVA环境变量JAVA_HOME
修改hadoop core-site.xml文件
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>131702</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/tsk/hadoop-2.8.0/tmp</value> </property></configuration>
修改hdfs-site.xml文件
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/tsk/hadoop-2.8.0/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/tsk/hadoop-2.8.0/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property></configuration>
修改mapred-site.xml文件
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property></configuration>
修改yarn-site.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>master:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>1024</value> </property></configuration>
由于我准备配置三个salve节点所以在slaves文件中添加
slave1slave2slave3
完成之后尝试一下
ldd /usr/local/hadoop/hadoop-2.8.0/lib/native/libhadoop.so.1.0.0
这时提示GLIBC_2.14 required,centos6的源最高到2.12,这里需要2.14,所以只能手动make安装
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gztar zxvf glibc-2.14.tar.gzcd glibc-2.14mkdir buildcd build../configure --prefix=/usr/local/glibc-2.14makemake installln -sf /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
完成之后再ldd就没有问题了!接下来就是构建上面做的所有操作,将其变成一个镜像以便复用,先Ctrl+p和Ctrl+q返回宿主机控制台然后输入命令:
docker commit master tsk/hadoop
等一会之后会发现镜像只做完成docker images一下就能看到自己只做的镜像了。
第三步、启动镜像
先配置docker的网络,给每台机器配置host
docker inspect --format='{{.NetworkSettings.IPAddress}}' master
接下来逐个启动镜像:
docker stop masterdocker rm masterdocker run -it -p 50070:50070 -p 19888:19888 -p 8088:8088 -h master --name master tsk/hadoop /bin/bashdocker run -it -h slave1 --name slave1 tsk/hadoop /bin/bashdocker run -it -h slave2 --name slave2 tsk/hadoop /bin/bashdocker run -it -h slave3 --name slave3 tsk/hadoop /bin/bash
然后attach到每个节点上面source一下配置hosts,启动sshd,完成之后开始准备启动Hadoop
hadoop namenode -format/usr/local/hadoop/hadoop-2.8.0/sbin/start-all.sh
最后要做的事情就是等待
~等待 ~等待
~~~~!直到全部启动完成!完成之后用浏览器访问虚拟机IP地址:50070,如果没有任何问题的话你就可以看到如下画面,至此Hadoop集群搭建成功!
大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服!