【发布时间】:2018-03-03 15:05:09
【问题描述】:
尽管多年来一直使用传统数据库,但我相信我对 Hive 和 Impala 如何与 HDFS 交互(或者 HDFS 本身如何工作!)存在根本性的误解,并希望得到一些建议。
只是为了说明我的想法:在 Windows 上,当我创建一个文件(例如 bob.txt)时,该文件存储在“文件系统”(NTFS)上。现在,无论我使用 Windows 资源管理器、命令提示符还是其他软件,我都会看到 bob.txt,因为它存在于“文件系统上”并且所有软件都可以访问该文件系统。
在我在 RedHat 上使用 Cloudera 与 HDFS 的新手交互中,我认为它的工作方式与上一段所述完全不同。
例如,当使用 Hue 时,如果我在“Hive 查询编辑器”中创建一个表,在“Impala 查询编辑器”中时,该表似乎不会显示在表列表下。当我在命令提示符下使用“hive”和“impala-shell”时,也会发生类似的情况。但是,这对我来说没有意义,因为表应该只是“在文件系统上”——在这种情况下是 HDFS。
使用 sqoop 从 Oracle 拉取时会发生类似的操作。当我从 Oracle 中提取的表应该放在“文件系统上”时,为什么我需要使用“--import-hive”选项。一旦进入 HDFS 文件系统,位于其之上的任何软件(例如 Hive、Impala 或其他任何软件)都应该能够访问它。
无论如何,其中一些可能是新手用户错误/误解,所以请提前道歉!
提前感谢任何 cmets/建议!
【问题讨论】:
标签: hadoop hive filesystems hdfs impala