目录
一,报错的解决
1,进入目录
2,删除数据
3,关闭集群
4,格式化元数据
5,启动集群
二,Hadoop常用shell操作
1,命令的帮助
2,显示目录
3,创建目录
4,移动
5,追加内容
6,查看文件
7,权限
8,复制
9,下载
10,hdfs内复制
11,hdfs内移动
12,下载
13,合并下载
14,上传
15,删除
16,统计大小
17,设置备份
一,报错的解决
hadoop集群报错如何解决
我们搭建的Hadoop集群再启动,重启,以及运维的时候经常报各种各样的错误,有很多我们也看不明白,网上也很难找到相关的文章,即使找到也未必适用,所有就给大家总结了一个算是比较常用,也非常有用的一种方法,当我们的集群报错看不懂时,可以做如下操作
注意三台节点都是要同步操作的,也可以现在master节点做完之后,再重新分发到剩余两个节点,这是至关重要的一步。
1,进入目录
进入到hadoop和java的安装目录下ll一下
一般情况下这两个目录的权限都不是所有用户均可读写执行,我们用root用户把他改成777。
cd /opt/local/src/ ll chmod 777 -R /opt/local/src/
2,删除数据
进入hadoop安装目录中,这里用哪个用户来操作都无所谓了,因为上边权限都是777,把目录下的dfs和tmp都删掉,然后只重新创建tmp目录
cd /opt/local/src/hadoop/ ls rm -rf dfs rm -rf tmp mkdir tmp
一定要记得这一步是三个节点要同步,记得scp过去。
3,关闭集群
关闭集群所有进程,一定要看看是否三个节点都没有进程启动了
stop-all.sh
4,格式化元数据
一定要看一下三个节点的status是不是都为0
hdfs namenode -format
5,启动集群
最好一个一个的启动,尽量不要用start
start-dfs.sh start-yarn.sh
再输入jps查看三个节点进程,
自此错误修改完毕,还有一点就是,每次关闭集群进程的时候建议先stop-all.sh,确保每个节点的所有进程都关闭。
二,Hadoop常用shell操作
文件目录的增删改查
1,命令的帮助
hadoop fs -help 命令:输出这个命令参数
hadoop fs -help rm
2,显示目录
hadoop fs -ls 路径: 显示目录信息
hadoop fs -ls /
3,创建目录
hadoop fs -mkdir 目录名:在hdfs上创建目录
hadoop fs -mkdir -p /sanguo/shuguo
操作并查看:
4,移动
hadoop fs -moveFromLocal 本地目录 目的目录 :从本地剪切粘贴到hdfs
touch kongming.txt hadoop fs -moveFromLocal ./kongming.txt /sanguo/shuguo
操作并查看:
5,追加内容
hadoop fs -appendToFile 要追加的文件 追加到哪个文件 :追加一个文件到已经存在的文件末尾
touch liubei.txt vi liubei.txt
输入
san gu mao lu
也可以用echo简答快捷,结果都一样
echo "san gu mao lu " > kongming.txt
hadoop fs -appendToFile liubei.txt /sanguo/shuguo/kongming.txt
6,查看文件
hadoop fs -cat 要查看的文件路径:显示文件内容
hadoop fs -cat /sanguo/shuguo/kongming.txt
hadoop fs -tail 要查看的文件路径:显示一个文件的末尾
hadoop fs -tail /sanguo/shuguo/kongming.txt
7,权限
hadoop fs -chgrp 、-chmod、-chown:linux文件系统中的用法一样,修改文件所属权限
hadoop fs -chmod 666 /sanguo/shuguo/kongming.txt hadoop fs -chown hadoop:hadoop /sanguo/shuguo/kongming.txt
8,复制
hadoop fs -copyFromLocal 本地文件:从本地文件系统中拷贝文件到hdfs路径去
hadoop fs -copyFromLocal README.txt /
操作并查看:
9,下载
hadoop fs -copyToLocal:从hdfs拷贝到本地
hadoop fs -copyToLocal /sanguo/shuguo/kongming.txt ./
10,hdfs内复制
hadoop fs -cp 源地址 目标地址 :从hdfs的一个路径拷贝到hdfs的另一个路径
hadoop fs -cp /sanguo/shuguo/kongming.txt /zhuge.txt
操作并查看:
11,hdfs内移动
hadoop fs -mv 源地址 目的地址:在hdfs目录中移动文件
hadoop fs -mv /zhuge.txt /sanguo/shuguo/
操作并查看:
12,下载
hadoop fs -get hdfs内路径 本地路径:等同于copyToLocal,就是从hdfs下载文件到本地
hadoop fs -get /sanguo/shuguo/kongming.txt ./
13,合并下载
hadoop fs -getmerge :合并下载多个文件,比如hdfs的目录 /aaa/下有多个文件:log.1, log.2,log.3,...
hadoop fs -getmerge /sanguo/shuguo/* ./jpz
14,上传
hadoop fs -put:等同于copyFromLocal
hadoop fs -put ./jpz.txt /sanguo/shuguo/
操作并查看:
15,删除
hadoop fs -rm :删除文件或文件夹
hadoop fs -rm /sanguo/shuguo/*
操作并查看:
hadoop fs -rmdir:删除空目录
hadoop fs -rmdir /sanguo/shuguo
操作并查看:
删除非空目录
hadoop fs -rmr -skipTrash /sanguo
操作并查看:
16,统计大小
hadoop fs -du:统计文件夹的大小信息
hadoop fs -du -s -h /jpz/txt
17,设置备份
hadoop fs -setrep:设置hdfs中文件的副本数量
hadoop fs -setrep 10 /jpz.txt
登录网页查看数量
这里设置的副本数只是记录在NameNode的元数据中,是否真的会有这么多副本,还得看DataNode的数量。因为目前只有3台设备,最多也就3个副本,只有节点数的增加到10台时,副本数才能达到10。



