使用 Scalding 的 HBase 到 Hive 示例

HBase to Hive example with Scalding

我正在尝试从 HBase 读取数据,对其进行处理,然后写入 Hive。我是 Scalding 和 Scala 的新手。

我查看了 SpyGlass 从 HBase 读取数据。它运行良好,我可以读取数据,然后将其写入文件。

val data = new HBaseSource(
tableName,
hbaseHost,
SCHEMA.head,
SCHEMA.tail.map((x: Symbol) => "data"),
SCHEMA.tail.map((x: Symbol) => new Fields(x.name)),
sourceMode = SourceMode.SCAN_ALL)
.read
.fromBytesWritable(SCHEMA)
.debug
.write(Tsv(output.format("get_list")))

所以现在的问题是如何将它写入 Hive。如果有人设法做到了这一点,我将不胜感激,如果能提供一个简单的例子或一些帮助来实现这一点。

您实际上不需要做任何特别的事情来写入 Hive - 您当前的代码绝对没问题。 Hive 只是将元数据应用到存储在 HDFS 中的数据之上。您需要做的就是在您正在写入的数据之上创建一个 Hive table。您有两个主要选择。如果您想将数据移动到 Hive 仓库,您需要使用如下命令加载它:

load data inpath '/your/file/or/folder/on/the/hdfs' into table your_table;

如果您不想移动数据,可以创建一个不移动数据的 external Hive table。外部table的优点是

  • 您不必向其中加载数据,
  • 删除 table 不会删除数据。