Hadoop开发常用Linux命令整理
Posted ZSYL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop开发常用Linux命令整理相关的知识,希望对你有一定的参考价值。
- 更改文件夹所属用户:
sudo chown zs:zs module/ software/
- 查看安装的Java版本:
rpm -qa | grep -i java
- 删除已安装的Java:
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
- 切换root用户:
su root
- 修改主机IP:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
- 修改主机名称:
vim /etc/hostname
- 查看主机名称:
hostname
- 查看IP地址:
ifconfig
- 解压jdk-指定目录:
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
- 返回上层目录:
cd ..
- 修改环境变量:
sudo vim /etc/profile
- 创建新的环境变量:
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
- 重新生效配置文件:
source /etc/profile
- 查看数据:
cat
- 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:输出路径不能存在)
- 集群数据传输:
scp -r jdk1.8.0_212/ zs@hadoop103:/opt/module/
- 集群中间件互传:
scp -r zs@hadoop104:/opt/module/* zs@hadoop102:/opt/module/
(站在103从104传输文件到102)
第一次同步使用scp,之后同步差异文件使用rsync
- 集群群发脚本:
xsync a.txt
- 显示环境变量:
echo $PATH
- 提升文件的权限:
chmod 777 xsync
- 集群分发文件:
xync bin/
- 分发环境变量:
xsync /etc/profile.d/my_env.sh
- 查看所有的隐藏文件:
ls -al
- 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
- 格式化namenode:
hdfs namenode -format
- 启动hadoop:
[zs@hadoop102 hadoop-3.1.3]$ cd sbin/ [zs@hadoop102 sbin]$ start-dfs.sh
- 显示当前运行的节点:
jps
- 启动资源管理器ResourceManager(hadoop103):
[zs@hadoop103 hadoop-3.1.3]$ cd sbin/ [zs@hadoop103 sbin]$ start-yarn.sh
- 创建文件夹:
hadoop fs -mkdir /wcinput
- 上传文件:
hadoop fs -put wcinput/word.txt /wcinput
- 重定向:
cat blk_1073741826 >> tmp.tar.gz
- 解压:
tar -zxvf tmp.tar.gz
- 删除:
rm -rf jdk1.8.0_212/ tem.tar.gz
- Yarn:是资源的调度者
- 上传的Yarn:
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wcinput /wcoutput
- 杀死集群进程:
kill -9 6228
- 停止集群:
sbin/stop-dfs.sh
- 集群分发文件:
xsync mapred-site.xml
- 启动历史服务器:
mapred --daemon start historyserver
- 停止历史服务器:
mapred --daemon stop historyserver
- Yarn终止:
sbin/stop-yarn.sh
- Yarn开启:
sbin/start-yarn.sh
- 启动namenode:
hdfs --daemon start datanode
- yarn启动nodemanager:
yarn --daemon start nodemanager
- 查看外网时间:
systemctl status ntpd
- 开启外网:
systemctl start ntpd
- 查看时间:
date
- 停止更新时间:
sudo systemctl stop ntpd
- 设置时间:
sudo date -s "2022-01-29 11:11:11"
集群崩溃处理办法
- 杀死进程(停止集群)
sbin/stop-dfs.sh
- 删除每个集群上的
data/logs
rm -rf data/ logs/
- 格式化namenode节点
hdfs namenode -format
- 启动集群
sbin/start-dfs.sh
HDFS_Shell命令
hadoop fs
orhdfs 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命令整理的主要内容,如果未能解决你的问题,请参考以下文章