Linux单机配置Hadoop
注:本文的配置方案基于hadoop-2.7.2,安装目录是/opt/module,并且是单机配置。
配置环境变量
打开系统配置文件:vim /etc/profile
文件末尾追加如下配置:
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
重载系统配置文件:source /etc/profile
测试是否配置成功:hadoop version
单机配置
1、修改 hadoop-env.sh
vim /opt/module/hadoop2.7.2/etc/hadoop/hadoop-env.sh
替换export JAVA_HOME=${JAVA_HOME}
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_271
2、修改 hadoop-daemon.sh
vim /opt/module/hadoop-2.7.2/sbin/hadoop-daemon.sh
文件头增加配置
#!/usr/bin/env bash
export HADOOP_PID_DIR=/opt/module/hadoop-2.7.2/pid
3、修改 core-site.xml
vim /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml
替换configuration标签
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.119.139:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
</configuration>
4、修改 hdfs-site.xm
vim /opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml
替换configuration标签
<configuration>
<!--副本数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- secondarynamenode的地址,辅助namenode工作 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.119.139:50090</value>
</property>
</configuration>
5、修改 yarn-env.sh
vim /opt/module/hadoop-2.7.2/etc/hadoop/yarn-env.sh
替换export JAVA_HOME=${JAVA_HOME}
# some Java parameters
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_271
6、修改 yarn-daemon.sh
vim /opt/module/hadoop-2.7.2/sbin/yarn-daemon.sh
文件头增加配置
#!/usr/bin/env bash
export YARN_PID_DIR=/opt/module/hadoop-2.7.2/pid
7、修改 yarn-site.xml
vim /opt/module/hadoop-2.7.2/etc/hadoop/yarn-site.xml
替换configuration标签
<configuration>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.119.139</value>
</property>
</configuration>
8、修改 mapred-env.sh
vim /opt/module/hadoop2.7.2/etc/hadoop/mapred-env.sh
替换export JAVA_HOME=${JAVA_HOME}
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_271
9、修改 mapred-site.xml
vim /opt/module/hadoop2.7.2/etc/hadoop/mapred-site.xml
该文件默认不存在,需要cp一份
cp mapred-site.xml.template mapred-site.xml
替换configuration标签
<configuration>
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
10、配置 slaves(集群中从节点信息)
vim /opt/module/hadoop2.7.2/etc/hadoop/slaves
把默认的localhost删掉,替换为主机IP
192.168.119.139
启动单机Hadoop
集群的启动方式有两种,一种是单个服务启动,另外一种是利用
Hadoop官方给我们提供的脚本分模块启动
NameNode格式化
hadoop namenode -format
格式结果:格式化日志全部显示INFO代表成功
如果集群是第一次启动,需要格式化NameNode,NameNode终身
只格式化一次!!!
如果格式化了多次,或者各个服务无法启动,此时建议清除数据重新启动。
清除数据:将每个虚拟机的/opt/module/hadoop2.7.2/logs、/opt/module/hadoop2.7.2/data、/opt/module/hadoop-2.7.2/pid删除
启动顺序
首先启动namenode,注意需要在运行namenode的机器上启动
(namenode运行的机器是通过core-site.xml配置文件指定),它的
启动顺序优先于datanode
其次启动resourcemanager,注意需要在运行resourcemanager
的机器上启动(resourcemanager运行的机器是通过yarn-site.xml
配置文件指定),它的启动顺序优先于nodemanager
单个服务启动
启动顺序-HDFS
namenode
datanode
secondarynamenode
启动顺序-Yarn
resourcemanager
nodemanager
#HDFS相关服务
hadoop-daemon.sh start|stop
namenode|datanode|secondarynamenode
#yarn的相关服务
yarn-daemon.sh start|stop
resourcemanager|nodemanager
分模块启动
不需要关注启动顺序,因为它是批量启动的,所以重点关注启动的
位置
# 此脚本必须在namenode运行的机器上执行
start-dfs.sh
#stop-dfs.sh
# 此脚本必须在resourcemanager运行的机器上执行
start-yarn.sh
#stop-yarn.sh
启动结果:
验证是否启动成功
浏览器访问地址:
http://192.168.119.139:50070
http://192.168.119.139:8088
查看生成的NameNode