HDFS :
1 hdfs 相关操作
1.linux 命令 --在linux 命令前加上hadoop fs/dfs 表示的就是hdfs命令
2.java code --看懂会用就行
2 hdfs 操作命令
2.1 查看hdfs ls:
1.hadoop fs -ls /
2.hdfs dfs -ls /
命令相同,底层调用的都是HADOOP_CLASSNAME=org.apache.hadoop.fs.FsShell
2.2 创建文件夹:mkdir
[hadoop@bigdata221 bin]$ hadoop fs -mkdir /hdfs01
[hadoop@bigdata221 bin]$ hadoop fs -ls /
Found 5 items
drwxr-xr-x - hadoop supergroup 0 2022-11-11 23:03 /data
drwxr-xr-x - hadoop supergroup 0 2022-11-15 17:11 /hdfs01
drwxr-xr-x - hadoop supergroup 0 2022-11-11 23:08 /out
drwxr-xr-x - hadoop supergroup 0 2022-11-14 18:32 /out2
drwx------ - hadoop supergroup 0 2022-11-14 18:31 /tmp
2.3 移动、拷贝 mv(一份) cp(两份)
[hadoop@bigdata221 bin]$ hadoop fs -mv /data /hdfs01/
mv还可以改名字
2.4 删除 rm
[-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...]
[hadoop@bigdata221 bin]$ hadoop fs -ls /
Found 4 items
drwxr-xr-x - hadoop supergroup 0 2022-11-15 17:13 /hdfs01
drwxr-xr-x - hadoop supergroup 0 2022-11-11 23:08 /out
drwxr-xr-x - hadoop supergroup 0 2022-11-14 18:32 /out2
drwx------ - hadoop supergroup 0 2022-11-14 18:31 /tmp
[hadoop@bigdata221 bin]$ hadoop fs -rm -r /out
Deleted /out
[hadoop@bigdata221 bin]$ hadoop fs -ls /
-skipTrash:跳过hdfs上的回收站,不可恢复
设置hdfs回收站:
文件:core-sit.xml
参数:fs.trash.interval 把0改为10080分钟即7天
生产上:开启回收站,有效期至少7天以上
添加参数:
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
停掉服务,重启
完全分布式分发一下core-sit.xml即可
2.5 uri
假设查看的是根目录下的1.log:/1.log
1.hdfs上的文件
1. hdfs://bigdata222:9000/1.log
[hadoop@bigdata223 ~]$ hadoop fs -ls hdfs://bigdata222:9000/1.log
2. /1.log
[hadoop@bigdata223 ~]$ hadoop fs -ls /1.log
2.linux本地local上的文件
file:///1.log:
[hadoop@bigdata223 ~]$ hadoop fs -ls file:home/hadoop/1.log
2.6 上传、下载:
上传:put copyfromlocal :
[hadoop@bigdata223 ~]$ hadoop fs -put ./2.log ./3.log /
[hadoop@bigdata223 ~]$ hadoop fs -ls /
[hadoop@bigdata223 ~]$ hadoop fs -copyFromLocal ./2.log /data
[hadoop@bigdata223 ~]$ hadoop fs -ls /data
下载;get copytolocal:
[hadoop@bigdata223 tmp]$ hadoop fs -get /data ./
[hadoop@bigdata223 tmp]$ ll
total 4
drwxr-xr-x. 2 hadoop hadoop 4096 Nov 15 18:07 data
[hadoop@bigdata223 tmp]$ hadoop fs -get /data ./datahdfs
2.7 更改权限 chmod
[hadoop@bigdata223 tmp]$ hadoop fs -chmod 664 /1.log
[hadoop@bigdata223 tmp]$ hadoop fs -ls /
chown :拥有者
[hadoop@bigdata223 tmp]$ hadoop fs -chown zihang:DL2262 /1.log
[hadoop@bigdata223 tmp]$ hadoop fs -ls /
2.8 查看文件内容:cat
[hadoop@bigdata223 tmp]$ hadoop fs -cat /1.log
111
222
333
使用java api的方式操作hdfs
<!--添加hadoop依赖,和下载的hadoop版本一致-->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.3.4</version>
</dependency>
1.java的单元测试
2.使用java api的方式操作hdfs
参数设置的优先级:
1.默认配置文件
core-default.xml
hdfs-default.xml
mapred-default.xml
yarn-default.xml
2.生产配置文件
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
3.代码里面设置的参数
Configuration
优先级排序:代码里面设置的参数 > 生产配置文件 > 默认配置文件