Hadoop入门四(3.2.2版本)

一.hdfs命令

hdfs dfs -linux命令,操作是一样的

su - hadoop001

①which hadoop     ②which hdfs

    hadoop 回车           hdfs 回车

hadoop与hdfs对比

对比hadoop命令和hdfs命令,发现有些不一样。

hadoop fs 等价于 hdfs dfs命令

(一).hadoop命令

1. 查看当前版本 压缩情况

hadoop checknative  #查看当前版本压缩情况

当前版本压缩情况

2021-12-13 22:48:33,578 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native

2021-12-13 22:48:33,583 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library

2021-12-13 22:48:33,590 WARN zstd.ZStandardCompressor: Error loading zstandard native libraries: java.lang.InternalError: Cannot load libzstd.so.1 (libzstd.so.1: cannot open shared object file: No such file or directory)!

2021-12-13 22:48:33,598 WARN erasurecode.ErasureCodeNative: ISA-L support is not available in your platform... using builtin-java codec where applicable

2021-12-13 22:48:33,796 INFO nativeio.NativeIO: The native code was built without PMDK support.

Native library checking:

hadoop:  true /home/hadoop001/app/hadoop-3.2.2/lib/native/libhadoop.so.1.0.0

zlib:    true /lib64/libz.so.1

zstd  :  false

snappy:  true /lib64/libsnappy.so.1

lz4:    true revision:10301

bzip2:  true /lib64/libbz2.so.1

openssl: false Cannot load libcrypto.so (libcrypto.so: cannot open shared object file: No such file or directory)!

ISA-L:  false libhadoop was built without ISA-L support

PMDK:    false The native code was built without PMDK support.

【说明】如果压缩是false,一般需要自己编译,支持压缩;如果使用CDH系列的,不用担心。

【注意】压缩的版本:snappy

2. hadoop classpath

hadoop classpath  #打印当前类的路径

当前类的路径

/home/hadoop001/app/hadoop/etc/hadoop:/home/hadoop001/app/hadoop/share/hadoop/common/lib/*:/home/hadoop001/app/hadoop/share/hadoop/common/*:/home/hadoop001/app/hadoop/share/hadoop/hdfs:/home/hadoop001/app/hadoop/share/hadoop/hdfs/lib/*:/home/hadoop001/app/hadoop/share/hadoop/hdfs/*:/home/hadoop001/app/hadoop/share/hadoop/mapreduce/lib/*:/home/hadoop001/app/hadoop/share/hadoop/mapreduce/*:/home/hadoop001/app/hadoop/share/hadoop/yarn:/home/hadoop001/app/hadoop/share/hadoop/yarn/lib/*:/home/hadoop001/app/hadoop/share/hadoop/yarn/*

(二).hdfs命令

1.hdfs dfsadmin

hdfs dfsadmin  #(管理员的命令)

hdfs dfsadmin相关命令

比如:hdfs dfsadmin -report  #报告当前集群的情况

当前集群的情况

2. 安全模式

hdfs dfsadmin  [-safemode <enter | leave | get | wait>] 

安全模式关闭 : 读写正常

【问题】安全模式打开时,能进行读写操作吗?

答:只能读不能写

验证:

hdfs dfsadmin -safemode enter #进入安全模式

hdfs dfs -put 1.log /tmp

hdfs dfs -cat /tmp/1.log

安全模式打开与关闭对比

由此可以看出,安全模式打开的情况下,只能读不能写。

生产上,如果通过log 查看到 safemode: on,必然集群是有问题的,这个时候可以手动从安全模式离开,然后就能正常对外提供服务,具体命令如下:

hdfs dfsadmin -safemode leave   #离开安全模式

做集群维护的时候,目标是不要有数据写入,那进入安全模式。另外在生产上如果block块丢失过多,会自动进入安全模式。

2.检查

hdfs fsck  #对dfs做系统检查

hdfs fsck相关命令

比如显示:Target Replicas is 3 but found 1-2 live replica(s)  说明丢失1-2副本。

3.集群平衡

3.1 DN1 DN2-节点与节点之间的平衡

用cat start-balancer.sh 和cat stop-balancer.sh查看脚本

balancer            run a cluster balancing utility

hdfs balancer -policy datanode -threshold 10

threshold = 10.0

这里的10代表每个节点磁盘使用率减去平均磁盘使用率最后的结果小于10%

假如

DN1 磁盘占用了 90%; -76% = 14%  多了4%

DN2 磁盘占用了80%; -76% = 4%    满足

DN3 磁盘占用了 60% 

平均磁盘使用率为:76% ,对于:

DN1 90% -76% = 14%  多了4%

DN2  80% -76% = 4%    满足

DN3  60% -76% = -16%  少了 -16%

其中DN1多了4%;DN2满足小于10%的条件;DN3少了16%,然后会根据它自己的算法去均衡磁盘,均衡到阈值10%以下。一般这里面有一个shell脚本,【建议】生产上,每天晚上业务低谷时期,定时执行该脚本去均衡磁盘。

3.2 DN1内部 /data01(1T)  /data02(2T)-单个节点多盘的平衡

【注意】2.x版本没有这个功能

diskbalancer        Distributes data evenly among disks on a given node

默认参数设置:dfs.disk.balancer.enabled  : true  【注意】2.x版本这里的默认参数是false

hdfs diskbalancer --help  #命令帮助,事半功倍!!!

hdfs diskbalancer相关命令(query查询)

多看看官方文档:Hadoop – Apache Hadoop 3.3.1

执行命令: 先生成计划  再执行

hdfs diskbalancer -plan ruozedata001  #生成计划

hdfs diskbalancer -execute ruozedata001.plan.json  #执行计划

4.回收站

【问题】Linux 有回收站?

答:没有,但是非要做,怎么办?

参考网站:Linux删除文件实现回收站功能 - 方面盘 - 博客园 (cnblogs.com)

hdfs是有回收站的

验证:

cd ~/data/input

hdfs dfs -put 1.log /

hdfs dfs -rm /1.log

没有配置,直接删除

配置回收站:

cd ~/app/hadoop/etc/hadoop

vi core-site.xml  进入之后,新增配置:

  <property>

           <name>fs.trash.interval</name>

           <value>10080</value>   #保留块的时间,单位:min

  </property>

配置回收站

配置结束后,重新启动:

cd ~/app/hadoop

sbin/stop-dfs.sh

sbin/start-dfs.sh

【注意】重启之后可能又会自动进入到安全模式,可以通过log日志查看

ll ~/app/hadoop/logs

tail -200f xxx.log

显示:The report.....

原因:块丢失

hdfs fsck /  #查看块丢失详情

hdfs dfsadmin -safemode leave   #离开安全模式

 验证:

hdfs dfs -put 1.log /

hdfs dfs -rm /1.log

此时删除把文件Moved到了回收站

hdfs dfs -ls hdfs://comerdata001:9000/user/hadoop001/.Trash/Current/1.log

hdfs dfs -cat  hdfs://comerdata001:9000/user/hadoop001/.Trash/Current/1.log

查看回收站内容

生产上一定要配置回收站哟!!!

二.mapreduce 计算框架

map    映射: 是指一组数据按照一定的规则映射成一组

select id+10 as id ,name from t;

reduce  规约:  汇总

select name,sum(id) from

(select id+10 as id,name from t

) group by name;

例SQL:

id 1 2 3 4

name  a b c d

【huffle 洗牌】: 数据按照key(group by后面的数据)进行网络传输规整到一起,按照计算规则计算。

三.mapreduce on yarn架构设计【面试题】

1. container 容器 虚拟化概念

container 容器 虚拟化概念是一定的内存和CPU的资源组合。

【问题】container容器是有几组参数进行CPU和内存配置。

2.主从架构

resourcemanager  rm

nodemanager      nm

【经典面试题】生产上的reduce task任务可能等到所有的map task跑完,才开始计算;

也有可能map task才跑60%,就开始计算。 主要看计算逻辑的嵌套。

3.mapreduce on yarn架构图(一主两从)

mapreduce on yarn架构图(一主两从)

【面试题】mapreduce on yarn架构流程:

①client向rm提交应用程序(作业),其中包含application master和启动命令等。

②applications manager会给这个作业,分配第一个container容器,来运行applicationmaster。

③application master就向applications manager注册,就可以在web界面查看作业的运行状态。

④application master采取轮询的方式通过【RPC】协议向resource scheduler去申请和领取资源

(哪台DN机器,领取多少内存 CPU)

⑤一旦application master拿到资源列表,就和对应的DN机器进行通信,要求启动container来运行task任务。

⑥nm为task任务设置好运行的环境(container容器),将任务启动命令写在脚本里,通过脚本启动task。

⑦然后各个task任务,通过【rpc】协议向application master主程序汇报进度和状态,以此可以随时掌握task的运行状态。

当task任务运行失败,也会重启container任务。

⑧当所有的任务完成,application master向applications manager申请注销和关闭作业。

这个时候在web可以看任务是否完成,成功还是失败。

总结:

启动主程序,领取资源;①-④

运行任务,直到完成;  ⑤-⑧

已同步至:Hadoop入门四(3.2.2版本)_comer_liu的博客-CSDN博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352

推荐阅读更多精彩内容