将数据加载到 hadoop hdfs 中
第 1 步:在 HDFS 中创建目录,上传文件和列表内容
让我们通过编写语法来学习。你将能够将以下示例命令复制并粘贴到终端中:
hadoop fs -mkdir:
将路径 URI 作为参数并创建目录或多个目录。
用法:
# hadoop fs -mkdir <paths>
例:
hadoop fs -mkdir /user/hadoop
hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2 /user/hadoop/dir3
hadoop fs -put:
将单个 src 文件或多个 src 文件从本地文件系统复制到 Hadoop 分布式文件系统。
用法:
# hadoop fs -put <local-src> ... <HDFS_dest_path>
例:
hadoop fs -put popularNames.txt /user/hadoop/dir1/popularNames.txt
hadoop fs -copyFromLocal:
将单个 src 文件或多个 src 文件从本地文件系统复制到 Hadoop 分布式文件系统。
用法:
# hadoop fs -copyFromLocal <local-src> ... <HDFS_dest_path>
例:
hadoop fs -copyFromLocal popularNames.txt /user/hadoop/dir1/popularNames.txt
hadoop fs -moveFromLocal:
与 put 命令类似,只是在复制后删除了源 localsrc。
用法:
# hadoop fs -moveFromLocal <local-src> ... <HDFS_dest_path>
例:
hadoop fs -moveFromLocal popularNames.txt /user/hadoop/dir1/popularNames.txt
SQOOP 数据传输工具:
我们还可以使用 Sqoop(用于从 RDBMS 到 HDFS 的数据传输的命令行工具,反之亦然)直接从关系数据库将数据加载到 HDFS 中。
用法:
$ sqoop import --connect CONNECTION_STRING --username USER_NAME --table TABLE_NAME
例:
$ sqoop import --connect jdbc:mysql://localhost/db --username foo --table TEST