配置Hadoop集群-上传文件
(一)上传小文件
上传文件的时候,我们传一个大一点的(>128M),再传一个小一点的。对于大一点的文件,我们要去看看它是否会按128M为单位去拆分这个大文件,而拆分成大文件之后,我们又怎么才能去还原?
下面我们来看具体操作:
打开hadoop100:9870,点击上传,选择我们需要上传的文件(建议选择一个简单的文本文件),上传之后的结果如下:
命令格式如下:
hadoop fs -put 要上传的文件 目标位置
下面我们上传一个小文件,你可以自己去找一个文本文件,或者自己创建一个都可以。cd
上传小文件(小于128M)
[root@hadoop100 ~]$ hadoop fs -mkdir /input
[root@hadoop100 ~]$ hadoop fs -put $HADOOP_HOME/wcinput/word.txt /input
上传大文件(大于128M)
[root@hadoop100 ~]$ hadoop fs -put /opt/software/jdk-8u212-linux-x64.tar.gz /
上传文件后查看文件存放在什么位置
在我们上一节的hadoop配置中,我们设置了保持文件的目录是/data,所以,我们进入hadoop的按照目录下的data中去看一看。
这个存储的目录特别深,大概类似于:/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1436128598-192.168.10.102-1610603650062/current/finalized/subdir0/subdir0
文件的名称是blk_xxx。我们可以使用cat命令查看HDFS在磁盘存储文件内容:
[root@hadoop102 subdir0]$ cat blk_1073741825
hadoop yarn
hadoop mapreduce
root
root
(三)上传大文件
前面我们上传了一个小文件,可以看到这个文件太小,hadoop被没有被切分成小块。接下来我们传一个大一点的文件,例如jdk的安装包。(注意,你可以上传一些别的文件,但是务必确保大小是大于128M)
我们把它保存在集群的根目录。
上传完成之后,我们去查看,很明显大文件被分块了,128M一块,一共有两个块。可以通过cat >> 命令把两个块的内容拼接到一起,然后再去解压缩一下。
类似于如下:
-rw-rw-r--. 1 root root 134217728 5月 23 16:01 blk_1073741836
-rw-rw-r--. 1 root root 1048583 5月 23 16:01 blk_1073741836_1012.meta
-rw-rw-r--. 1 root root 63439959 5月 23 16:01 blk_1073741837
-rw-rw-r--. 1 root root 495635 5月 23 16:01 blk_1073741837_1013.meta
[root@hadoop102 subdir0]$ cat blk_1073741836>>tmp.tar.gz
[root@hadoop102 subdir0]$ cat blk_1073741837>>tmp.tar.gz
[root@hadoop102 subdir0]$ tar -zxvf tmp.tar.gz