hadoop102 | hadoop103 | hadoop104 | |
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
停止firewalld防火墙
systemctl stop firewalld //关闭防火墙开机自启动
systemctl disable firewalld //查看防火墙状态
systemctl status firewalld 关闭selinux防火墙
vi /etc/sysconfig/selinx #设置 SELINUX=disabled # 基于rpm安装配置jdk
#rpm -ivh jdk-8u281-linux.x64.rpm
配置环境变量
#export JAVA_HOME=/usr/java/jdk1.8.0_281-amd64
#export CLASSAATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib.tools.jar
#export PATH=$JAVA_HOME/bin
tar -zxf opt/software/jdk-8u261-linux-x64.tar.gz vi /etc/profile export JAVA_HOME=/opt/module/jdk1.8.0_261
CLASSPATH=.:$JAVA_HOME/lib.tools.jars
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
使得环境变量生效
source /etc/profile
查看jdk环境变量是否配置正确
javac -version
java -version
安装配置hadoop
tar -zxvf /opt/software/hadoop-3.1.4.tar.gz -C /opt/module 配置环境变量
export HADOOP_HOME=/opt/module/hadoop-3.1.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使得环境变量生效
source /etc/profile 查看hadoop环境变量是否配置正确
hadoop version 
克隆
虚拟机ip 以此修改
vi /etc/sysconfig/network-scripts/ifcfg-eng33 详细修改ip可参考Linux修改ip
hadoop102为192.168.10.27
hadoop103为192.168.10.28
hadoop104为192.168.10.29
重启网络并验证是否正常使用并连接xshell测试
1. systemctl restart network -> 2.ping wwww.baidu.com ->3. ip addr show eng33
修改主机名
hostnamectl set-hostname hadoop102(主机名)
查看主机名
hostname

另外两个节点也是
hostnamectl set-hostname hadoop103
hostnamectl set-hostname hadoop104
主机映射
vim /etc/hosts
192.168.10.27 hadoop102
192.168.10.28 hadoop103
192.168.10.29 hadoop104
时间同步
安装ntp服务
yum install ntp 同步时间
ntpdate -u ntp1.aliyun.com 查看时间
date 免密登录(ssh)
在集群开发中,主节点通常会对集群中各个节点频繁的访问,就需要不断输入目标服务器的用户名和密码,这种操作方式非常麻烦并且还会影响集群服务的连续运行。
为了解决上述问题,我们可以通过配置SSH服务来实现远程登录和SSH的免密登录功能。
可检查是否安装了ssh服务 rpm -qa |grep ssh
看看是否启动了ssh服务 ps -e |grep sshd
安装ssh服务命令为yum install openssh-server
原理
三台机器生成公钥和私钥
生成公钥和私钥 ssh-keygen -t rsa 组图按下三个回车即可
第一个回车是指的是 密钥保存的默认位置一般不修改 直接回车
第二个输入密码无 直接来两次回车

生成的公钥和私钥
公钥复制到hadoop102主机
[root@hadoop102.ssh]# ssh-copy-id hadoop102 //包括本机 [root@hodoop103 ~]# ssh-copy-id hadoop102 [root@hodoop104 ~]# ssh-copy-id hadoop102 
将第一台机器上authorized_keys文件拷贝到其他机器上,使得每台主机都有三台主机的公钥
scp:远程拷贝,可跨主机拷贝; cp:本地拷贝
[root@hodoop102.ssh]# scp /root/.ssh/authorized_keys hadoop103:/root/.ssh // 此/root/.ssh/authorized_keys文件在hadoop102主机上 [root@hodoop102.ssh]# scp /root/.ssh/authorized_keys hadoop104:/root/.ssh bin目录是Hadoop最基本的管理脚本和使用脚本所在的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop |
sbin目录存放的是我们管理脚本的所在目录,重要是对hdfs和yarn的各种开启和关闭和单线程开启和守护 |
etc目录存放的是一些Hadoop的配置文件 |
lib目录存放的是Hadoop运行时依赖的jar包,Hadoop在执行时会把lib目录下面的jar全部加到classpath中 |
logs目录存放的是Hadoop运行的日志,查看日志对寻找Hadoop运行错误非常有帮助 |
includ目录对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序 |
libexec目录各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。 |
share目录Hadoop各个模块编译后的jar包所在的目录 |
vi /etc/profile
# 定义HDFS和yarn在root用户上运行
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_SECURE_DN=hdfs
##yarn
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HADOOP_SECURE_DN_USER=root
以上也可在hadoop的sbin目录 start(stop)-dfs.sh 或start(stop)-yarn.sh添加
#HDFS_DATANODE_USER=root:用于启动和停止数据节点(DataNode)。
#HADOOP_SECURE_DN_USER=root:在启用了安全模式(安全模式)的情况下,用于启动和停止安全数据节点。
#HDFS_NAMENODE_USER=root:用于启动和停止主要的名称节点(NameNode)。
#HDFS_SECONDARYNAMENODE_USER=root:用于启动和停止辅助标题节点(Secondary NameNode)。
cd /opt/module/hadoop-3.1.4/etc/hadoop vi hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_261
配置core-site.xml
fs.defaultFS hdfs://hadoop102:8020 hadoop.tmp.dir /opt/module/hadoop-3.1.4/data hadoop.http.staticuser.user root hadoop.proxyuser.root.hosts * hadoop.proxyuser.root.groups * hadoop.proxyuser.root.users * 配置hdfs-stie.xml
dfs.namenode.http-address hadoop102:9870 dfs.namenode.secondary.http-address hadoop104:9868 dfs.replication 3 配置yarn-site.xml 配置resource manager nodemanager通信端口 web监控端口
yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop103 yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME yarn.scheduler.minimum-allocation-mb 512 yarn.scheduler.maximum-allocation-mb 2000 yarn.nodemanager.resource.memory-mb 3072 yarn.nodemanager.pmem-check-enabled true yarn.nodemanager.vmem-check-enabled false 获取白名单:
Hadooop官方网站:Hadoop – Apache Hadoop 3.1.4
配置mapred-site.xml
mapreduce.framework.name yarn 配置workers用来指定hadoop集群中所有的工作节点DataNode和NodeManager节点
hadoop102
hadoop103
hadoop104
远程发送scp
scp -r /opt/module/hadoop-3.1.4/etc/hadoop hadoop103:/opt/module/hadoop-3.1.4/etc/hadoop scp -r /opt/module/hadoop-3.1.4/etc/hadoop hadoop104:/opt/module/hadoop-3.1.4/etc/hadoop 格式化前需要三台需删除日志文件
rm -rf data/ logs/ 格式化 格式化日志有succefully format 则成功
hdfs namenode -format 进入hadoop的sbin目录编辑下面内容
cd $HADOOP_HOME/sbin
vim start-dfs.sh 和vim stop-dfs.sh
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
在start-yarn.sh和stop-yarn.sh文件开头添加下列参数:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
hadoop102 启动HDFS
start-dfs.sh hadoop103 启动YARN
start-yarn.sh HDFS WEB http://hadoop102:9870/


hadoop-daemon.sh | 通过执行hadoop命令来启动/停止一个守护进程(daemon);他可以单独开启一个进程也可以使用hadoop-daemons来开启多个进程,这样我们在某台机器挂掉时,就不用全部重新开启了 |
start-all.sh | 调用 start-dfs.sh和start-yarn.sh |
stop-all.sh | 调用 stop-dfs.sh和stop-yarn.sh |
start-dfs.sh | 启动NameNode ,SecondaryNamenode ,DataNode这些进程 |
start-yarn.sh | 启动ResourceManager,nodeManager 这些进程 |
stop-dfs.sh | 关闭NameNode ,SecondaryNamenode ,DataNode这些进程 |
stop-yarn.sh | 关闭ResourceManager,nodeManager 这些进程 |
YARN WEB http://hadoop103:8088/


在此之间只需把进程关闭即可
stop-hdfs.sh stop-yarn.sh 配置历史服务器
配置mapred-site.xml
mapreduce.jobhistory.address hadoop102:10020 mapreduce.jobhistory.webapp.address hadoop102:19888 配置日志的聚集
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager、ResourceManager和HistoryManager。
配置yarn-site.xml
yarn.log-aggregation-enable true yarn.log.server.url http://hadoop102:19888/jobhistory/logs yarn.log-aggregation.retain-seconds 604800 远程发送
scp -r mpared-site.xml hadoop103:/opt/module/hadoop-3.1.4/etc/hadoop scp -r yarn-site.xml hadoop103:/opt/module/hadoop-3.1.4/etc/hadoop scp -r mpared-site.xml hadoop104:/opt/module/hadoop-3.1.4/etc/hadoop scp -r yarn-site.xml hadoop104:/opt/module/hadoop-3.1.4/etc/hadoop 这样就可以不用格式化这些了
hadoop102 启动HDFS
start-dfs.sh hadoop103 启动YARN
start-yarn.sh hadoop102启动JobHistory命令
mr-jobhistory-daemon.sh start historyserver 
习题
单词统计

新建文本文件
vim word.txt
单词和单词直接要空格分隔(程序规定)

新建目录
上传word.txt文本文件到/user/data

cd $HADOOP_HOME/share/hadoop/mapreduce/
![]()
hadoop jar 执行jar包功能 mapreduce-examples-3.1.4.jar 指定执行具体的jar包 wordcount 单词计数功能 /user/data源文件 /user/data/output 目标文件output自动生成

查看结果
/user/data/output/_SUCCESS 运行成功标志
/user/data/output/part-r-00000

查看运行结果 hdfs dfs -cat /user/data/output/part*|part-r-00000

hdfs
hadoop102:9870 utilities -> Browse the file system -> /user/data ->part-r-00000 Download


yarn查看

历史服务器查看
