安装Hadoop
解压安装包
[atguigu@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C
/opt/module添加环境变量
[atguigu@hadoop102 hadoop-3.1.3]$ sudo vim
/etc/profile.d/my_env.sh在 my_env.sh文件末尾添加如下内容 (shift+g)
:’ #HADOOP_HOME ‘
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=\$PATH:\$HADOOP_HOME/bin
export PATH=\$PATH:\$HADOOP_HOME/sbin
测试是否安装成功
[atguigu@hadoop102 hadoop-3.1.3 ]$ hadoop version
Hadoop 3.1.3
配置SSH免密登陆
SSH无密登录配置
生成公钥和私钥
[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登录的目标机器上
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104
注意:
还需要在hadoop102上采用 root 账号,配置一下无密登录到hadoop102、hadoop103、hadoop104;
还需要在hadoop103上采用 atguigu 账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。
还需要在hadoop104上采用 atguigu 账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。
配置集群
核心配置文件
配置core-site.xml
[atguigu@hadoop102 hadoop]$ vi core-site.xml
在该文件中编写如下配置
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
<!-- Hadoop3.x 配置 HDFS 网页登录使用的静态用户为 atguigu -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>atguigu</value>
</property>
HDFS配置文件
配置hadoop-env.sh
[atguigu@hadoop102 hadoop]$ vi hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置hdfs-site.xml
[atguigu@hadoop102 hadoop]$ vi hdfs-site.xml
在该文件中编写如下配置
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- nn web 端访问地址 -->
<property>
<name>dfs.namenode.http address </</name>
<value>hadoop102:50070</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<!-- 2 nn web 端访问地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:50090</value>
</property>
YARN配置文件
配置yarn-env.sh
[atguigu@hadoop102 hadoop]$ vi yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置yarn-site.xml
[atguigu@hadoop102 hadoop]$ vi yarn-site.xml
在该文件中增加如下配置
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,
HADOOP_YARN_HOME, HADOOP_MAPRED_HOME </value>
</property>
MapReduce配置文件
配置mapred-env.sh
[atguigu@hadoop102 hadoop]$ vi mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置mapred-site.xml
[atguigu@hadoop102 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[atguigu@hadoop102 hadoop]$ vi mapred-site.xml
在该文件中增加如下配置
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>19888</value>
</property>
在集群上分发配置好的Hadoop配置文件
[atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop-2.7.2/
配置slaves/workers
hadoop2.x修改 /opt/module/hadoop-2.7.2/etc/hadoop/slaves
hadoop3.x修改 /opt/module/hadoop-3.1.3/etc/hadoop/workers
[atguigu@hadoop102 hadoop]$ vi slaves
在该文件中增加如下内容:注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
hadoop102
hadoop103
hadoop104
同步所有节点配置文件:
[atguigu@hadoop102 hadoop]$ xsync slaves
启动
如果集群是第一次启动,需要格式化NameNode,==启动前要关闭所有服务==(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)
注意:格式化 NameNode 会产生新的集群 id,导致 NameNode 和 DataNode的集群 id不一致,集群找不到已往数据。 如果集群在运行过程中报错,需要重新格式化 NameNode的话, 一定要 先停止 namenode和 datanode进程, 并且要 删除 所有机器的 data和 logs目录,然后再进行格式化。
[atguigu@hadoop102 hadoop-2.7.2]$ hadoop namenode -format
集群启动/停止HDFS
start-dfs.sh / stop-dfs.sh
集群启动/停止YARN
start-yarn.sh / stop-yarn.sh