Hadoop伪分布式集群环境的搭建
文章对于原理性知识并未深究讲解,仅以无错误完成安装任务为目的,欢迎各位大佬批评指正,如有问题请在评论区留言。
本文用到的文件百度云链接(包括JDK压缩包、Hadoop2.6.0版本压缩包、Hadoop配置文件):(链接若失效可在下方评论或私信博主)
链接:https://pan.baidu.com/s/1lE6d7AXItqpvz_iUnChrgg
提取码:atjo
选2.6.0是因为比较稳定,也可下载最新版。
CentOS系统的安装与配置
本文选用的虚拟机软件为VMware12,安装的系统为CentOS6.5,CentOS的安装与配置教程参考下面这个视频即可:
B站视频——CentOS6的下载、安装和配置
注意:最后语言改成中文那里可能改完之后会出现无法显示图形化界面或者乱码的错误,解决方法可以看我的博文:
解决虚拟机中CentOS终端显示乱码的问题
如果不是特别需要建议省略改成中文这个步骤!
准备工作
关闭防火墙和禁用SELINUX
在root用户下输入chkconfig iptables off
命令并执行,随后输入reboot
命令重启系统即可关闭防火墙。
在控制台输入vi /etc/selinux/config
命令,按下i
进入插入状态,将SELINUX的参数值修改为disabled(SELINUX=disabled
),按下Esc
退出插入状态,输入:wq!
保存并退出修改。然后输入reboot
命令重启系统让配置生效。
在控制台输入service iptables status
命令即可查看防火墙状态,下图所示即为关闭成功。
配置hostname与IP地址之间的对应关系
在控制台输入ifconfig
,运行后结果如下图所示,可以看出此时IP地址为192.168.214.128。
在控制台输入命令vi /etc/hosts
编辑配置,将刚才查询到的IP地址与djt这个hostname对应(当然也可以自己设置hostname),注意中间有空格。结果如下图所示。
创建用户和用户组
在root下输入useradd -m hadoop
命令建立一个普通用户hadoop(建立新用户是为了安全性考虑)。
在root用户下输入passwd hadoop
即可为hadoop用户设置密码。通过su hadoop
命令可以将当前用户切换为hadoop用户。需要注意的是,从低等级的用户切换到高等级的root用户时(su root
)需要输入root用户的密码,密码在输入过程中不会显示出来,输入正确的密码按下回车即可完成切换。下图所示为root与hadoop用户的互相切换。
JDK的安装
利用XShell建立连接、上传文件
XShell6可在官网下载,下载的时候注册一下就可以获得免费下载的链接。
官网下载XShell 6安装后,打开软件新建会话,协议默认选择SSH,主机为上面查询到的IP地址(192.168.214.128),端口号默认使用22。连接后弹出对话框要求输入在虚拟机里建立的用户名和密码(root或者hadoop用户都可以),按之前设置好的输入后若出现如下图示即建立连接成功。
JDK的安装与配置
jdk我用的是1.7版本,文件名为jdk7u79linuxx64.tar.gz。
Xshell中在hadoop用户下输入cd
命令并执行切换目录,输入mkdir app
建立安装目录/home/hadoop/app。
在root用户下输入yum -y install lrzsz
下载lrzsz工具包,随后输入rz
后按下回车,弹出对话框选择要上传的文件。
上传文件到虚拟机成功后,观察文件名为jdk7u79linuxx64.tar.gz,使用命令tar -zxvf jdk7u79linuxx64.tar.gz
为这个文件解压,在app目录下利用ls
命令查看文件发现解压后的文件夹名为jdk1.7.0-79,随后利用命令ln -s jdk1.7.0-79 jdk
对解压后的jdk1.7.0-79建立软连接(即给它起一个别名叫jdk)。
接下来使用vi ~/.bashrc
命令修改hadoop用户目录下的bashrc配置文件(注意vi与~间有空格)修改情况如下所示:
JAVA_HOME=/home/hadoop/app/jdk
CLASSPATH=.$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存并退出配置文件,通过source ~/.bashrc
命令使配置文件生效(注意source与~间有空格)。随后输入java -version
查看JDK版本号,如果出现版本号(如下图所示)即为安装成功。
Hadoop伪分布式集群的安装配置
上传文件与解压
在Xshell中用rz
命令将Hadoop安装包上传到CentOS系统的app目录中。观察文件名,利用tar -zxvf hadoop-2.6.0.tar.gz
命令解压安装包。使用cd hadoop-2.6.0/etc/hadoop
命令切换到Hadoop配置文件目录。输入ls
命令可查看该目录下全部文件。如图。
修改配置文件
共需要修改core-site.xml、hdfs-site.xml、hadoop-env.sh、mapred-site.xml、yarn-site.xml五个配置文件,以下为需要修改的部分。
修改操作只需在上一步切换好的目录中使用vi
命令,如修改core-site.xml则输入vi core-site.xml
执行即可。
core-site.xml(注意你的hostname如果前面设置的不是djt不要照搬我的)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://djt:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/data/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/dfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/dfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/home/hadoop/app/jdk
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
最后的工作与检测运行成果
首先输入cd后回车,后依次输入mkdir -p data/tmp
和mkdir -p data/dfs/name
以及mkdir -p data/dfs/data
三条语句创建Hadoop相关数据目录。随后在控制台输入bin/hadoop namenode -format
命令格式化NameNode。格式化完后会出现类似于下面的语句。
格式化完成后输入sbin/start-all.sh
命令启动Hadoop伪分布式集群,由于我们此前没有配置SSH免密码登录,因此在启动过程中我们需要多次输入密码。启动完成后在控制台输入jps
命令查看启动进程,如果出现如下图所示的五个进程则说明启动成功。
在CentOS自带的火狐浏览器中输入djt:50070(注意如果你之前设定的hostname不是djt不要照搬我的)即可查看HDFS的Web界面,如下图所示。
在浏览器中输入192.168.214.128:8088(注意这里是你的IP地址,不要照搬我的)即可查看YARN Web界面如下图所示。
自此,Hadoop伪分布式集群环境搭建完成。如需关闭Hadoop则可进入sbin目录下(cd sbin
)使用stop-all.sh
脚本。