赞
踩
备忘录:为查询和总结记录。
记录:NO.225
本例环境:
操作系统:CentOS-7-x86_64-DVD-1908
JDK版本:jdk-8u251-linux-x64
Hadoop版本:hadoop-2.9.2
远程连接工具:SecureCRT 8.0
官网地址:https://hadoop.apache.org/
官网文档地址:https://hadoop.apache.org/docs
官网下载地址:https://archive.apache.org/dist/hadoop/common/
Linux环境准备:https://blog.csdn.net/zhangbeizhen18/article/details/107437516
1.Hadoop运行模式
本地模式,Standalone Operation。
伪分布式模式,Pseudo-Distributed Operation。
完全分布式模式,Fully-Distributed Operation。
2.创建目录
本例在/home/apps目录下创建module和software,安装包放在software备用,
module目录存安装软件。
命令如下:
sudo mkdir module
sudo mkdir software
sudo chown learn:learn /home/apps/module/ /home/apps/software/
注意:在部署操作使用一个普通用户learn进行操作。
其中learn用户具备root操作权限,即在
/etc/sudoers文件中新增
learn ALL=(ALL) ALL
在遇到需要root权限时,就在操作命令前添加sudo即可。
3.本例jdk安装
tar -zxvf jdk-8u251-linux-x64.rpm
如上安装就在默认路径下,即/usr/java/jdk1.8.0_251-amd64中
指定目录安装:
tar -zxvf jdk-8u251-linux-x64.rpm -C /home/apps/module/
在 /etc/profile新增环境变量:
vim /etc/profile
##JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
export PATH=$PATH:$JAVA_HOME/bin
生效:
source /etc/profile
验证java命令生效:
java -version
4.安装Hadoop
在/home/apps/software/操作
tar -zxvf hadoop-2.9.2.tar.gz -C /home/apps/module/
安装后hadoop落盘在/home/apps/module/hadoop-2.9.2
5.配置Hadoop环境变量
在 /etc/profile新增环境变量:
vim /etc/profile
sudo vim /etc/profile
###HADOOP_HOME 2020-7-19
export HADOOP_HOME=/home/apps/module/hadoop-2.9.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
生效:
source /etc/profile
验证hadoop命令生效:
hadoop
6.本例环境说明
用户:learn
主机名:hadoop150
hosts域名映射:192.168.110.150 hadoop150
7.配置HDFS
在/home/apps/module/hadoop-2.9.2目录
配置文件在目录:
/home/apps/module/hadoop-2.9.2/etc/hadoop
7.1修改hadoop-env.sh
遇到.sh考虑修改jdk路径
vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
7.2修改core-site.xml
vim core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop150:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/apps/module/hadoop-2.9.2/data/tmp</value>
</property>
7.3修改hdfs-site.xml
vim hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
8.启动HDFS验证
HDFS启动验证,即HDFS可独立运行。
8.1启动命令
在/home/apps/module/hadoop-2.9.2
首先格式化格式化NameNode(第一次启动格式化)
bin/hdfs namenode -format
先启动NameNode,再启动DataNode,命令依次
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
关闭,则先关闭DataNode,再NameNode。
sbin/hadoop-daemon.sh stop datanode
sbin/hadoop-daemon.sh stop namenode
使用jps查看进程,本例有如下进程
24049 Jps
23878 NameNode
23993 DataNode
8.2启动过程报错
在/home/apps/module/hadoop-2.9.2/logs查看
8.3在浏览器中验证HDFS
访问方式:
http://hadoop150:50070/
或者
192.168.110.150:50070
使用域名访问,则访问机器需配置hosts文件
比如本例在window中配置
C:\Windows\System32\drivers\etc\hosts
新增:
192.168.110.150 hadoop150
访问到页面如下:
注意在页面中Utilities中查看 browse the file system,这是HDFS文件系统路径。
9.操作HDFS文件系统
9.1在HDFS文件系统上创建一个input文件夹
在/home/apps/module/hadoop-2.9.2中执行命令
bin/hdfs dfs -mkdir -p /user/learn/input
解析:
bin/hdfs dfs 操作HDFS文件系统
-mkdir -p /user/learn/input 创建目录,和操作Linux本地文件类似,加一个-
在浏览器Utilities菜单的browse the file system查看
如下:
xx
9.2从Linux本地上传文件到HDFS文件系统
在/home/apps/module/hadoop-2.9.2中创建文件并复制点内容
本例是:
/home/apps/module/hadoop-2.9.2/input/info.txt
上传命令:
bin/hdfs dfs -put input/info.txt /user/learn/input
可以在页面查看
命令查看如下
bin/hdfs dfs -ls /user/learn/input
bin/hdfs dfs -cat /user/learn/input/info.txt
9.3在HDFS文件系统运行WordCount案例
命令:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /user/learn/input /user/learn/output
这条指令没有特殊标识运行的是hdfs文件系统,
注意:配置了HDFS后,执行的就是hdfs文件系统文件了。
9.4在HDFS文件系统查看结果
bin/hdfs dfs -ls /user/learn/output
bin/hdfs dfs -cat /user/learn/output/part-r-00000
9.5小结
HDFS文件系统配置完成后可独立运行,且hadoop命令读取的文件不再是本地,而是HDFS文件系统。
MapReduce运行在HDFS上。
10.配置YARN
在/home/apps/module/hadoop-2.9.2目录
配置文件在目录:
/home/apps/module/hadoop-2.9.2/etc/hadoop
10.1修改yarn-env.sh
vim yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
10.2修改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>hadoop150</value>
</property>
10.3修改mapred-env.sh
vim mapred-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
10.4修改mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
11.启动HDFS验证
11.1启动验证
在/home/apps/module/hadoop-2.9.2目录
启动ResourceManager
sbin/yarn-daemon.sh start resourcemanager
启动nodemanager
sbin/yarn-daemon.sh start nodemanager
使用jps验证有如下进程:
40325 ResourceManager
23878 NameNode
40630 Jps
23993 DataNode
40590 NodeManager
11.2在浏览器验证
查看HDFS
http://hadoop150:50070/
或者
192.168.110.150:50070
查看MapReduce
http://hadoop150:8088
11.3运行WordCount案例
删除上一次运行的输出文件
bin/hdfs dfs -rm -r /user/learn/output
运行
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /user/learn/input /user/learn/output
查看结果:
bin/hdfs dfs -ls /user/learn/output
bin/hdfs dfs -cat /user/learn/output/part-r-00000
12.配置历史日志服务器
配置文件在目录:
/home/apps/module/hadoop-2.9.2/etc/hadoop
12.1修改mapred-site.xml
vim mapred-site.xml
<!-- 历史服务器地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop150:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop150:19888</value>
</property>
12.2启动历史服务器
sbin/mr-jobhistory-daemon.sh start historyserver
使用jps查看新增进程
JobHistoryServer
12.3在浏览器查看
hadoop150:19888
13.关闭已经启动进程
sbin/mr-jobhistory-daemon.sh stop historyserver
sbin/yarn-daemon.sh stop nodemanager
sbin/yarn-daemon.sh stop resourcemanager
sbin/hadoop-daemon.sh stop datanode
sbin/hadoop-daemon.sh stop namenode
14.配置日志聚合
14.1关闭historyserver、nodemanager、resourcemanager
sbin/mr-jobhistory-daemon.sh stop historyserver
sbin/yarn-daemon.sh stop nodemanager
sbin/yarn-daemon.sh stop resourcemanager
14.2修改mapred-site.xml
<!-- 日志聚集功能使能为true即可 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置为3天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>259200</value>
</property>
15.启动进程验证
15.1启动
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
sbin/mr-jobhistory-daemon.sh start historyserver
15.2验证
运行WordCount案例
删除输出文件
bin/hdfs dfs -rm -r /user/learn/output
运行案例:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /user/learn/input /user/learn/output
16.页面查看
http://hadoop150:50070
http://hadoop150:8088
http://hadoop150:19888
17.数量全量配置
配置HDFS
hadoop-env.sh
core-site.xml
hdfs-site.xml
配置YARN,历史日志服务器,日志聚合
yarn-env.sh
yarn-site.xml
mapred-env.sh
mapred-site.xml
17.1配置HDFS
配置hadoop-env.sh
##JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
配置core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop150:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/apps/module/hadoop-2.9.2/data/tmp</value>
</property>
配置hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
17.2配置YARN
配置yarn-env.sh
##JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
配置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>hadoop150</value>
</property>
配置mapred-env.sh
##JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
配置mapred-site.xml
<!-- 历史服务器地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop150:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop150:19888</value>
</property>
<!-- 日志聚集功能使能为true即可 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置为3天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>259200</value>
</property>
18.启动命令
18.1启动进程
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
sbin/mr-jobhistory-daemon.sh start historyserver
18.2关闭进程
sbin/mr-jobhistory-daemon.sh stop historyserver
sbin/yarn-daemon.sh stop nodemanager
sbin/yarn-daemon.sh stop resourcemanager
sbin/hadoop-daemon.sh stop datanode
sbin/hadoop-daemon.sh stop namenode
19.跑WordCount案例
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /user/learn/input /user/learn/output
20.浏览器查看
http://hadoop150:50070
http://hadoop150:8088
http://hadoop150:19888
页面:
http://hadoop150:50070
http://hadoop150:8088
http://hadoop150:19888
以上,感谢。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。