1. YARN部署
参考官方文档:
https://hadoop.apache.org/docs/r2.10.0/hadoop-project-dist/hadoop-common/SingleCluster.html
-
1.1 配置 etc/hadoop/mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
1.2 配置 etc/hadoop/yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop001:7776</value>
</property>
</configuration>
8088 端口暴露外网,会有病毒感染风险,例如挖矿程序、计算比特币。
- 1.3 启动 yarn
cd /home/hadoop/app/hadoop/sbin
./sbin/start-yarn.sh
访问 http://localhost:7776/ 查看ui界面
2. 词频统计
- 2.1 在HDFS上创建文件夹
hdfs dfs -mkdir /wordcount2
存储需要计算的日志文件
hdfs dfs -mkdir /wordcount2/input/
将本地文件全部上传到 hdfs -> /wordcount2/input/ 下
hdfs dfs -put * /wordcount2/input/
查看 hdfs 上的/wordcount2/input/
hdfs dfs -ls /wordcount2/input/
- 2.2 执行 mapreduce计算任务
hadoop jar
./share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.6.0-cdh5.16.2.jar
wordcount /wordcount2/input/ /wordcount2/output1/
- 2.3 查看计算结果
hdfs dfs -ls /wordcount2/output1/
/wordcount2/output1/_SUCCESS
/wordcount2/output1/part-r-00000
mapreduce跑完结束,文件的个数=reduce由什么决定,当前是1
hdfs dfs -cat /wordcount2/output1/part-r-00000
a 4
ab 1
b 1
c 3
data 1
jepson 3
ruoze 3
3. jps命令
- 3.1 查看jps位置
which jps
/usr/java/jdk1.8.0_181/bin/jps
- 3.2 使用 (在任意目录下,前提需要配置好java环境)
jps
21712 DataNode
21585 NameNode
23989 ResourceManager
29877 Jps
24094 NodeManager
21871 SecondaryNameNode
- 3.3 对应的进程标识文件存储在哪
/tmp/hsperfdata_hadoop
cd ${HADOOP_HOMW}/tmp/hsperfdata_hadoop
ll
mv 21712 21712.bak
查看DataNode进程详细信息
ps -ef|grep DataNode
jps
发现没有DataNode
21585 NameNode
23989 ResourceManager
30358 Jps
24094 NodeManager
21871 SecondaryNameNode
- 3.4 -- process information unavailable
jps
21712 -- process information unavailable
31713 Jps
23989 -- process information unavailable
- 3.5 查看相应进程信息
ps -ef|grep 23989
root 31791 31644 0 22:11 pts/2 00:00:00 grep --color=auto 23989
ps -ef|grep 21712
文件被删除,不影响进程的重启
4. pid文件
-
4.1 存储位置 /tmp
-rw-rw-r-- 1 hadoop hadoop 4 May 9 22:16 hadoop-hadoop-datanode.pid -rw-rw-r-- 1 hadoop hadoop 4 May 9 22:16 hadoop-hadoop-namenode.pid -rw-rw-r-- 1 hadoop hadoop 5 May 9 22:16 hadoop-hadoop-secondarynamenode.pid
4.2 维护进程的pid 写死的
cat hadoop-hadoop-namenode.pid
792
-
4.3 文件被删除,会影响进程的重启
进程启动,pid文件写入进程的pid数字 进程关闭时,从pid文件读出pid数字,然后kill -9 pid
-
4.4 生产上 pid文件真的可以放心的丢在/tmp维护吗?
Linux的/tmp 会有30天的默认删除机制
4.5 如何修改
hadoop-env.sh脚本
总结:pid文件生产不要丢在/tmp目录
要知道是影响进程的启动停止
5. 块 block
-
5.1 解释
一缸水 260ml 瓶子 规格 128ml 260/128=2...4ml 128ml 128ml 4ml
-
5.2 HDFS
HDFS 存储大文件是利好,存储小文件是损害自己的 适合存储大文件 不适合小文件,不代表不能存储小文件 mv 260m文件 上传到hdfs,会把文件切割成块 dfs.blocksize 134217728 =128M 128m 128m 4m 3个块 伪分布式节点 1节点 副本数 dfs.replication 1 生产上HDFS集群的 DN肯定大于>=3台 dfs.replication=3 DN1 DN2 DN5 DN10 128m b1 b1 b1 128m b2 b2 b2 4m b3 b3 b3 通过设置副本数 来让文件存储在大数据HDFS平台上有容错保障 为什么由64M--》128M mv 260m文件 260/64=4...4M b1 64m b2 64m b3 64m b4 64m b5 4m 5个块 260/128=2...4M 128m 128m 4m 3个块 副本数3:存储实际大小=文件大小*3=260*3=780m 存储空间 5个块的元数据信息维护 是不是 比3个块的元数据的信息维护要多, 维护重 累--》namenode
-
5.3 规避小文件
如何规避 小文件 数据传输到hdfs之前 就合并 数据已经在hdfs上,就是定时 业务低谷的 去合并冷文件 /2020/10/10 /2020/10/11 /2020/10/12 当前时间 20号 14号的文件 21号 15号的文件 一天卡一天 10m以下的文件 小文件 10m 10m 10m ....10m 12个=120m 10m 10m 10m ....10m 13个=130m 合并 120m文件 128m 真正合并就超了 变为129m--》2个块 128m 1m