【问题标题】:sqoop vs hdfs commandssqoop 与 hdfs 命令
【发布时间】:2017-06-14 14:25:39
【问题描述】:
我是 Sqoop 的新手。据我了解,Sqoop 命令用于将数据从 MySql 等数据库导入 HDF,反之亦然,HDFS 命令用于处理 HDFS 中的数据,例如将数据从 HDFS 获取到本地文件系统,反之亦然。我们不能使用 sqoop 命令来处理 HDFS 中的数据 - 将数据从本地文件系统获取到 hdfs,反之亦然。请让我知道 Sqoop 和 HDFS 命令之间的确切区别。为什么我们有两个不同的东西。为什么他们没有将所有这些命令放在一个集合中。抱歉,如果我的问题没有意义。
【问题讨论】:
标签:
mysql
hadoop
hdfs
sqoop
【解决方案1】:
Sqoop 命令有以下用途:
1)从任何数据库导入/导出数据到hdfs/hive/hbase,反之亦然。它不仅限于 hdfs 导入和导出。
2)如果我们需要移动整个数据库/表列表,可以一次性获取数据。
3)通过sqoop命令只能导入增量数据。
4)它还需要连接驱动程序来连接数据库
简而言之,它处理表/数据库。
hdfs 命令:
1)它仅用于将任何类型(csv、text、xls)的文件从本地传输到 hdfs,反之亦然。它只是提供将数据从一个系统移动或复制到另一个系统的基本功能,就像 unix 命令一样。
【解决方案3】:
是的,你的理解是正确的。
Sqoop 命令用于:
将数据从任何关系数据库(如 mysql)导入到 HDFS/Hive/Hbase
将数据从 HDFS/Hive/Hbase 导出到任何关系数据库(如 mysql)
hdfs 命令用于:
将任何文件(如 :.txt、.csv、.xls、..etc)从本地复制/传输到 hdfs,反之亦然。
为:
为什么我们有两个不同的东西。为什么他们没有将所有这些命令放在一个集合中。
答案:
Sqoop 命令
(用于复制结构化数据 b/w 两个不同的系统)
Hdfs 命令
(用于复制文件 b/w 本地和 hdfs)
使用 sqoop 我们无法将文件从本地复制到 hdfs,反之亦然
还有
使用 hdfs 命令,我们无法将数据从 hdfs 复制到任何其他外部数据库(如 mysql),反之亦然。