上一节我们搭建好了集群,数据从哪里来呢。
通常经过是通过etl工具,如kettle,informatica等将其他系统的数据抽取成文件,然后再利用脚本调用hdfs的命令导入进hdfs集群。
还有一种方式是通过通用组件如sqoop等,今天先讲第一种方式。
HDFS 常用命令
在 Linux 命令行终端,可以使用命令行工具对 HDFS 进行操作。使用这些命令行可以完成 HDFS 文件的上传、下载和复制,还可以查看文件信息、格式化 NameNode 等。
HDFS 命令行的统一格式如下。
hadoop fs -cmd <args>
其中,cmd
是具体的文件操作命令,<args>
是一组数目可变的参数。
1. 添加文件和目录
HDFS 有一个默认工作目录 /usr/$USER,其中,$USER
是登录用户名,如 root。该目录不能自动创建,需要执行 mkdir 命令创建。
hadoop fs -mkdir /usr/root
使用 Hadoop 的命令put
将本地文件 README.txt 上传到 HDFS。
hadoop fs -put README.txt
注意,上面这个命令的最后一个参数是:“.”,这意味着把本地文件上传到默认的工作目录下,该命令等价于以下代码。
hadoop fs -put README.txt /user/root
2. 下载文件
下载文件是指从 HDFS 中获取文件,可以使用 Hadoop 的 get 命令。例如,若本地文件没有 README.txt 文件,则需要从 HDFS 中取回,可以执行以下命令。
hadoop fs -get /README.txt ./
或者执行以下命令。
hadoop fs -get README.txt /usr/root/README.txt
3. 删除文件
Hadoop 删除文件的命令为rm
。例如,要删除从本地文件上传到 HDFS 的 README.txt,可以执行以下命令。
hadoop fs -rm README.txt
4. 检索文件
检索文件即查阅 HDFS 中的文件内容,可以使用 Hadoop 中的cat
命令。例如,要查阅 README.txt 的内容,可以执行以下命令。
hadoop fs -cat README.txt
另外,Hadoop 的cat
命令的输出也可以使用管道传递给 UNIX 命令的 head,可以只显示文件的前一千个字节。
hadoop fs -cat README.txt | head
Hadoop 也支持使用tail
命令查看最后一千字节。例如,要查阅 README.txt 最后一千个字节,可以执行如下命令。
hadoop fs -tail README.txt
5. 查阅帮助
查阅 HDFS 命令帮助,可以更好地了解和使用 Hadoop 的命令。用户可以执行hadoop fs
来获取所用版本 HDFS 的一个完整命令类别,也可以使用help
来显示某个具体命令的用法及简短描述。
例如,要了解ls
命令,可执行以下命令。
hadoop fs -help ls