当前位置:Gxlcms > mysql > hive元数据库配置、metadata

hive元数据库配置、metadata

时间:2021-07-01 10:21:17 帮助过:139人阅读

一、什么是hive元数据? hive元数据就是hive的一些基本的元素,主要包括hive表的基本属性,如下 (1)hive表的数据库名、表名、字段名称与类型、分区字段与类型 (2)表的分区,分区的属性location等 (3)serdeproperties, tblproperties等等 可以通过 desc

一、什么是hive元数据? hive元数据就是hive的一些基本的元素,主要包括hive表的基本属性,如下 (1)hive表的数据库名、表名、字段名称与类型、分区字段与类型 (2)表的分区,分区的属性location等 (3)serdeproperties, tblproperties等等 可以通过 desc formatted tablename 查看表有哪些属性 二、hive默认元数据库Derby(嵌入模式) hive-default.xml通过如下配置设置
  1. <name>javax.jdo.option.ConnectionURL</name>
  2. <value>jdbc:derby:;databaseName=metastore_db;create=true</value>
  3. <description>JDBC connect string for a JDBC metastore</description>
  4. <property>
  5. <name>javax.jdo.option.ConnectionDriverName</name>
  6. <value>org.apache.derby.jdbc.EmbeddedDriver</value>
  7. <description>Driver class name for a JDBC metastore</description></property>

property> Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。所以hive采用了Derby作为一个内嵌的元数据库,可以完成hive安装的简单测试。 hive安装完成之后,就可以在hive shell中执行一些基本的操作,创建表、查询等等。如果你细心的话,就会发现一个问题: 当在某个目录下启动终端,进入hive shell时,hive默认会在当前目录下生成一个derby文件和一个metastore_db目录,这两个文件主要保存刚刚在shell中操作的一些sql的结果,比如新建的表、添加的分区等等 这种存储方式的带来弊端 1.在同一个目录下同时只能有一个hive客户端能使用数据库 2.切换目录启动新的shell,无法查看之前创建的表,不能实现表数据的共享 三、使用mysql作为元数据库 由于使用默认的元数据库有些弊端,所以采用mysql保存hive元数据解决上面的问题。hive所有的元数据都保存在同一个库里,这样不同开发者创建的表可以实现共享。
mysql配置又分为几种情况: (1)mysql部署在hive服务器,使用本地服务(测试、学习使用) \
(2)mysql部署在其他机器,hive服务器开启metadata服务,在hive服务器上操作hive \
(3)mysql部署在其他机器,hive服务器开启metadata服务,在hive客户端访问hive的metadata服务 \
配置mysql: 配置mysql时,首先要把mysql-jdbc-driver.jar拷贝到$HIVE_HOME/lib目录下,修改hive-default.xml名字为hive-site.xml 第一种情况,hive-site.xml配置如下
  1. <property>
  2. <name>hive.metastore.local</name>
  3. <value>true</value>
  4. </property>
  5. <property>
  6. <name>javax.jdo.option.ConnectionURL</name>
  7. <value>jdbc:mysql://localhost/hive?createDatabaseIfNotExist=true</value>
  8. </property>
  9. <property>
  10. <name>javax.jdo.option.ConnectionDriverName</name>
  11. <value>com.mysql.jdbc.Driver</value>
  12. </property>
  13. <property>
  14. <name>javax.jdo.option.ConnectionUserName</name>
  15. <value>hive</value>
  16. </property>
  17. <property>
  18. <name>javax.jdo.option.ConnectionPassword</name>
  19. <value>password</value>
  20. </property>
  21. 第二种情况,hive-site.xml配置
  22. <property>
  23. <name>javax.jdo.option.ConnectionURL</name>
  24. <value>jdbc:mysql://192.168.0.1:3306/hive?createDatabaseIfNotExist=true</value>
  25. </property>
  26. <property>
  27. <name>javax.jdo.option.ConnectionDriverName</name>
  28. <value>com.mysql.jdbc.Driver</value>
  29. </property>
  30. <property>
  31. <name>javax.jdo.option.ConnectionUserName</name>
  32. <value>hive</value>
  33. </property>
  34. <property>
  35. <name>javax.jdo.option.ConnectionPassword</name>
  36. <value>password</value>
  37. </property>
  38. <property>
  39. <name>hive.metastore.local</name>
  40. <value>false</value>
  41. </property>
  42. <property>
  43. <name>hive.metastore.uris</name>
  44. <value>thrift://192.168.0.101:9083</value>
  45. </property>
  46. 第三种情况,hive-site.xml配置 1、 服务端配置
  47. <property>
  48. <name>javax.jdo.option.ConnectionURL</name>
  49. <value>jdbc:mysql://192.168.1.214:3306/hive?createDatabaseIfNotExist=true</value>
  50. </property>
  51. <property>
  52. <name>javax.jdo.option.ConnectionDriverName</name>
  53. <value>com.mysql.jdbc.Driver</value>
  54. </property>
  55. <property>
  56. <name>javax.jdo.option.ConnectionUserName</name>
  57. <value>hive</value>
  58. </property>
  59. <property>
  60. <name>javax.jdo.option.ConnectionPassword</name>
  61. <value>password</value>
  62. </property> 2、客户端配置
  63. <property>
  64. <name>hive.metastore.local</name>
  65. <value>false</value>
  66. </property>
  67. <property>
  68. <name>hive.metastore.uris</name>
  69. <value>thrift://192.168.0.101:9083</value>
  70. </property>
  71. 在使用hive开始前,如果mysql是部署在远端且 hive.metastore.local=false 则需要启动hive的metadata服务
  72. $ hive --service metastore
  73. 客户端使用hive命令即可
  74. root@local:~$ hive
  75. hive> show tables;
  76. OK
  77. Time taken: 0.7 seconds
  78. hive>

人气教程排行