在将数据加载到HDFS / Hive之前的模式验证/验证

时间:2015-11-10 03:52:26

标签: hadoop hive hadoop2 sqoop

我是Hadoop生态系统的新手,我需要Bigdata专家提出的关于在将大量数据加载到hdfs之前实现模式验证/验证的建议。

场景是:

  

我有一个给定架构的大型数据集(大约有200个   其中的列标题)。该数据集将存储在Hive中   表/ HDFS。在将数据加载到我想要的hive table / hdfs之前   对提供的数据执行模式级别验证/验证   在将数据加载到hdfs时避免任何不需要的错误/异常。   有些人试图传递数量较少或更多的数据文件   然后在第一级验证中的列数   加载失败。

实现同样目标的最佳方法是什么?

此致 布佩希

2 个答案:

答案 0 :(得分:0)

由于您有文件,您可以将它们添加到HDFS中,并在此之上运行map reduce。在这里,您将对每一行进行保留,以便您可以验证列数,类型和任何其他验证。

当我提到jason / xml时,会有一些轻微的开销使map减少识别该格式的记录。但是,对于验证,您可以强制执行模式验证,并且还仅使用模式为字段定义特定值。因此,一旦模式准备就绪,您的解析(xml到java)然后将它们存储在另一个最终HDFS位置以供进一步使用(如HBase)。当您确定数据已经过验证时,您可以在其上创建Hive表。

答案 1 :(得分:0)

使用以下实用程序每次都根据您在登台目录中以csv文件格式收到的架构创建临时表,然后应用一些条件来确定您是否有有效列。最后加载到原始表中。

https://github.com/enahwe/Csv2Hive