Sqoop - 是不是可以在 HDFS 中导入平面文件

Posted

技术标签:

【中文标题】Sqoop - 是不是可以在 HDFS 中导入平面文件【英文标题】:Sqoop - Is it possible to import flat-files in HDFSSqoop - 是否可以在 HDFS 中导入平面文件 【发布时间】:2014-04-28 07:05:50 【问题描述】:

我知道可以通过 sqoop 将 RDBM 的数据导入 HDFS,但我想知道是否也可以导入平面文件。

例如,是否可以从远程 Linux 文件系统导入文件?

感谢您的帮助。

【问题讨论】:

你考虑过使用 Flume 吗? flume.apache.org @sudarshan 是的,但我真的很想知道 Sqoop 是否可行 【参考方案1】:

为了将平面文件放入 HDFS,不需要 Sqoop,我认为没有任何理由为此使用 Sqoop。只需尝试以下命令。 Here 是相同的文档。

hadoop fs -put <src-linux-file-system> <target-hdfs-file-system>

【讨论】:

谢谢。但我想知道 Sqoop 的答案,例如远程平面文件的情况 让我们知道您为什么要使用 Sqoop 而不是大象 :),然后其他人可以帮助您。 我只是在研究所有的可能性。在我的项目中,我们将使用 sqoop 将 RDBM 的数据导入 hdfs。我们认为使用 sqoop 从远程源导入平面文件会更容易。如果不可能,我们当然会研究其他可能性。 我们应该始终找到满足要求的工具,而不是相反 - 祝您好运找到替代品。 @shanks_roux,如果您的主机(远程文件系统/源)安装了 Hadoop 客户端,那么它将能够读取/写入 HDFS。使用 hadoop fs -put 将是可行的选择。【参考方案2】:

答案是否定的,使用sqoop导入纯文本文件,使用Flume导入

【讨论】:

【参考方案3】:

Sqoop 不能用于将任何文件类型导入 Hadoop。根据您对数据摄取到 hadoop 中的及时性的要求(批处理、近实时、实时),您可以选择 fs -put(适用于宏批处理)、flume 或 kafka(适用于更频繁的更新,例如接近实时-时间用例)。对于实时摄取,您可能需要首先考虑内存,然后才是永久存储。在这种情况下,您可能需要使用一些工具,例如 Storm 或 Spark Streaming。

【讨论】:

以上是关于Sqoop - 是不是可以在 HDFS 中导入平面文件的主要内容,如果未能解决你的问题,请参考以下文章

sqoop的简单使用

sqoop如何在增量导入中导入固定数量的行?

利用SQOOP将数据从数据库导入到HDFS(并行导入,增量导入)

RDBMS数据定时采集到HDFS

Sqoop安装及基本使用

使用 --create-hive-table 直接在 hive 中导入 mysql 表 (sqoop)