手把手教你配置hadoop(二)
1.进入Hadoop软件包,命令如下:
先切回到root用户
[kkb@master ~]$ su - root
进入到hadoop目录下(压缩包可以使用鼠标将压缩包拖入虚拟机中)
[root@master ~]$ cd /software/hadoop/
解压Hadoop安装包命令如下:
[root@master hadoop]$ tar -zxvf hadoop-2.7.3.tar.gz

2.配置环境变量hadoop-env.sh
环境变量文件中,只需要配置JDK的路径
[root@master hadoop-2.7.3]$ vi /software/hadoop/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
在文件的靠前的部分找到下面的一行代码:
export JAVA_HOME=${JAVA_HOME}
将这行代码修改为下面的代码:
export JAVA_HOME=/usr/java/jdk1.8.0_181/
然后保存文件

如果你不知道自己的Java版本可以通过下面的方法得到

配置环境变量yarn-env.sh
环境变量文件中,只需要配置JDK的路径。
[root@master hadoop-2.7.3]$ vi /software/hadoop/hadoop-2.7.3/etc/hadoop/yarn-env.sh
在文件的靠前的部分找到下面的一行代码:
export JAVA_HOME=/home/y/libexec/jdk1.6.0/
将这行代码修改为下面的代码(将#号去掉):
export JAVA_HOME=/usr/java/jdk1.8.0_181/
然后保存文件

3.配置核心组件core-site.xml
使用vi编辑:
[root@master hadoop-2.7.3]$ vi /software/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml
用下面的代码替换core-site.xml中的内容:(注意路径一致)
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/software/hadoop/hadoopdata</value>
</property>
</configuration>

4.配置文件系统hdfs-site.xml
使用vi编辑:
[root@master hadoop-2.7.3]$ vi /software/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml
用下面的代码替换hdfs-site.xml中的内容:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>

5.配置文件系统yarn-site.xml
使用vi编辑:
[root@master hadoop-2.7.3]$ vi /software/hadoop/hadoop-2.7.3/etc/hadoop/yarn-site.xml
用下面的代码替换yarn-site.xml中的内容:
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property> <name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property> <name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property> <name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>

6.配置计算框架mapred-site.xml
复制mapred-site-template.xml文件:
[root@master hadoop-2.7.3]$ cp /software/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml.template
/software/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml
使用vi编辑:
[root@master ~]$ vi /software/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml
用下面的代码替换mapred-site.xml中的内容
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
cp /software/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml.template /software/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml
7.在master节点配置slaves文件
使用vi编辑:
[root@master hadoop-2.7.3]$ vi /software/hadoop/hadoop-2.7.3/etc/hadoop/slaves
用下面的代码替换slaves中的内容:
slave01
slave02

8.更改权限(三个节点都操作)
给hadoop目录授权
[root@master hadoop-2.7.3]$ chown kkb.kkb /software/hadoop/ -R # -R是递归的意思

给我们每台虚拟就都创建一个相同路径的hadoop文件夹,方便管理

9.复制到从节点
使用下面的命令将已经配置完成的Hadoop复制到从节点HadoopSlave上:
[root@master hadoop-2.7.3]$ su - kkb
[root@master ~]$ scp -r /software/hadoop/hadoop-2.7.3 root@slave01:/software/hadoop
[root@master ~]$ scp -r /software/hadoop/hadoop-2.7.3 root@slave02:/software/hadoop
注意:因为之前已经配置了免密钥登录,这里可以直接远程复制。
在我们的slave01,slave02中查看hadoop,并都做一次授权


六. 启动Hadoop集群
1.下面所有的操作都使用kkb用户,切换kkb用户的命令是:
su - kkb(如果已在普通用户下则不用再执行)
2.配置Hadoop启动的系统环境变量
该节的配置需要同时在两个节点(HadoopMaster和HadoopSlave)上进行操作,操作命令如下:
只需要在kkb用户下执行环境变量配置操作即可
[kkb@master ~]$ vi .bash_profile
复制粘贴以下内容添加到到上面vi打开的文件中:
JAVA_HOME=/usr/java/jdk1.8.0_181/
HADOOP_HOME=/software/hadoop/hadoop-2.7.3
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME
export HADOOP_HOME
export PATH

使改动生效命令:
[kkb@master ~]$ source ~/.bash_profile
3.创建数据目录
该节的配置需要同时在两个节点(HadoopMaster和HadoopSlave)上进行操作。
在kkb的用户主目录下,创建数据目录,命令如下:
[kkb@master ~]$ mkdir /software/hadoop/hadoopdata
4.启动Hadoop集群
4.1格式化文件系统
格式化命令如下,该操作需要在HadoopMaster节点上执行:(需要等待一些时间,没有报错进入下一步)
[kkb@master ~]$ hdfs namenode -format
4.2启动Hadoop
使用start-all.sh启动Hadoop集群,首先进入Hadoop安装主目录,然后执行启动命令:
[kkb@master ~]$ cd ~/hadoop-2.7.3
[kkb@master ~]$ start-all.sh
执行命令后,提示输入yes/no时,输入yes。
注意
可能存在启动不了,启动hadoop时报错,nodemanager running as process 6410. Stop it first.之类的
解决方法:
进程已经在运行中了,先执行stop-all.sh下,然后再执行start-all.sh,楼主通过此方法,问题解决
4.3查看进程是否启动
在HadoopMaster的终端执行jps命令,在打印结果中会看到4个进程,分别是ResourceManager
Jps
NameNode
SecondaryNameNode
如下图所示。如果出现了这4个进程表示主节点进程启动成功。

在HadoopSlave的终端执行jps命令,在打印结果中会看到3个进程,分别是NodeManager
DataNode
Jps