设为首页 加入收藏

TOP

hadoop shell命令行基础
2019-03-14 12:37:48 】 浏览:66
Tags:hadoop shell 命令 基础
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hll19950830/article/details/79810540

1. 查看hdfs根目录下的文件:hadoop fs -ls hdfs://master:9000/


可以简写为以下的形式:hadoop fs -ls /


或者这么写:hdfs dfs -ls /


2. 创建文件夹:hadoop fs -mkdir /test


3. 在指定文件夹中创建空文件:hadoop fs -touchz /test/zs.txt


olve/70" style="text-align:left;" alt="">

文件为空时 再创建一个同名的文件不会报错

4. 上传本地文件到HDFS(将Linux系统下当前目录下的a.php文件上传到根目录下):hadoop fs -put ./a.php /test


文件存在时 如果再上传相同的文件 就会报错


选项-f:如果文件存在 则再上传相同的文件直接覆盖之前的文件


5. 显示文件内容:hadoop fs -cat /test/a.php


6. 从hdfs下载文件到本地:hadoop fs -get /test/a.php


没有覆盖本地文件的选项 如果本地存在相同文件 则会报错


7. 将本地文件移动到hdfs中(与put功能类似 不同之处在于 moveFromLocal会删除本地的文件 而put则不会)

hadoop fs -moveFromLocal ./b.php /test


8. 将hdfs中的文件移动到本地(moveToLocal与get功能类似 不同之处在于 moveToLocal会删除hdfs中的文件 而get则不会)

9. 将本地文件拷贝到hdfs中(copyFromLocal与put功能相同):hadoop fs -copyFromLocal ./c.php /test


10. 将hdfs中的文件拷贝到到本地(copyToLocal与get功能相同)

11. 将本地的文件追加到hdfs中已经存在的文件末尾:hdfs fs -appendToFile ./test.php /test/a.php


12. 查看文件末尾:hadoop fs -tail /test/a.php


13. 以字符形式显示文件内容:hadoop fs -text /test/a.php(功能类似于cat 区别在于如果不是字符文件 则会显示乱码)


14. 修改文件权限:hadoop fs -chmod 777 /test/a.php


15. 修改文件用户和组:hadoop fs -chown 777 /test/a.php(hadoop没有用户的概念 它是一种弱的权限控制 并不会检验用户是否存在 即使该用户和组不存在也可以设置成功 你指定它的用户和组是谁就是谁)


16. 将文件从hdfs的一个路径拷贝到另外一个路径:hadoop fs -cp /test/a.php /


拷贝相同的文件到同一个目录中会报错


-f参数会直接忽视错误 不管文件是否存在 强行将文件拷贝过去


17. 将文件从hdfs的一个路径拷贝到另外一个路径:hadoop fs -mv /test/c.php /


18. 将多个文件从hdfs上合并下载到本地:hadoop fs -getmerge /test/*.php ./merge.php


这是hadoop的bug 参数中有*时 它会在本地查找 而不是在hdfs中查找 要想避免这种问题 就要把地址写全


19. 删除文件:hadoop fs -rm /test/a.php

-r参数表示递归删除某个目录下的所有文件和子目录:hadoop fs -rm -r /test

20. 删除空目录:hadoop fs -rmdir /test/a.php(这个命令无法删除非空目录)

21. 统计文件系统的可用空间信息:hadoop fs -df


hadoop fs -df -h /


22. 统计文件及目录的大小信息:hadoop -fs du /


-s 参数表示显示大小信息 -h参数表示带单位:hadoop -fs du -s -h /


23. 统计一个指定目录下的文件节点数目:hadoop fs -count /


24. 设置hdfs中文件副本数目:hadoop fs -setrep 2 /a.php(文件夹只是一种描述文件的特殊文件 是文件系统的元数据 它本身并不存储数据 因此在hdfs中副本数为0)

a.php文件 在设置之前的副本数为3


a.php文件 在设置之后的副本数为2



需要注意的是:这里设置的副本数只是在NameNode的元数据中记录下来了 如果设置的副本数小于当前服务器的节点数 则集群中该文件的副本数就是设置的这个副本数 因为它会迅速复制出副本 而如果设置的副本数大于当前服务器的节点数 集群中该文件的副本数就等于节点数 因为当前集群没有能力保证文件副本数达到设置的副本数 只有当集群中增加新的机器时 才会复制剩余的副本


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇解决hadoop在上传文件的时候连接.. 下一篇hadoop的mapreduce执行

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(217) }