Centos下docker搭建Hadoop集群 光环大数据hadoop培训

编辑:光环大数据 来源: 互联网 时间: 2018-02-11 17:09 阅读:

光环大数据作为国内知名的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培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服

你可能也喜欢这些

在线客服咨询

领取资料

X
立即免费领取

请准确填写您的信息

点击领取
#第三方统计代码(模版变量) '); })();
'); })();