【HDFS】Hadoop分布式文件系统
HDFS被设计用来可靠存储并向用户高速传输超大数据集。在大的集群中,成千上万台服务器都直接挂载存储设备并执行用户任务。通过将存储和计算分布到多台服务器,这些资源可以按需增长,同时在任何规模都保持经济性
一、HDFS客户端安装与常用操作
1. 客户端安装并设置在普通用户访问
- 安装公司通用HDFS集群访问客户端,如下,在root下安装后可更改目录权限拥有者为普通用户,bin下有haddop访问命令脚本
- 将命令添加到Linux系统环境变量,使得不用每次都从客户端根目录bin去执行hadopp命令
[root@IP /data/hadoop_client/dfsclient]# ll
total 52
-rw-r--r-- 1 uername uername 15429 May 23 2019 LICENSE.txt
-rw-r--r-- 1 uername uername 101 May 23 2019 NOTICE.txt
-rw-r--r-- 1 uername uername 1366 May 23 2019 README.txt
drwxr-xr-x 2 uername uername 4096 Feb 18 09:51 bin
drwxr-xr-x 3 uername uername 4096 May 23 2019 etc
drwxr-xr-x 2 uername uername 4096 May 23 2019 include
drwxr-xr-x 3 uername uername 4096 May 23 2019 lib
drwxr-xr-x 2 uername uername 4096 May 23 2019 libexec
drwxr-xr-x 2 uername uername 4096 May 23 2019 sbin
drwxr-xr-x 4 uername uername 4096 May 23 2019 share
vi ~/.bashrc
#设置hadoop系统变量,root下保存则对所有普通用户都有效
export HADOOP_HDFS_CLIENT=/data/hadoop_client/dfsclient/bin
export PATH="$PATH:$HOME/.ft:$HADOOP_HDFS_CLIENT"
2. 常用操作
# 1. 查看指定目录下文件列表
hadoop fs -Dhadoop.job.ugi=user:passwd -ls hdfs://path
# 2. 在指定目录下创建test目录
hadoop fs -Dhadoop.job.ugi=user:passwd -mkdir hdfs://path/test
# 3. 将本地文件拷贝到HDFS指定目录下
hadoop fs -Dhadoop.job.ugi=user:passwd -copyFromLocal /data/path/configurations.json hdfs://path/test/
# 4. 将HDFS指定目录下文件拷贝到本地,并重命名
hadoop fs -Dhadoop.job.ugi=user:passwd -copyToLocal hdfs://path/test/part-00000-668e4f40-c665-4d85-a97d-9f08051bd846-c000.csv /data/hadoop_client/dfsclient/2.csv
# 5. 删除HDFS指定目录下文件
hadoop fs -Dhadoop.job.ugi=user:passwd -rm -r -f hdfs://path/1.csv
# 6. 查看指定文件前100行
hadoop fs -Dhadoop.job.ugi=user:passwd -text hdfs://path/1.csv | head 100
# 7. 统计文件行数
hadoop fs -Dhadoop.job.ugi=user:passwd -cat hdfs://path/1.csv | wc -l
二、HDFS总体介绍
Hadoop一个重要的特性是将数据和计算分散到很多(几千)主机,并且应用计算就近数据执行。Hadoop集群仅仅通过增加商用机器就可以扩展