zoukankan      html  css  js  c++  java
  • 重要 | mr使用hcatalog读写hive表

    640?wx_fmt=png

    企业中,由于领导们的要求,hive中有数据存储格式很多时候是会变的,比如为了优化将tsv,csv格式改为了parquet或者orcfile。那么这个时候假如是mr作业读取hive的表数据的话,我们又要重新去写mr并且重新部署。这个时候就很蛋疼。hcatalog帮我们解决了这个问题,有了它我们不用关心hive中数据的存储格式。详细信息请仔细阅读本文。

    640?wx_fmt=png

    本文主要是讲mapreduce使用HCatalog读写hive表。

    hcatalog使得hive的元数据可以很好的被其它hadoop工具使用,比如pig,mr和hive。

    HCatalog的表为用户提供了(HDFS)中数据的关系视图,并确保用户不必担心他们的数据存储在何处或采用何种格式,因此用户无需知道数据是否以RCFile格式存储, 文本文件或sequence?文件。

    它还提供通知服务,以便在仓库中有新数据可用时通知工作流工具(如Oozie)。

    HCatalog提供HCatInputFormat / HCatOutputFormat,使MapReduce用户能够在Hive的数据仓库中读/写数据。 它允许用户只读取他们需要的表和列的分区。 托福备考返回的记录格式是方便的列表格式,用户无需解析它们。

    下面我们举个简单的例子。

    在mapper类中,我们获取表schema并使用此schema信息来获取所需的列及其值。

    下面是map类。

    
    
    

    在reduce类中,会为将要写入hive表中的数据创建一个schema。

    
    
    

    最后,创建driver类,并且表明输入输出schema和表信息。

    
    
    

    当然,在跑上面写的代码之前,应该先在hive中创建输出表。

    
    

    可能会引起错误的地方是没有设置$HIVE_HOME.

    [完]

    欢迎点击阅读原文扫二维码加入浪尖知识星球,获取更多优质的大数据学习资源和指导。

    推荐阅读:

    Hive性能优化(全面)

    Hive高级优化

    640?wx_fmt=jpeg


    文章来源:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/81713969

  • 相关阅读:
    nodejs安装以及配置
    java第三周学习总结
    java第二周学习总结
    java第一周学习总结
    调查问卷
    2016.2.19 学习总结
    第一周学习总结
    第一周学习总结
    假期马原学习计划
    20145335郝昊《java程序设计》第2次实验报告
  • 原文地址:https://www.cnblogs.com/mazhujun/p/9633768.html
Copyright © 2011-2022 走看看