套裝二《知識點匯總》

一、flume中的事务

ISR副本同步机制(副本同步队列)

二、shell 指令

2.1、crontab (定时器)

*  *  *  *  *
分 时 日 月 周 
crontab文件的一些例子: 
30 21 * * * ./sqoop_export.sh
上面的例子表示每晚的21:30重启apache。 
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 
上面的例子表示每月11022日的4 : 45重启apache。 
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 
上面的例子表示每周六、周日的1 : 10重启apache。 
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart 
上面的例子表示在每天18 : 0023 : 00之间每隔30分钟重启apache。 
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart 
上面的例子表示每星期六的11 : 00 pm重启apache。 
* */1 * * * /usr/local/etc/rc.d/lighttpd restart 
每一小时重启apache 
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 
晚上11点到早上7点之间,每隔一小时重启apache 

2.2、AWK(按域筛选)

awk 按指定的域分隔符划分域,填充域,$0则表示所有域, $1表示第一个域,$n表示第n个域。默认域分隔符是"空白键""[tab]键"
1、仅取出前五行
[root@www ~]# last -n 5 
root     pts/1   192.168.1.100  Tue Feb 10 11:21   still logged in
root     pts/1   192.168.1.100  Tue Feb 10 00:46 - 02:28  (01:41)
root     pts/1   192.168.1.100  Mon Feb  9 11:41 - 18:30  (06:48)
dmtsai   pts/1   192.168.1.100  Mon Feb  9 11:41 - 11:41  (00:00)
root     tty1      :0           Fri Sep  5 14:09 - 14:10  (00:01)
如果只是显示最近登录的5个帐号   在shell端登录的是展示ip地址,在虚拟机登录的是则展示为 :0

2、仅输出第一列
#last -n 5 | awk  '{print $1}'
root
root
root
dmtsai
root
5后面的竖杠(|)是管道符的含义

3、awk默认是以 "空白键""[tab]键" 分割的,但是如果有特殊的话,则用 -F 指定分隔符
[root@node132 /root/data/logs]#cat /etc/passwd   *****原数据
xulei:x:1001:1001::/home/xulei:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
k:x:1008:1001::/home/k:/bin/bash          
[root@node132 /root/data/logs]#cat /etc/passwd | awk -F ":" '{print $1“,”$7}'   ****筛选之后以逗号隔开的
xulei,/bin/bash
mysql,/bin/false
k,/bin/bash

2.3、sed

d 删除(delete)
i 添加(insert)
s 打印指定内容

2.4、 sort(默认按照字典顺序排序)

/etc/passwd 内容是以 : 来分隔的,我想以第三栏来排序,该如何
[root@www ~]# cat /etc/passwd | sort -t ':' -k 3    ****** awk 是以-F分割$来选择域;sort是以-t 分割 -k来选择域 
root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
默认是以字符串来排序的,如果想要使用数字排序:

三、hadoop性能调优

3.1、使用LZO压缩(Use LZO Compression)

  当一个job需要输出大量数据时,应用LZO压缩可以提高输出端的输出性能。这是因为默认情况下每个文件的输出都会保存3个幅本,1GB的输出文件你将要保存3GB的磁盘数据,当采用压缩后当然更能节省空间并提高性能。 

为了使LZO压缩有效,请设置参数mapred.compress.map.output值为true。

3.2、Namenode单点故障

配置HAhadoop

3.3、HDFS小文件问题

解决方法

3.4、外部文件引入(分布式缓存)

有些应用程序要使用外部文件,如字典,配置文件等,这些文件需要在所有task之间共享,可以放到分布式缓存DistributedCache中(或直接采用-files选项,机制相同)。

3.5、设置NameNode有一个工作线程池

编辑 hdfs-site.xml
dfs.namenode.handler.count=20 * log2(Cluster Size),比如集群规模为8台时,此参数设置为60
作用:
用来处理不同DataNode的并发心跳以及客户端并发的元数据操作

四、HDFS的工作机制和原理

  1.    HDFS集群分为两大角色:NameNode、DataNode  (Secondary Namenode)
    
  2.    NameNode负责管理整个文件系统的元数据
    
  3.    DataNode 负责管理用户的文件数据块
    
  4.    文件会按照固定的大小(blocksize)切成若干块后分布式存储在若干台datanode上
    
  5.    每一个文件块可以有多个副本,并存放在不同的datanode上
    
  6.    Datanode会定期向Namenode汇报自身所保存的文件block信息,而namenode则会负责保持文件的副本数量
    
  7.    HDFS的内部工作机制对客户端保持透明,客户端请求访问HDFS都是通过向namenode申请来进行
    

五、MapReducer运行原理

原理

Kafka的offset提交方式

flume读取kakfa的不同topic然后存到hdfs的不同目录下

https://blog.csdn.net/weixin_38963816/article/details/80358273?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-12&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-12

你可能感兴趣的:(#,新增知识,大数据)