HDFS集群:NN,DN,SNN
YARN集群:RM,NM
例中所配置的HDFS集群:一个主角色NN,一个辅助SNN,三个从角色DN
YARN集群:一个主角色RM,三个从角色NM
两个组件共同构成Hadoop集群
打开软件 FinalShell
[root@node3 ~]# cat /etc/hostname
node3.itcast.cn
您在 /var/spool/mail/root 中有新邮件
[root@node3 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.88.151 node1 node1.itcast.cn
192.168.88.152 node2 node2.itcast.cn
192.168.88.153 node3 node3.itcast.cn
systemctl stop firewalld.service #关闭防火墙(当前)
systemctl disable firewalld.service #禁止防火墙开启自启(永久)
systemctl status firewalld.service #验证
[root@node3 ~]# systemctl stop firewalld.service
您在 /var/spool/mail/root 中有新邮件
[root@node3 ~]# systemctl disable firewalld.service
[root@node3 ~]# systemctl status firewalld.service #验证
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
ssh-keygen #4个回车 生成公钥、私钥
ssh-copy-id node1、ssh-copy-id node2、ssh-copy-id node3 #
验证:
ssh node1
exit
ssh node2
ntpdate ntp5.aliyun.com
[root@node1 ~]# ntpdate ntp5.aliyun.com
7 May 21:25:29 ntpdate[11515]: adjust time server 203.107.6.88 offset -0.134916 sec
[root@node1 ~]# date
2022年 05月 07日 星期六 21:26:21 CST
您在 /var/spool/mail/root 中有新邮件
mkdir -p /export/server/ #软件安装路径
mkdir -p /export/data/ #数据存储路径
mkdir -p /export/software/ #安装包存放路径
验证
[root@node1 ~]# ls /export/
data server software
上传:打开下方目录,点击export/server,将课程资料“jdk-8u241-linux-x64.tar.gz”拖拉进去
查看:cd /export/server
[root@node1 ~]# cd /export/server
您在 /var/spool/mail/root 中有新邮件
[root@node1 server]# ll
总用量 189988
-rw-r--r-- 1 root root 194545143 5月 7 21:31 jdk-8u241-linux-x64.tar.gz
解压
tar -zxvf jdk-8u241-linux-x64.tar.gz
删除安装包
[root@node1 server]# rm -rf jdk-8u241-linux-x64.tar.gz
vim /etc/profile
使用快捷键大G小o跳转到最后一行的下一行进行编辑
将下面的代码复制到最后
export JAVA_HOME=/export/server/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
shift +zz 保存退出(esc 命令格式)
重新加载环境变量文件,让其生效
source /etc/profile
[root@node1 server]# java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
您在 /var/spool/mail/root 中有新邮件
scp -r /export/server/jdk1.8.0_241/ root@node2:/export/server/
scp -r /export/server/jdk1.8.0_241/ root@node3:/export/server/
拷贝环境变量
scp /etc/profile root@node1:/etc/
scp /etc/profile root@node2:/etc/
scp /etc/profile root@node3:/etc/
三台机器重新加载配置环境
source /etc/profile
验证
java -version
上传安装包‘’hadoop-3.3.0-Centos7-64-with-snappy.tar.gz‘’ 到/export/server
cd /export/server
ll
tar -zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
ll
rm -rf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
[root@node1 server]# cd hadoop-3.3.0/
[root@node1 hadoop-3.3.0]# ll
总用量 84
drwxr-xr-x 2 root root 203 7月 15 2021 bin
drwxr-xr-x 3 root root 20 7月 15 2021 etc
drwxr-xr-x 2 root root 106 7月 15 2021 include
drwxr-xr-x 3 root root 20 7月 15 2021 lib
drwxr-xr-x 4 root root 288 7月 15 2021 libexec
-rw-rw-r-- 1 root root 22976 7月 5 2020 LICENSE-binary
drwxr-xr-x 2 root root 4096 7月 15 2021 licenses-binary
-rw-rw-r-- 1 root users 15697 3月 25 2020 LICENSE.txt
-rw-rw-r-- 1 root users 27570 3月 25 2020 NOTICE-binary
-rw-rw-r-- 1 root users 1541 3月 25 2020 NOTICE.txt
-rw-rw-r-- 1 root users 175 3月 25 2020 README.txt
drwxr-xr-x 3 root root 4096 7月 15 2021 sbin
drwxr-xr-x 3 root root 20 7月 15 2021 share
配置文件概述
修改配置文件
[root@node1 hadoop-3.3.0]# pwd
/export/server/hadoop-3.3.0
进入etc/
[root@node1 hadoop-3.3.0]# cd etc/
进入hadoop
[root@node1 etc]# ll
总用量 4
drwxr-xr-x 3 root root 4096 7月 15 2021 hadoop
[root@node1 etc]# cd hadoop/
[root@node1 hadoop]# pwd
/export/server/hadoop-3.3.0/etc/hadoop
vim hadoop-env.sh
大G小o跳转到文件最后一行的下一行
复制粘贴一下代码到最后一行
export JAVA_HOME=/export/server/jdk1.8.0_241
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
shift+zz 保存退出
vim core-site.xml
在两个中间,按下小o,插入一行,复制下面代码
<configuration>
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<!-- 设置Hadoop本地保存数据路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoop-3.3.0</value>
</property>
<!-- 设置HDFS web UI用户身份 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 整合hive 用户代理设置 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<!-- 文件系统垃圾桶保存时间 -->
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
</configuration>
shift zz 保存退出
vim hdfs-site.xml
在两个在两个中间,按下 i 插入复制的下面代码
<!-- 设置SNN进程运行机器位置信息 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:9868</value>
</property>
shift zz 保存退出
vim mapred-site.xml
在两个中间,按下 i 插入复制的下面代码
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- MR程序历史服务地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<!-- MR程序历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
shift zz 保存退出
vim yarn-site.xml
删除注释 用dd命令
<configuration>
<!-- Site specific YARN configuration properties --> ##dd删除
</configuration>
在两个中间,按下 i 插入复制的下面代码
<!-- 设置YARN集群主角色运行机器位置 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 是否将对容器实施物理内存限制 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 开启日志聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置yarn历史服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>
<!-- 历史日志保存的时间 7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
shift zz 保存退出
vim workers
dd命令删除默认的localhost
按 i 插入下面代码
node1.itcast.cn
node2.itcast.cn
node3.itcast.cn
shift zz 保存退出
cd /export/server
scp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD
vim /etc/profile
快捷键大G小o,来到当前文件最后一行的下一行编辑,粘贴下面代码
export HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
shift zz 保存退出
scp /etc/profile root@node2:/etc/
scp /etc/profile root@node3:/etc/
source /etc/profile
hadoop
格式化-初始化操作
-首次启动HDFS时,必须对其进行格式化操作。- 只能格式化一次
hdfs namenode -format
两种方式:手动逐个进程启停、 shell脚本一键启停
#hadoop2.x版本命令
hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
#hadoop3.x版本命令
hdfs --daemon start|stop namenode|datanode|secondarynamenode
#hadoop2.x版本命令
yarn-daemon.sh start|stop resourcemanager|nodemanager
#hadoop3.x版本命令
yarn --daemon start|stop resourcemanager|nodemanager
start-dfs.sh
停止
stop-dfs.sh
start-yarn.sh
stop-yarn.sh
start-all.sh
stop-all.sh
jps
第一台机器DN,NN
[root@node1 server]# jps
84502 Jps
83099 DataNode
82906 NameNode
第二台机器DN,SNN
[root@node2 ~]# jps
82529 DataNode
82704 SecondaryNameNode
85662 Jps
第三台机器DN
[root@node3 ~]# jps
82552 DataNode
85151 Jps
hadoop fs -mkdir /itcast
hadoop fs -put zookeeper.out /itcast
hadoop fs -ls /
例子
[root@node1 server]# hadoop fs -ls /
您在 /var/spool/mail/root 中有新邮件
[root@node1 server]# hadoop fs -mkdir /itcast
[root@node1 server]# hadoop fs -ls /
Found 1 items
drwxr-xr-x - root supergroup 0 2022-05-08 15:27 /itcast
[root@node1 server]#
再点击web页面,可以看到新增新增的目录
将本地文件上传到itcast目录下,再点击web页面查看
[root@node1 server]# echo 1 >1.txt
[root@node1 server]# ll
总用量 4
-rw-r--r-- 1 root root 2 5月 8 15:34 1.txt
drwxr-xr-x 11 root root 227 5月 8 11:33 hadoop-3.3.0
drwxr-xr-x 7 10143 10143 245 12月 11 2019 jdk1.8.0_241
[root@node1 server]# hadoop fs -put 1.txt /itcast
1. HDFS本质就是一个文件系统
2. 有目录树结构 和Linux类似,分文件、文件夹
3. 为什么上传一个小文件也这么慢?
cd /export/server/hadoop-3.3.0/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 2 4
[root@node1 server]# cd /export/server/hadoop-3.3.0/share/hadoop/mapreduce/
您在 /var/spool/mail/root 中有新邮件
[root@node1 mapreduce]# ll
总用量 5276
-rw-r--r-- 1 root root 589704 7月 15 2021 hadoop-mapreduce-client-app-3.3.0.jar
-rw-r--r-- 1 root root 803842 7月 15 2021 hadoop-mapreduce-client-common-3.3.0.jar
-rw-r--r-- 1 root root 1623803 7月 15 2021 hadoop-mapreduce-client-core-3.3.0.jar
-rw-r--r-- 1 root root 181995 7月 15 2021 hadoop-mapreduce-client-hs-3.3.0.jar
-rw-r--r-- 1 root root 10323 7月 15 2021 hadoop-mapreduce-client-hs-plugins-3.3.0.jar
-rw-r--r-- 1 root root 50701 7月 15 2021 hadoop-mapreduce-client-jobclient-3.3.0.jar
-rw-r--r-- 1 root root 1651503 7月 15 2021 hadoop-mapreduce-client-jobclient-3.3.0-tests.jar
-rw-r--r-- 1 root root 91017 7月 15 2021 hadoop-mapreduce-client-nativetask-3.3.0.jar
-rw-r--r-- 1 root root 62310 7月 15 2021 hadoop-mapreduce-client-shuffle-3.3.0.jar
-rw-r--r-- 1 root root 22637 7月 15 2021 hadoop-mapreduce-client-uploader-3.3.0.jar
-rw-r--r-- 1 root root 281197 7月 15 2021 hadoop-mapreduce-examples-3.3.0.jar
drwxr-xr-x 2 root root 4096 7月 15 2021 jdiff
drwxr-xr-x 2 root root 30 7月 15 2021 lib-examples
drwxr-xr-x 2 root root 4096 7月 15 2021 sources
[root@node1 mapreduce]# hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 2 4
参考
资料来源于《黑马程序员-大数据Hadoop入门》