前面一节我们了解了通过beeline访问hiveserver服务,进而访问到元数据,这一节我们使用hive访问metastore服务。所谓metastore,就是hive的元数据,通过该元数据,我们就能访问到真正的数据本身。元数据默认使用内置deby数据库存储,我们也可以把元数据放到mysql。
1、前提约束
- 使用mysql存储hive元数据,假设mysql服务所在的机子ip为192.168.100.141,账号密码为hive/hive,并允许远程登录
https://www.jianshu.com/p/c0ea1249958e - 再创建一个新的服务器,假设机子ip为192.168.100.142
- 两台机子之间以设置免密登录
2、操作步骤
- 在192.168.100.142服务器中解压hive安装包,并配置环境变量等:
https://www.jianshu.com/p/755944f01fab
假设hive的根路径在“/root/apache-hive-0.14.0-bin”下。 - 修改192.168.100.142服务器中hive的配置文件
vim /root/apache-hive-0.14.0-bin/conf/hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.100.141:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<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>hive</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://192.168.100.142:9083</value>
<description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>
- 在192.168.100.142服务器中拷贝mysql驱动mysql-connector-java-5.1.47.jar到/root/apache-hive-0.14.0-bin/lib/
- 在192.168.100.142服务器中启动metastore
/root/apache-hive-0.14.0-bin/bin/hive --service metastore
注意:不要关闭窗口
- 在192.168.100.142服务器中打开新的窗口,使用hive访问上面启动的服务
/root/apache-hive-0.14.0-bin/bin/hive
这个时候的组件访问路径是hive--> metaStore server-->MySQL。我们此刻是把metastore服务和mysql服务部署在不同机子上的。
网友评论