hadoop原生集群搭建
Posted 北京图灵学院
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop原生集群搭建相关的知识,希望对你有一定的参考价值。
hello大家好,今天为大家分享一篇hadoop原生集群搭建的文章,今天也是花了小个把小时又重新搭建了一遍环境,总结成文,分享于此,也希望大家以后自学的时候能够少爬点坑。
首先呢给大家先说说我的整体环境,由于个人经济有限只能在VM虚拟机里面创建三台虚拟机(安装虚拟机此处不做详解),因为我是直接PXE引导安装的,所以我一次性创建了三台,若大家会PXE也可以效仿,不过大家也可以先安装一台主机,做完基础配置后,可以通过复制或克隆得到其他俩台主机;只不过克隆后是不能上网的,你还需要修改网卡设置,注释网卡硬件信息等。
本人环境如下:
虚拟主机如下:
注意:
首先在vmware主界面,单击"编辑"——"虚拟网络编辑"
进入后选中nat网络,单击nat设置:
本人配置如下:
修改完成后,分别在三台主机做如下操作,本人只在master主机下演示,其余主机请自行操作完成:
第一步:修改主机名
nmcli connection add con-name eno16777728 type ethernet ifname eth0
nmcli connection modify eth0 ipv4.address "192.168.0.10/24 192.168.0.250"
nmcli connection modify eth0 ipv4.dns 8.8.8.8
nmcli connection modify eth0 ipv4.method manual
nmcli connection modify eth0 connection.autoconnect yes
nmcli connection up eth0
第三步:创建hadoop用户并赋予权限与密码
useradd hadooppasswd hadoopchmod u+w /etc/sudoersvim /etc/sudoers
此处进入该文件找到root ALL=(ALL) ALL 这一行并在该行下添加hadoop ALL=(ALL) ALL
操作完成后取消sudoers文件w权限
chmod u-w /etc/sudoers
第四步:关闭防火墙,关闭selinux
[root@master ~]# systemctl stop firewalld[root@master ~]# systemctl disable firewalld
第六步:配置yum源为阿里源
wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
此处下载完成后需要将文件里面的$releaseserve替换为7, 双击CentOS-Base.repo文件打开后按ctr+h键 查找后全部替换
切记保存后退出
然后接下来执行俩条命令如下:
yum clean all #清除yum缓存yum makecache #建立元数据缓存
第七步:安装JDK
此处我们直接用yum安装,你也可以将jdk源码下载进行安装,切记记住自己的安装位置,方便下一步配置java环境
#第一步:yum search java寻找java软件版本
#第二步:yum install安装自己选择的版本
yum search javayum install -y java-1.7.0-openjdk-devel.x86_64
第八步:配置java环境变量
在这步中,因为我们是yum安装的,所以得去找找java在什么地方,执行命令如下:
[root@master ~]# whereis
java[root@master ~]# ll /usr/bin/java[root@master ~]# ll
/etc/alternatives/java#此时就可以发现你的JDK路径啦
那么接着修改全局环境变量:/etc/profile文件
vim /etc/profile#在该文件中追加如下几行:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.211-2.6.17.1.el7_6.x86_64
export MAVEN_HOME=/home/hadoop/local/opt/apache-maven-3.3.1export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
最后让该配置文件立即生效
source /etc/profile
第九步:验证java环境变量是否配置成功
分别执行如下命令:javajavacjava -version#如果前俩条命令都出现提示信息,说明配置成功,尤其是javac一般配置错误javac会提示找不到
到这为止,我们的准备工作基本做完成,切记,以上步骤为三台主机都必须执行的过程的。配置完成后建议大家重启我们的系统,并保存快照,你懂得~接下来我们开始我们hadoop集群的具体搭建。
重启系统,并以hadoop用户登陆,谨记,以下操作,若无特殊说明,一律只在master主机进行操作,切记~
第一步:配置ssh免密登陆
造master主机上使用hadoop用户登陆(确保以下操作都为hadoop用户),执行ssh-keygen -t rsa命令:
接着将公钥复制到slave_1和slave_2俩台主机
[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub slave_1
#输入hadoop@slave_1的密码[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub slave_2
#输入hadoop@slave_2的密码
再次登陆slave_1和slave_2,发现已经不需要密码啦
第二步:安装hadoop
首先在hadoop官网下载稳定版本的并且已经编译好的二进制包,并解压
[hadoop@master ~]$ mkdir ~/local/opt
#此目录为hadoop解压目录,提前创建好
#接着下载hadoop(该操作建议在用户家目录下)
[hadoop@master ~]$ wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz
#然后对该压缩文件进行解压缩
[hadoop@master ~]$ tar -xzvf hadoop-2.6.5.tar.gz -C local/opt/[hadoop@master ~]$ cd local/opt/hadoop-2.6.5/
第三步:配置hadoop环境变量(此操作在三台主机都执行)
vim ~/.bash_profile
#在该文件内追加如下几行
export HADOOP_HOME=/home/hadoop/local/opt/hadoop-2.6.5
export PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_PREFIX=$HOME/local/opt/hadoop-2.6.5
export HADOOP_COMMON_HOME=$HADOOP_PREFIX
export HADOOP_HDFS_HOME=$HADOOP_PREFIX
export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
export HADOOP_YARN_HOME=$HADOOP_PREFIX
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
让该文件立即生效,请sourece一下
[hadoop@master hadoop-2.6.5]$ source ~/.bash_profile
第四步:修改hadoop配置文件etc/hadoop/hadoop-env.sh
注意此处的etc目录是hadoop目录下的etc目录,千万别搞错~
在该文件中找到export JAVA_HOME=${JAVA_HOME}这一行,将其注释,并将下一行内容加入export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.211-2.6.17.1.el7_6.x86_64#此内容指的是java环境变量,请以自己的为主。
第五步:修改hadoop配置文件etc/hadoop/core-site.xml,内容如下:
[hadoop@master hadoop-2.6.5]$ vim etc/hadoop/core-site.xml<configuration><property><name>fs.defaultFS</name><value>hdfs://master</value></property><property><name>hadoop.tmp.dir</name><value>/home/hadoop/local/var/hadoop/tmp/hadoop-${user.name}</value></property></configuration>
第六步:修改配置文件: etc/hadoop/hdfs-site.xml,内容如下:
[hadoop@master hadoop-2.6.5]$ vim etc/hadoop/hdfs-site.xml<configuration><property><name>dfs.datanode.data.dir</name><value>file:///home/hadoop/local/var/hadoop/hdfs/datanode</value></property><property><name>dfs.namenode.dir</name><value>file:///home/hadoop/local/var/hadoop/dhfs/namenode</value></property><property><name>dfs.namenode.checkpoint.dir</name><value>file:///home/hadoop/local/var/hadoop/hdfs/namesecondary</value></property><property><name>dfs.replication</name><value>2</value></property></configuration>
第七步:修改配置文件:etc/hadoop/yarn-site.xml,内容如下:
[hadoop@master hadoop-2.6.5]$ vim etc/hadoop/yarn-site.xml<configuration><!-- Site specific YARN configuration properties --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.hostname</name><value>master</value></property></configuration>
第八步:修改配置文件: etc/hadoop/mapred-site.xml,内容如下:
[hadoop@master hadoop-2.6.5]$ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml[hadoop@master hadoop-2.6.5]$ vim etc/hadoop/mapred-site.xml<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobtracker.staging.root.dir</name><value>user</value></property></configuration>
第九步:将hadoop的配置文件分别拷贝到slave_1和slave_2俩台主机,命令如下:
切记,此处我们在master主机hadoop用户的家目录下拷贝
[hadoop@master ~]$ scp -r local/ slave_1:~/[hadoop@master ~]$ scp -r local/ slave_2:~/
第十步:格式化HDFS
[hadoop@master ~]$ hdfs namenode -format
如图状态,说明格式化成功
第十一步:启动hadoop集群
进入到hadoop的sbin目录下,执行如下脚本:
[hadoop@master sbin]$ ./start-all.sh#此过程会让你输入密码
第十二步:验证集群是否启动成功
jps#直接输入java携带的jps命令查看集群节点
在master主机与俩台slave主机上都看到了节点,说明我们的集群启动正常。哈哈,小小的激动一下,好久没搭建该集群啦~
第十三步:通过WebUI查看集群是否成功启动
在hadoop master端启动firefox浏览器,输入master:50070验证:
第十四步:通过WebUI验证yarn是否正常
在浏览器中输入http://master:8088进行查看
哈哈,说明我们集群一切正常~~~
第十五步:停止集群
#还是在sbin目录下[hadoop@master sbin]$ ./stop-all.sh
请注意观察具体过程~~
嗯,今天的环境搭建就到此结束啦~后续会为大家继续分享hadoop的使用,谢谢大家的支持~~
以上是关于hadoop原生集群搭建的主要内容,如果未能解决你的问题,请参考以下文章