不是操作本地文件系统,要加前缀hdfs dfs
ll -h
易读显示文件大小
hdfs面向字节切割
for i in `seq 100000`;do echo "hello sxt $i" >> test.txt; done
hdfs dfs -D dfs.blocksize=1048576 -put test.txt
定义几个字节,根本不带商量的按字节去切
不够的,有多少算多少

[root@node003 subdir0]# ll
total 182272
-rw-r--r-- 1 root root 134217728 Nov 6 23:01 blk_1073741825
-rw-r--r-- 1 root root 1048583 Nov 6 23:01 blk_1073741825_1001.meta
-rw-r--r-- 1 root root 49377148 Nov 6 23:01 blk_1073741826
-rw-r--r-- 1 root root 385767 Nov 6 23:01 blk_1073741826_1002.meta
-rw-r--r-- 1 root root 1048576 Nov 6 23:22 blk_1073741833
-rw-r--r-- 1 root root 8199 Nov 6 23:22 blk_1073741833_1009.meta
-rw-r--r-- 1 root root 540319 Nov 6 23:22 blk_1073741834
-rw-r--r-- 1 root root 4231 Nov 6 23:22 blk_1073741834_1010.meta
[root@node003 subdir0]# head blk_1073741834
llo sxt 66231
hello sxt 66232
hello sxt 66233
hello sxt 66234
hello sxt 66235
hello sxt 66236
hello sxt 66237
hello sxt 66238
hello sxt 66239
hello sxt 66240
[root@node003 subdir0]# pwd
/var/hadoop/local/dfs/data/current/BP-226754864-[192.168.118.101](192.168.118.101)-1541433023780/current/finalized/subdir0/subdir0
元数据信息,小文件.meta 描述(用本文打开,乱码!)
严格按字节去切,没有那么复杂去考虑东西,这个世界的需求太多了(行、单词、k-v)不可能满足你们所有人!
切开了,计算层、数据需求方自己去解决这个问题!
HDFS-Shell常用操作
命令:hadoop fs 或hdfs dfs
|
说明 |
---|---|
-ls / | 查看hdfs的根目录 |
-ls hdfs://master:9000/
|
就是hadoop fs -ls /
|
-ls -R / | 递归查看hdfs根目录 |
-mkdir /d1 | 创建文件夹d1 (新建文件夹之后,下面的造作默认路径就是d1)所以上传下载最好用绝对路径,不会出错 |
-mkdir -p /user/root
|
创建家目录,-p 创建多层 |
-put <linux-file> <hdfs-dest>
|
上传数据到hdfs的特定路径中 当 <hdfs-dest> 不存在时,路径名就是文件名不指定 <hdfs-dest> 默认是家目录 |
-D dfs.blocksize=1048576 -put | 大文件切成多块,指定切割block大小:1M |
-get <linux-source> <hdfs-dest>
|
把数据从hdfs下载到linux的特定路径下 |
-text <hdfs-file>
|
查看hdfs中的文件 |
-help 命令
|
帮助文档,相当于man
|
-rm | 删除文件 |
-rm -R | 删除文件夹 |
-ls(r) <path> // 显示当前目录下所有文件
-du(s) <path> // 显示目录中所有文件大小
-count[-q] <path> // 显示目录中文件数量
-mv <src> <dst> // 移动多个文件到目标目录
-cp <src> <dst> // 复制多个文件到目标目录
-rm(r) // 删除文件(夹)
-put <localsrc> <des> // 本地文件上传到hdfs
-copyFromLocal // 同put
-moveFromLocal // 从本地文件移动到hdfs
-get [-ignoreCrc] <src> <localdst> // 下载文件到本地,可以忽略crc校验
-getmerge <src> <localdst> // 将源目录中的所有文件排序合并到一个文件中
-cat <src> // 在终端显示文件内容
-text <src> // 在终端显示文件内容
-copyToLocal [-ignoreCrc] <src> <localdst> // 复制到本地
-moveToLocal <src> <localdst>
-mkdir <path> // 创建文件夹
-touchz <path> // 创建一个空文件

网友评论