HDFS常用命令,虽然现在流行很多hadoop插件,直接或间接操作HDFS,但是熟悉HDFS原生操作命令也是有好处的。HDFS命令和Linux系统操作命令有很多相似之处,对熟悉Linux系统操作的人来说学习很简单,所以大数据入门首先学习Linux系统。hadoop fs 和hdfs dfs 两种命令都可以操作执行。

#hdfs dfs -help [com]                      --查看hdfs帮助
#export HADOOP_USER_NAME=hdfs              --设置hadoop_user_name环境变量,执行命令时可以用hdfs dfs代替 hadoop fs
#hdfs dfs -chown [-R] root:root filepath              --修改文件或文件夹组
#hdfs dfs -chmod [-R] o-r /dir                   --修改dir目录权限
#hdfs dfs -chgrp [-R] admin /dir                  --修改dir目录所在组,改为admin

#hdfs dfs -ls /    #hadoop fs -ls /                --查看根目录文件
#hdfs dfs -put sourcepath savepath                --hdfs上传文件,-f 覆盖已有文件;-p 保留原文件属性
#hdfs dfs -get sourcepath savepath                --hdfs下载文件

#hdfs dfs -cat /input/filename    #hadoop fs -cat /input/filename   --查看文件filename
#hdfs dfs -du -s /input/                      --查看所有文件大小和字节大小
#hdfs dfs -cp /sourcefile /targetfile   #hadoop fs -cp /src /trget    --复制文件,hadoop fs -cp < hdfs file > < hdfs file >
#hdfs dfs -count < hdfs path >                   --统计hdfs对应路径下的目录个数,文件个数,文件总计大小
#hdfs dfs -count /input/test/                    --统计文件夹和文件个数
#hdfs dfs -text < hdsf file>                     --将文本文件或某些格式的非文本文件通过文本格式输出
#hdfs dfs -text /input/log.txt                    --将给定的文件以文本的格式输出,zip、TextRecordInputStream、Avro
#hdfs dfs -getmerge sourcepaths savefilename           --合并文件
#hdfs dfsadmin -report                      --查看HDFS的基本统计信息
#hadoop-deamon.sh start namenode                --单独启动某个服务
#hadoop-daemon.sh start datanode                --启动一个 DN,先启动datanode节点,再启动nodemanager。
#hadoop-daemon.sh start nodemanager              --启动一个 DN,先启动datanode节点,再启动nodemanager。

#hdfs dfs -mkdir /output/dirname   #hadoop fs –mkdir /dirname   --创建文件夹dirname
#hdfs dfs -touchz /input/filename                  --创建文件filename
#hdfs dfs -appendToFile /appendfile /input/targetfile          --向现有文件中追加内容
#hdfs dfs -rm /directory/                     --删除文件
#hdfs dfs -rm -R /directory/   #hadoop fs -rm -r /dir         --删除文件夹,-R循环删除文件夹里面的文件
#hdfs dfs -mv /user/root/.Trash/Current/test/filename /test/filename   --找回删除文件

#hdfs dfs -moveFromLocal < local src > ... < hdfs dst >        --与put相类似,命令执行后源文件local src被删除,也可以是键盘输入
#hdfs dfs -copyFromLocal < local src > ... < hdfs dst >         --与put相类似,也可以从从键盘读取输入到hdfs file中

#hdfs dfsadmin -safemode enter                  --进入安全模式
#hdfs dfsadmin -safemode leave                  -- 退出安全模式

#bin/start-all.sh          --添加一个新的DataNode节点后,配置相同配置。NameNode节点上修改$HADOOP_HOME/conf/slaves文件,加入新节点名,再建立新加节点无密码的SSH连接,运行启动命令。
#bin/start-balancer.sh       --HDFS的数据在各个DataNode中的分布可能很不均匀,尤其是在DataNode节点出现故障或新增DataNode节点时。可使用命令重新平衡DataNode上的数据块的分布。

#运行MapReduce:   hadoop jar jarpath inputfilepath outputdir
#hadoop jar /opt/opp/test.jar /input/test/test.txt /output/test/      --运行jar包
#hadoop运行wordcount.jar MapReduce,输出路径是HDFS路径
#bin/hadoop jar /usr/joe/wordcount.jar org.myorg.WordCount /usr/joe/wordcount/input /usr/joe/wordcount/output
#yarn jar /opt/opp/Test.jar /input/test/test.txt /output/test/        --yarn运行jar包
#tail -f filename.log                        --动态查看log日志

#su root                             --切换到root用户
#reboot                             --重启Linux
#mkdir filename                          --创建文件filename
#rm -rf directory                          --删除文件夹
#wc /etc/passwd                         --统计passwd行数 -l,单词数 -w,字符数 -c,文件名
FQA:
1.Permission denied: user=root, access=WRITE, inode="/input":hdfs:supergroup:drwxr-xr-x
#export HADOOP_USER_NAME=hdfs                --设置hadoop_user_name