1.准备3台客户机(关闭防火墙,静态ip,主机名称)
2.安装jdk
3.配置环境变量
4.安装hadoop,hadoop版本是3.1.3,包名为hadoop-3.1.3.tar.gz
5.配置环境变量
6.配置集群
7.单点启动
8.配置ssh
9.群起集群并测试集群
注意: NameNode和SecondaryNameNode和ResourceManage三者很消耗内存,不要安装在同一台服务器上

namenode端口号说明
| namenode | 版本号 | 端口号 |
|---|---|---|
| 1.x | 8020 | |
| 2.x | 9000 | |
| 3.0.x | 9020 | |
| 3.1.x | 8020 |
namenode web端口号说明
| namenode web端口号 | 版本号 | 端口号 |
|---|---|---|
| 1.x 2.x | 50070 | |
| 3.x | 9870 |
secondarynamenode web端口号说明
| secondarynamenode web端口号 | 版本号 | 端口号 |
|---|---|---|
| 1.x 2.x | 50090 | |
| 3.x | 9868 |
有core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml,works
(1)core-site.xml修改的内容有:
①NameNode的内部连接地址;
②hadoop数据存储的目录,默认是linux临时目录,到日期会被清除掉;
③配置hdfs登录的静态用户moxi,(好处是当使用的是moxi用户启动的hadoop,有权限进行删除);
④配置moxi为代理用户(因为在使用hive的时候,每一个用户都会创建一个hiveserver2,这个客户端非常占用空间,就想着所有用户用同一个hiveserver2,提交作业,如果不配置不可以,配置了就能用。
<configuration>
<property>
<name>fs.defaultFSname>
<value>hdfs://hadoop102:8020value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>/opt/module/hadoop-3.1.3/datavalue>
property>
<property>
<name>hadoop.http.staticuser.username>
<value>moxivalue>
property>
<property>
<name>hadoop.proxyuser.atguigu.hostsname>
<value>*value>
property>
<property>
<name>hadoop.proxyuser.moxi.groupsname>
<value>*value>
property>
<property>
<name>hadoop.proxyuser.moxi.usersname>
<value>*value>
property>
configuration>
(2)hdfs-site.xml修改的内容有:
①配置nn web端访问的地址,配置为hadoop102:9870
②配置2nn web端访问地址,配置为hadoop104:9868
③配置hdfs副本的数量,一般指定为3个,测试集群一般是1个
<configuration>
<property>
<name>dfs.namenode.http-addressname>
<value>hadoop102:9870value>
property>
<property>
<name>dfs.namenode.secondary.http-addressname>
<value>hadoop104:9868value>
property>
<property>
<name>dfs.replicationname>
<value>3value>
property>
configuration>
(3)yarn-site.xml修改的内容有:
①指定MR走shuffle
②指定ResourceManager的地址:在hadoop103
③环境变量的继承
④yarn单个容器允许分配的最大最小内存,(默认是8G,需要修改,限定为和服务器一样大),这个参数每个机器单独设置,(内存为8,4,4和6,3,3需要修改,最大内存和服务器分配的最大内存一样,否则,内存超出会崩)
⑤yarn容器允许管理的物理内存大小,这个参数每个机器单独设置
⑥关闭yarn对虚拟内存的限制,物理内存不能关闭。(默认都是true,检测nodemanager和其它组件内存使用情况,超过内存大小就阻止它使用,把他干掉,很危险,需要关闭;虚拟内存,就是把超出内存的空间运行在磁盘上)
<configuration>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
<property>
<name>yarn.resourcemanager.hostnamename>
<value>hadoop103value>
property>
<property>
<name>yarn.nodemanager.env-whitelistname>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOMEvalue>
property>
<property>
<name>yarn.scheduler.minimum-allocation-mbname>
<value>512value>
property>
<property>
<name>yarn.scheduler.maximum-allocation-mbname>
<value>4096value>
property>
<property>
<name>yarn.nodemanager.resource.memory-mbname>
<value>4096value>
property>
<property>
<name>yarn.nodemanager.pmem-check-enabledname>
<value>truevalue>
property>
<property>
<name>yarn.nodemanager.vmem-check-enabledname>
<value>falsevalue>
property>
configuration>
(4)mapred-site.xml修改的内容有:
①指定mapreduce程序在yarn上运行
<configuration>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
configuration>
(5)配置集群works:
在1.x和2.x名字叫slaves,不叫works。
把默认的localhost删掉,注意:填写下面的hadoop102,hadoop103,hadoop104,需要提前做好主机名和ip地址的映射;下面的文件不能有空格例如在hadoop102后面不能有空格;也不能有空行,在hadoop104下面不能有空行
hadoop102
hadoop103
hadoop104
为什么要配置历史服务器?
任务在运行过程中,会记录运行过程的日志,不配置,运行结束了就结束了。
在hadoop-3.1.3/etc/hadoop/mapred-site.xml文件下配置
<property>
<name>mapreduce.jobhistory.addressname>
<value>hadoop102:10020value>
property>
<property>
<name>mapreduce.jobhistory.webapp.addressname>
<value>hadoop102:19888value>
property>
作用:不配置,查看日志需要在各自台上查询各自的,这是很麻烦的一件事,如果配置过之后,就可以在一台设备上,查看所有设备的日志,这是很方便的
在 yarn-site.xml上配置。
<property>
<name>yarn.log-aggregation-enablename>
<value>truevalue>
property>
<property>
<name>yarn.log.server.urlname>
<value>http://hadoop102:19888/jobhistory/logsvalue>
property>
<property>
<name>yarn.log-aggregation.retain-secondsname>
<value>604800value>
property>
[moxi@hadoop102 hadoop-3.1.3]$ xsync /opt/module/hadoop-3.1.3/
[moxi@hadoop102 hadoop-3.1.3]$ sudo vim /etc/profile.d/my_env.sh
添加如下内容:
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
注意:在root下,需要把分发指令路径写完整。
[moxi@hadoop102 hadoop-3.1.3]$ sudo /home/moxi/bin/xsync /etc/profile.d/my_env.sh
[moxi@hadoop102 module]$ source /etc/profile.d/my_env.sh
[moxi@hadoop103 module]$ source /etc/profile.d/my_env.sh
[moxi@hadoop104 module]$ source /etc/profile.d/my_env.sh
如果集群是第一次启动,需要在hadoop102节点格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)
[moxi@hadoop102 hadoop-3.1.3]$ bin/hdfs namenode -format
(1)启动HDFS
[moxi@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh
(2)在配置了ResourceManager的节点(一定要在hadoop103上启动,因为在103上配置的)启动YARN
[moxi@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh
①Web端查看HDFS的Web页面:http://hadoop102:9870/
②Web端查看yarn的web页面:http://hadoop103:8088/
在一台设备上启动所有进程。
进入目录/home/moxi/bin
编辑文件vim hdp.sh
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 启动 hadoop集群 ==================="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop/sbin/start-yarn.sh"
echo " --------------- 启动 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 关闭 hadoop集群 ==================="
echo " --------------- 关闭 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
echo " --------------- 关闭 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error..."
;;
esac
给权限
chmod 777 hdp.sh
使用指南:
hdp.sh start
安装包链接:
链接:https://pan.baidu.com/s/1NUBmKLx6K71H95OZwOweag?pwd=kpv1
提取码:kpv1