Hadoop开发常用Linux命令整理

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop开发常用Linux命令整理相关的知识,希望对你有一定的参考价值。

  1. 更改文件夹所属用户:sudo chown zs:zs module/ software/
  2. 查看安装的Java版本:rpm -qa | grep -i java
  3. 删除已安装的Java:rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
  4. 切换root用户:su root
  5. 修改主机IP:vim /etc/sysconfig/network-scripts/ifcfg-ens33
  6. 修改主机名称:vim /etc/hostname
  7. 查看主机名称:hostname
  8. 查看IP地址:ifconfig
  9. 解压jdk-指定目录:tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
  10. 返回上层目录:cd ..
  11. 修改环境变量:sudo vim /etc/profile
  12. 创建新的环境变量:cd /etc/profile.d -> sudo vim my_env.sh
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
  1. 重新生效配置文件:source /etc/profile
  2. 查看数据:cat
  3. hadoop统计词频:bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput/ ./wcoutput
/mapreduce/hadoop-mapreduce-examples-3.1.3.jar:使用mapreduce下的jar包-hadoop-mapreduce-examples-3.1.3.jar
wordcount:使用wordcount方法
wcinput/:数据来源输入路径
./wcoutput:输出路径不能存在)
  1. 集群数据传输:scp -r jdk1.8.0_212/ zs@hadoop103:/opt/module/
  2. 集群中间件互传:scp -r zs@hadoop104:/opt/module/* zs@hadoop102:/opt/module/(站在103从104传输文件到102)

第一次同步使用scp,之后同步差异文件使用rsync

  1. 集群群发脚本:xsync a.txt
  2. 显示环境变量:echo $PATH
  3. 提升文件的权限:chmod 777 xsync
  4. 集群分发文件:xync bin/
  5. 分发环境变量:xsync /etc/profile.d/my_env.sh
  6. 查看所有的隐藏文件:ls -al
  7. SSH免密登录:ssh-keygen -t rsa(生成密钥-私钥公钥)
[zs@hadoop102 .ssh]$ ll
total 12
-rw-------. 1 zs zs 1679 Sep  4 13:38 id_rsa
-rw-r--r--. 1 zs zs  394 Sep  4 13:38 id_rsa.pub
-rw-r--r--. 1 zs zs  186 Sep  4 13:35 known_hosts

拷贝公钥至指定服务器:ssh-copy-id hadoop103

  1. 格式化namenode: hdfs namenode -format
  2. 启动hadoop:
    [zs@hadoop102 hadoop-3.1.3]$ cd sbin/ [zs@hadoop102 sbin]$ start-dfs.sh
  3. 显示当前运行的节点:jps
  4. 启动资源管理器ResourceManager(hadoop103):
    [zs@hadoop103 hadoop-3.1.3]$ cd sbin/ [zs@hadoop103 sbin]$ start-yarn.sh
  5. 创建文件夹:hadoop fs -mkdir /wcinput
  6. 上传文件:hadoop fs -put wcinput/word.txt /wcinput
  7. 重定向:cat blk_1073741826 >> tmp.tar.gz
  8. 解压:tar -zxvf tmp.tar.gz
  9. 删除:rm -rf jdk1.8.0_212/ tem.tar.gz
  10. Yarn:是资源的调度者
  11. 上传的Yarn:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wcinput /wcoutput
  12. 杀死集群进程:kill -9 6228
  13. 停止集群:sbin/stop-dfs.sh
  14. 集群分发文件:xsync mapred-site.xml
  15. 启动历史服务器:mapred --daemon start historyserver
  16. 停止历史服务器:mapred --daemon stop historyserver
  17. Yarn终止:sbin/stop-yarn.sh
  18. Yarn开启: sbin/start-yarn.sh
  19. 启动namenode:hdfs --daemon start datanode
  20. yarn启动nodemanager:yarn --daemon start nodemanager
  21. 查看外网时间:systemctl status ntpd
  22. 开启外网:systemctl start ntpd
  23. 查看时间:date
  24. 停止更新时间:sudo systemctl stop ntpd
  25. 设置时间:sudo date -s "2022-01-29 11:11:11"

集群崩溃处理办法

  1. 杀死进程(停止集群)
sbin/stop-dfs.sh
  1. 删除每个集群上的data/logs
rm -rf data/ logs/
  1. 格式化namenode节点
hdfs namenode -format
  1. 启动集群
sbin/start-dfs.sh

HDFS_Shell命令

  • hadoop fs or hdfs dfs两个完全一样
  • 启动Hadoop集群:
sbin/start-dfs.sh 
sbin/start-yarn.sh 
  • 查看某一命令的帮助:hadoop fs -help rm

  • 创建文件夹:hadoop fs -mkdir /sanguo

  • 上传到HDFS:

hadoop fs -moveFromLocal ./shuguo.txt /sanguo
hadoop fs -copyFromLocal weiguo.txt /sanguo
hadoop fs -put wuguo.txt  /sanguo
  • 追加数据至文末
hadoop fs -appendToFile liubei.txt /sanguo/shuguo.txt
  • 下载文件
 hadoop fs -copyToLocal /sanguo/shuguo.txt ./
 hadoop fs -get /sanguo/shuguo.txt ./shuguo2.txt
  • 修改文件所属用户
hadoop fs -chown zs:zs /sanguo/shuguo.txt
  • 拷贝文件
hadoop fs -cp /sanguo/shuguo.txt /jinguo
  • 剪切文件
hadoop fs -mv /sanguo/weiguo.txt /jinguo
  • 查看文末1kb数据
hadoop fs -tail /jinguo/shuguo.txt
  • 删除数据
hadoop fs -rm /sanguo/shuguo.txt
hadoop fs -rm -r /sanguo
  • 显示文件夹详细信息
hadoop fs -du -s -h /jinguo
hadoop fs -du -h /jinguo
13  39  /jinguo/shuguo.txt
7   21  /jinguo/weiguo.txt
6   18  /jinguo/wuguo.txt
  • 设置副本
hadoop fs -setrep 10 /jinguo/shuguo.txt

最多设置副本与集群多少有关,若超过则记录,等集群扩充后,会自动拷贝副本,具体存在哪个服务器,根据距离最近原则分配。

  • hadoop-3.1.3/data/dfs/name/current:存放fsimage/edits数据信息
  • 下载文件到Windows本地:sz edits.xml

Maven

  • Junit:单元测试
  • org.slf4j:打印日志,控制日志级别

Shuffle机制

  • 进入缓冲区后,默认快速排序,按照key值索引字典排序

Hadoop压缩

  • hadoop checknative:查看支持的压缩方式
  • hdfs dfsadmin -report:显示集群运行信息

Hadoop生产调优手册

  • 删除:hadoop fs -rm /a.txt
  • 查看堆内存:jmap -heap 进程id
  • 100Mbps单位是bit;100M/s单位是byte;100Mbps/8=12.5M/s
  • sbin/stop-yarn.sh
  • 删除data下的lo:rm -rf data/ lo
  • 启动集群:sbin/start-dfs.sh
  • 查看版本:cat version
  • 集群分发:xsync hdfs-site.xml
  • 在hadoop安装目录下上传文件:hadoop fs -put libei.txt /

配置白名单

cd etc/hadoop
vim whitelist
放入hadoop102 hadoop103
# 创建黑名单
touch blacklist
vim hdfs-site.xml
添加配置信息
# 分发
xsync whitelist blacklist

第一次添加白名单必须重启集群,不是第一次,只需要刷新NameNode节点即可。

ResourceManager是集群的老大

服役新服务器

  • 添加新的节点,修改网络配置:vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改IPADDR=192.168.10.105
修改主机名称:vim /etc/hostname

  • ifconfig``hostname
  • 拷贝文件:scp -r module/* zs@hadoop105:/opt/module/
  • 拷贝环境变量:sudo scp /etc/profile.d/my_env.sh root@hadoop105:/etc/profile.d/
  • 在hadoop105中source /etc/profile,打印java看是否成功
  • 在hadoop102中
cd .ssh/
ssh-copy-id hadoop105 
  • 在hadoop103中
cd .ssh/
ssh-copy-id hadoop105 
  • 在hadoop105中进入hadoop安装路径,必须删除logs文件
rm -rf data/ logs/

启动datanode:

hdfs --daemon start datanode
yarn --daemon start nodemanager

在web端并未显示hadoop105,则需要修改白名单,分发,之后在hadoop102刷新:

hdfs dfsadmin -refreshNodes
  • 在hadoop105上,上传文件测试:
hadoop fs -put wc.jar /

服务器间数据均衡

执行命令:sbin/start-balancer.sh -threshold 10,10代表的是集群中各个节点的磁盘空间利用率相差不超过10%。

黑名单退役服务器

在hadoop102中

vim balcklist
添加hadoop105

分发:

xsync blacklist

hadoop105上也需要处理:

cd etc/hadoop
vim blacklist
  • 进行刷新操作
cd sbin
hdfs dfsadmin -refreshNodes

Decommissioned

在hadoop105中停掉节点

cd etc/hadoop
hdfs -daemon stop datanode
yarn --daemon stop nodemanager

修改jpsall脚本:

vim jpsall
cd etc/hadoop
vim workers
xsync workers
rm -rf data/ logs/

格式化:

hdfs namenode -format

纠删码

  • 查看命令:hdfs ec

删除命令:

rm -rf data/ logs/

Hadoop源码分析的章节,我跳过了大概2个小时的课程,整体感觉只是了解,学的并不好。9月这么快过完了,这个月就学一丁点东西,需要反思 消化 吸收。

加油!

感谢!

努力!

以上是关于Hadoop开发常用Linux命令整理的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop高可用HA 开发常用Linux命令

Hadoop高可用HA 开发常用Linux命令

Linux上常用命令整理—— cat

[Linux嵌入式开发]Linux常用命令

[Linux嵌入式开发]Linux常用命令

开发常用Linux指令整理