hadoop基础知识点学习-2

1. YARN部署

参考官方文档:

https://hadoop.apache.org/docs/r2.10.0/hadoop-project-dist/hadoop-common/SingleCluster.html

  • 1.1 配置 etc/hadoop/mapred-site.xml



    mapreduce.framework.name
    yarn

  • 1.2 配置 etc/hadoop/yarn-site.xml:



    yarn.nodemanager.aux-services
    mapreduce_shuffle


    yarn.resourcemanager.webapp.address
    hadoop001:7776

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=2603=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

posted @ 2020-05-10 12:17  Master_s  阅读(123)  评论(0)    收藏  举报