hadoop记录-hadoop常用

时间:2021-11-07 16:30:46

1.hdfs目录配额

#设置配额目录
hdfs dfsadmin -setSpaceQuota 10T /user/hive/warehouser/tmp
查看配额目录信息
hdfs dfs -count -q -h /user/hive/warehouser/tmp
#清除配额目录信息
hdfs dfsadmin -clrSpaceQuota /user/hive/warehouser/tmp

2.均衡

$ hdfs dfsadmin -setBalancerBandwidth 1073741824
$ nohup hdfs balancer \
-Ddfs.datanode.balance.max.concurrent.moves = 10 \
-Ddfs.balancer.dispatcherThreads = 1024 \
-Ddfs.balance.bandwidthPerSec = 1073741824

#此配置用于限制允许Datanode平衡群集的最大并发块移动数
dfs.datanode.balance.max.concurrent.moves, default is 5
#带宽
dfs.datanode.balance.bandwidthPerSec, default is 1048576 (=1MB/s)
dfsadmin -setBalancerBandwidth <bandwidth in bytes per second>
#mover线程数
dfs.balancer.moverThreads, default is 1000
#datanode传输的最大线程数
dfs.datanode.max.transfer.threads
修改dfs.datanode.max.transfer.threads=4096 (如果运行HBase的话建议为16384),
指定用于在DataNode间传输block数据的最大线程数,老版本的对应参数为dfs.datanode.max.xcievers。

#平衡策略,默认为datanode
[-policy <policy>]
blockpool: Cluster is balanced if each pool in each node is balanced.
datanode: Cluster is balanced if each datanode is balanced.
#阈值
[-threshold <threshold>] [1.0, 100.0]
#包含列表
[-include [-f <hosts-file> | <comma-separated list of hosts>]]
#排除列表
[-exclude [-f <hosts-file> | <comma-separated list of hosts>]]
#最大移动数据大小
dfs.balancer.max-size-to-move, default is 10737418240 (=10GB)
#####################################################

问题背景与现象
当HDFS集群各个DataNode存储的数据不均衡时,需要使用hdfs balance功能,调整相关参数可以提升balance性能。
操作步骤
修改如下参数:
dfs.datanode.balance.bandwidthPerSec =209715200
说明:
该参数限定每个DataNode用来平衡数据时,占用带宽的上限;
这个参数的调整要看组网情况,如果集群负载较高,可以改为20971520(200MB),如果集群空闲,可以改为1073741824 (1G)。
dfs.datanode.max.transfer.threads = 8192
dfs.namenode.replication.max-streams=20
dfs.datanode.balance.max.concurrent.moves=30

3.find

find $dir-mtime +22 -name "*.dat" -exec rm -f {} \;

find $dir -type f -mtime +22 -exec ls -l {} \; | more

find $dir -type f -mtime +7 -print | xargs rm -rf

find ${dir3} -mtime +7 -name "hive.log.*" -exec rm -rf {} \;

4.hive

beeline -u " jdbc:hive2://xxx:10000" -n hive -p hive
set hive.execution.engine=tez;

nohup hive --service hiveserver2 &
nohup hive --service metastore &

hive -S -e "select * from xxx" --S静音模式不打印MR2的进度信息 e加载hql查询语句
hive -f test.hql --加载一个hql文件
source test.hql

for f in 'rpm -qa | grep xxx';do rpm -e --nodeps ${f} done;

磁盘空间满了,kill超时太长的job

cd hive/yarn/local1/usercache/hive/appcache
su yarn
yarn application -kill job名

5.修改sudo

vim /etc/sudoers.d/xxx

xxx ALL=(ALL) ALL
xxx  ALL=(ALL) NOPASSWD: ALL

Defaults !env_reset

6.for

for i in `ps -aux | grep -i "xxx" | grep -i "2018" | awk '{print $2}'`; do kill -9 $i; done