熟练掌握HDFS的Shell访问
2016-01-06 23:21
806 查看
1单个HDFS集群的Shell访问操作
我们使用Xshell,先开机启动Hadoo集群,查看下是否完全开启。sbin/start-all.sh
ips
用shell来操作HDFS,格式总的来说是,hadoop fs ******
1、先总的来查看,可以看出,跟Linux的命令使用差不多。
hadoop fs -help
2、查看下根目录
HDFS 上的文件目录结构类似 Linux,根目录使用 "/" 表示。
hadoop fs -ls /
由此可以看出,则包括/dajiangtai ,/anagram,/tmp,/salary,/weather。
即,这些总的目录就是前面一路所学下来的。
3、查看下/dajiangtai目录。
hadoop fs -ls /dajiangtai
4、创建文件夹,在/dajiangtai下创建子目录tmp
hadoop fs -mkdir /dajiangtai/tmp
hadoop fs -ls /dajiangtai
5 、将本地下载好的weibo.txt(前提要是UTF-8格式)通过rz命令上传进来。
ls
rz
ls
6 、我们需将weibo.txt上传至/dajiangtai/tmp下。
hadoop fs -put weibo.txt /dajiangtai/tmp 将weibo.txt上传至/dajiangtai/tmp下
hadoop fs -ls /dajiangtai/tmp/ 查看/dajiangtai/tmp
即,成功。
注意:还可以使用 -copyFromLocal 参数。
hadoop fs -copyFromLocal weibo.txt /dajiangtai/tmp
hadoop fs -ls /dajiangtai/tmp/
7 、查看weibo.txt里的内容。
hadoop fs -text /dajiangtai/tmp/weibo.txt
还可以用 -cat、-tail 参数查看文件的内容。但是对于压缩的结果文件只能用 -text 参数来查看,否则是乱码。如下是没有经过压缩的直接上传的weibo.txt。
在这里,若是hadoop fs –cat /dajiangtai/tmp/weibo.txt,也是出现如下情况。则说明是格式转码的问题。
详细见 文档格式转换为UTF-8的博客。
hadoop fs –cat /dajiangtai/tmp/weibo.txt
或 hadoop fs -text /dajiangtai/tmp/weibo.txt
或 hadoop fs -cat /dajiangtai/tmp/weibo.txt
8 、把 weibo.txt 文件复制到本地。如复制到localdata文件夹里。
ls
mkdir localdata
cd localdata/
ls
9、为此,将weibo.txt复制到当前目录。即/usr/java/hadoop/localdata/
hadoop fs –get /dajiangtai/tmp/weibo.txt . 注意,这点也可以省略。
或者
hadoop fs -copyToLocal /dajiangtai/tmp/weibo.txt
ls
10、将weibo.txt复制到另一个目录下,即,创建/dajiangtai/test
hadoop fs -ls /dajiangtai
hadoop fs -mkdir /dajiangtai/test
hadoop fs ls /dajiangtai
则,创建成功!
11、将/dajiangtai/tmp/下的weibo.txt,复制到/dajiangtai/test下。
hadoop fs -cp /dajiangtai/tmp/weibo.txt /dajiangtai/test
hadoop fs -ls /dajiangtai/test
12、删除/dajiangtai/tmp/下的weibo.txt文件
hadoop fs -rm /dajiangtai/tmp/weibo.txt 删除文件是 -rm
hadoop fs -ls /dajiangtai/tmp
13、删除/dajiangtai/下的tmp目录
hadopp fs -rm -r /dajiangtai/tmp 注意空格,-rm -r 删除文件是 -rm -r
hadoop fs -ls /dajiangtai
至此,单个HDFS集群的操作,就这么多。
2 多个HDFS集群的Shell访问操作
需要再新建一个。此刻,同样,先安装,再搭建网络,再搭建Hadoop伪分布集群,为dajiangtai1。IP地址地址是192.18.80.129。即前面的那个是dajiangtai。192.168.80.128
详细,见安装dajiangtai1。
在这里,我遇到了一个问题,当我再次安装一个Linux系统时,竟然查看得到的IP地址依然是192.168.80.128。我反复试了好几遍,最后无奈之下,只能用手动自主来分配其IP地址,那么,困惑就由此产生了,这是为什么会导致这样的原因出现的呢??????
上面是单线程访问的 HDFS 访问模型,但是多个Hadoop 集群需要复制数据该怎么办呢?幸运的是,Hadoop 有一个有用的distcp分布式复制程序,该程序是MapReduce作业来实现的,它是通过集群中并行运行的map来完成集群之间大量数据的复制。 下面我们将介绍 distcp 在不同场景下该如何使用。
现在,打开另一个hadoop集群。如下
192.168.80.128的djt002
192.168.80.129的djt001
ls
sbin/start-all.sh
ls
sbin/start-all.sh
1、 查看下djt001的hadoop集群的文件目录
hadoop fs -ls /
hadoop fs -ls /
2、 创建djt001的hadoop集群的data目录
hadoop fs -mkidr /data 创建HDFS根目录下的data目录
hadoop fs -ls / 查看
3、 现在将djt002集群下的/dajiangtai/test/weibo.txt复制到djt001集群下的/data下,在djt001集群下输入
hadoop distcp hdfs://djt002:9000/dajiangtai/test/weibo.txt /data
第一个路径必须是绝对路径,hdfs://djt002:9000/dajiangtai/test/weibo.txt
第二个路径是相对路径,/data
由上可知,这一过程是由mapreduce作业完成的。
4、 在djt001集群下查看复制后的结果,并打开查看weibo.txt的内容
hadoop fs -ls /data
hadoop fs -text /data/weibo.txt
可以得出,跟djt002集群的源文件/dajiangtai/test/weibo.txt的一致,即说明djt002集群和djt001集群成功。
5、 如何在djt002集群下的weibo.txt追加新的内容?
hadoop fs -appendToFile - hdfs://djt002:9000/dajiangtai/test/weibo.txt
疑问:这里,步骤是一样的,但是视频里没有我这样的错误,内容是可以追加进去,目的是达到了,但是中间有报错误。
随便输入些什么,这里,我故意输入好几次的dajiangtai,其中,因为手误,但不能返回删除,故出现上图的^H,^C这样的符号。。
1、 那么,当在djt002集群下对weibo.txt追加了新的内容进去,那么如何在远程对djt001实行更新weibo.txt呢??
hadoop distcp -update hdfs://djt002:9000/dajiangtai/weibo.txt /data/weibo.txt
或者,
hadoop distcp overwrite hdfs://djt002:9000/dajiangtai/weibo.txt /data/weibo.txt
3 最后,作为管理员还需要掌握以下命令:
1、 查看正在运行的Job。hadoop job -list
由上可见,此刻是没有正在运行的Job。
2、 关闭正在运行的Job。
hadoop job -kill Job号
如 hadoop job -kill job_1432108212572_0001
3、 检查HDFS块状态,查看是否损坏。
hadoop fsck / 这里的/是HDFS的根目录,类似于Linux的根目录
4、 检查HDFS快状态,并删除损坏的快。
hadoop fsck / -delete
5、 检查HDFS状态,包括DataNode信息
hadoop dfsadmin -report
6、 Hadoop进入安全模式
hadoop dfsadmin –safemode enter
7、 Hadoop进入安全模式
hadoop dfsadmin –safemode leave
8、 平衡集群中的文件
cd /usr/java/ha doop
sbin/start-balancer.sh
相关文章推荐
- inux 下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 文件的作用
- 一句话木马上传常见的几种方法
- (2-1)HDFS( 分布式文件系统和hdfs shell)
- chapte13:学习shell scripts之(4)循环
- 16.shell脚本编程(1)
- 字符展开详解
- nohup-真正的Shell后台运行
- 一个ShellExecute的超全说明(www.phidels.com这个网站很多内容)
- 【2-1】HDFS简介与HDFS Shell
- shell三剑客之一AWK的使用
- 如何用shell脚本编译java工程
- 如何用shell脚本编译java工程
- Linux下shell的学习--之杂七杂八
- Xshell无法连接VMware中的Linux Mint解决方法
- shell中读取配置文件之eval
- LINUX 命令行变成-bash-4.2$
- awk手册
- 有奖试读—Windows PowerShell实战指南(第2版)
- 有奖试读—Windows PowerShell实战指南(第2版)
- 有奖试读—Windows PowerShell实战指南(第2版)