Shell常用操作命令
创建文件夹
hadoop fs -mkdir [-p] <path>...
path 为待创建的目录
-p它会沿着路径创建父目录
查看指定目录下的内容
hadoops fs -ls [-h][-R][<path>...]
path 指定目录路径
-h 人性化显示文件size
-R 递归查看指定目录及其子目录
hadoops fs -put 123.txt /
上传一个文件到HDFS根目录下
hadoop fs -ls -h /
查看传到根目录下的文件内容
上传文件到HDFS指定目录下
hadoop fs -put [-f][-p] <localsrc>...<dst>
-f 覆盖目标文件(已存在)
-p 保留访问和修改时间,所有权和权限
localsrc 本地文件系统(客服端所在机器)
dst 目标文件(HDFS)
什么是本地文件系统?
客服端所在的机器
查看HDFS文件内容
hadoop fs -cat<src>...
读取指定文件全部内容,显示在标准输出控制台
下载HDFS文件
Hadoop fs -get [-f][-p]<src>...<localdst>
下载文件到本地文件系统指定目录,localdst必须是目录
hadoop fs -get /3.txt ./
将HDFS根目录文件下3.txt下载到本地文件系统根目录下
hadoop fs -get /1.txt ./666.txt
将HDFS根目录文件下3.txt下载到本地文件系统根目录下,并改名为666.txt
拷贝HDFS文件
hadoop fs -cp [-f]<src>...<dst>
追加数据到HDFS文件中(小文件合并)
hadoop fs -appendToFile <localsrc>...<dst>
将所有给定本地文件的内容追加到给定dst文件
dst如果不存在,将创建该文件
[root@master ~]# echo 111 >1.txt
[root@master ~]# cat 1.txt
111
[root@master ~]# echo 222 >2.txt
[root@master ~]# cat 2.txt
222
[root@master ~]# echo 333 >3.txt
[root@master ~]# cat 3.txt
333
[root@master ~]# hadoop fs -put 1.txt /
[root@master ~]# hadoop fs -ls /
Found 1 items
-rw-r--r-- 3 root supergroup 4 2022-11-02 17:52 /1.txt
[root@master ~]# hadoop fs -appendToFile 2.txt 3.txt /1.txt
[root@master ~]# hadoop fs -cat /1.txt
111
222
333
<注意>若出现这个错误提示java.io.IOException: Failed to replace a bad datanode on the existing pipeline due to no more good datanodes being available to try.
解决办法:
修改hdfs-site.xml
<property>
<name>dfs.client.block.write.replace-datanode-on-failure.policy</name>
<value>NEVER</value>
</property>
HDFS数据移动操作
hadoop fs -mv <src>...<dst>
移动文件到指定目录文件夹下
可以使用该命令移动数据,重命名文件的名称
打开端口页面(可看)
先要打开集群,才能访问网址页面
master:9870(HDFS)
master:8088(yarn)