zoukankan      html  css  js  c++  java
  • Hive 中数据仓库默认位置配置及库表关系

    1、原始位置的默认配置

    hive中的Default(默认)数据仓库的最原始位置是在hdfs上的 /user/hive/warehouse(以下默认Hive的HDFS根目录为/user/hive)路径下,这个原始位置是本地的/usr/local/hive/conf/hive-default.xml.template文件默认配置的,

    2、库表关系

    1)默认情况下:

    在hdfs目录下,没有对默认的数据库default创建文件夹。如果某张表属于default数据库,直接在数据仓库目录下创建一个文件夹。

    下图中abc,bonus,department,dept,emp为缺省库default下的几张表,目录名与表名一致。

    2)指定库情况下

      如果创建了数据库,并指定表为该库下的表,Hive会在/user/hive/warehouse/下创建一个以库名命名的目录(如上图的a.db,b.db分别代表数据库a,b),该库的表目录在库目录下。

    3)制定分区的情况下:

     如果为表设定了分区,则会在表目录下增加分区目录,目录名以“分区键名=分区值”的形式命名。如下图,表dept1中,设置了v1和v2两个名为a的分区。

    3、修改数据仓库的原始位置只需在hive-site.xml自定义配置文件中设置如下信息即可:

    <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>目录</value>
    <description>location of default database for the warehouse</description>
    </property>
    需要为该目录配置同组可写:

    hdfs dfs -chmod g+w 目录
    ,另外也可以顺便在这个自定义配置文件中设置如下参数

     <property>
       <name>hive.cli.print.header</name>
       <value>true</value>
     </property> 
     <property>
       <name>hive.cli.print.current.db</name>
       <value>true</value>
     </property>
    这样每次select返回结果信息就会显示有表头字段名了。

    转载:https://blog.csdn.net/qq_39954916/article/details/105197541?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduend~default-1-105197541.nonecase&utm_term=hive%20warehouse%E9%85%8D%E7%BD%AE&spm=1000.2123.3001.4430

  • 相关阅读:
    【转】关于LWF——线性工作流
    【转】对抗拖库 ―― Web 前端慢加密
    【转】用C#调用Windows API向指定窗口发送
    使用 Redis 如何设计分布式锁?
    SpringBoot如何使用WebSocket实现前后端交互?
    Redis缓存使用中的热key问题
    Spring的BeanUtils的copyProperties方法需要注意的点
    解决github中图片不显示的问题
    java中JsonSerializer的用法(前后端单位转换必备)
    Spring Boot2.X中findOne的用法
  • 原文地址:https://www.cnblogs.com/LEPENGYANG/p/13967205.html
Copyright © 2011-2022 走看看