HDFS初步使用
|Word Count:413|Reading Time:1mins|Post Views:
HDFS(Hadoop Distributed File System)是可扩展、容错、高性能的分布式文件系统,异步复制,一次写入多次读取,主要负责存储。其概念和内容可以参考[1]。这里就做一个简单的实验来看一下其文件管理的功能。更多的Hadoop命令可以参考[2]。
用户建立
在实验环境中,不建议使用root账号直接登录运行,所以建立一个普通账号。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| # Elephant主机执行 # 安装ansible [root@elephant ~]# yum install -y ansible # 在/etc/ansible/hosts中新增所有主机名 # 建立ansible文件 [root@elephant ~]# mkdir playbook [root@elephant ~]# vim ./playbook/useradd.yaml --- - hosts: hadoop remote_user: root vars_prompt: - name: user_name prompt: Enter Username private: no - name: user_passwd prompt: Enter Password encrypt: "sha512_crypt" confirm: yes tasks: - name: create user user: name: "{{user_name}}" password: "{{user_passwd}}"
# 执行 [root@elephant ~]# ansible-playbook ./playbook/useradd.yaml Enter Username: sujx Enter Password: confirm Enter Password:
PLAY [hadoop] *****************************************************************************
|
HDFS文件使用
我们先将准备的481M文件(access.log)上传至用户家目录,看看这个文件将在hdfs文件系统中如何存储。
1 2 3 4 5
| [root@elephant ~]# su hdfs [hdfs@elephant root]$ hadoop fs -mkdir /user/sujx [hdfs@elephant root]$ hadoop fs -chown sujx /user/sujx [hdfs@elephant root]$ su sujx - [hdfs@elephant root]$ hdfs dfs -put access_log weblog
|
然后,我们通过hdfs的web控制台就可以看到文件的存储情况,可见文件以3副本的形式,按照每个128M大小的存储块分割存储在namenode之上。当前情况是分成了4块。 我们可以从lion主机中看到存储的数据块。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| [root@lion ~]# tree /dfs /dfs `-- dn -- current -- BP-752680285-192.168.174.131-1582986010714 -- current -- VERSION -- dfsUsed -- finalized `-- subdir0 -- subdir0 -- subdir1 -- subdir2 -- subdir3 -- blk_1073742734 -- blk_1073742734_1910.meta `-- subdir4 `-- rbw -- scanner.cursor `-- tmp `-- VERSION `-- in_use.lock
|