summerflowerying / blog-summer

热爱生活 带着翠花看日出
0 stars 0 forks source link

hive 存储格式 #58

Open summerflowerying opened 5 years ago

summerflowerying commented 5 years ago

hive 存储格式

1. hive的数据存储

Hive本身是没有专门的数据存储格式, 也没有为数据建立索引, 只需要建表时指定hive数据的列分割符和行分隔符;

2. 元数据

-

: Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。 由于Hive的元数据需要不断的更新、修改,而HDFS系统中的文件是多读少改的,这显然不能将Hive的元数据存储在HDFS中。目前Hive将元数据存储在数据库中,如Mysql、Derby中。(目前常用的是mysql), 我们可以通过以下的配置来修改Hive元数据的存储方式;

javax.jdo.option.ConnectionURL jdbc:mysql://localhost:3306/hive_hdp?characterEncoding=UTF-8&createDatabaseIfNotExist=true JDBC connect string for a JDBC metastore
    <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
    </property>

    <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>username to use against metastore database</description>
    </property>

    <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>password to use against metastore database</description>
    </property>

  当然,还需要将相应数据库的启动复制到${HIVE_HOME}/lib目录中,这样才能将元数据存储在对应的数据库中。