Hive学习之配置MySQL为Metastore
来源:互联网 发布:c语言四舍五入函数 编辑:程序博客网 时间:2024/05/18 18:20
Hive默认情况下以内嵌模式使用Derby数据库做为metastore,该模式最大的缺陷是不支持多个客户端同时连接到metastore上,因此只适合用于学习测试的目的,要在实际生产上使用Hive需要将metastore配置为本地模式或者远程模式,现在就介绍如何以本地模式配置metastore,使用的数据库为MySQL5.6.19。在进行配置之前先要安装MySQL数据库,一般情况下Linux系统中已经安装了MySQL(至少我的系统中已经安装了),但往往数据库版本比较低,为了使用MySQL的最新版本需要先卸载之前的版本。可以使用下面的语句查询已经安装的MySQL:
rpm –qa | grep –i mysql
然后根据查询结果使用下面的语句删除MySQL:
rpm -e xxxxx 或者rpm -e --nodeps xxxxx
卸载完成后,使用下面的语句安装MySQL的服务器:
[root@hadoophadoop]# rpm -ivh MySQL-server-5.6.19-1.el6.x86_64.rpmPreparing... ###################################[100%]1:MySQL-server ###################################[100%]A RANDOMPASSWORD HAS BEEN SET FOR THE MySQL root USER !You will find that password in'/root/.mysql_secret'.Also, the account for the anonymous user has beenremoved.##MySQL-5.6.19版本中会为root用户生成一个随机密码,并保存在/root/.mysql_secret中,在使用root用户首次登录时会用到该密码。In addition, you can run:/usr/bin/mysql_secure_installation,which will also give you the option of removing the test database.This is strongly recommended for production servers.##建议在生产中运行/usr/bin/mysql_secure_installation脚本,该脚本可以移除测试数据库,在生成环境中推荐该方式。New default config file was created as /usr/my.cnf and will be used by default by the server when you start it.You may edit this file to change server settings##新的配置文件保存在/usr/my.cnf
安装MySQL客户端的语句及结果如下:
[root@hadoophadoop]# rpm -ivh MySQL-client-5.6.19-1.el6.x86_64.rpmPreparing... ###############################[100%]1:MySQL-client ################################ [100%]
安装完MySQL后,运行下面的语句登录数据库,root用户的密码保存在/root/.mysql_secret中:
mysql –u root –p
输入上述文件中的密码登录数据库,执行下面的语句,修改完root用户的密码后就可以在以后的登录中使用新密码。
mysql> use mysqlERROR 1820(HY000): You must SET PASSWORD before executing this statementmysql> set PASSWORD=PASSWORD('123456');Query OK, 0 rowsaffected (0.12 sec)
在完成了MySQL数据库的安装后,需要创建存储metastore的数据库,或者在连接时创建数据库。先创建数据库hive_db:
create database hive_db;
然后创建metastore数据库的用户,并为该用户分配最大权限:
grant all privileges on hive_db.* to Hadoop identified by ‘hadoop’
做完数据库的配置后,现在需要修改Hive的配置文件。将$HIVE_HOME/conf目录下的hive-default.xml.template复制为hive-site.xml:
cp hive-default.xml.template hive-site.xml
然后修改下面的配置信息,指定使用MySQL做为存储metastore的数据库:
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://Hadoop:3306/hive_db?createDatabaseIfNotExist=true</value> <description>JDBC connect string for aJDBC metastore</description></property><property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for aJDBC metastore</description></property><property> <name>javax.jdo.option.ConnectionUserName</name> <value>hadoop</value> <description>username to use againstmetastore database</description></property><property> <name>javax.jdo.option.ConnectionPassword</name> <value>hadoop</value> <description>password to use againstmetastore database</description></property>
修改完配置文件后,将连接MySQL的驱动程序包放置到CLASSPATH中,可以放置到${HIVE_HOME}/lib下,然后成功启动Hive。
使用hadoop用户登录到MySQL中,进入hive_db数据库,执行show tables语句,可以发现存在许多表,比如DBS、TBLS等,如下图所示:
可以查询Hive中存在哪些数据库,如下所示:
至此,配置MySQL以本地模式存储metastore已经完成,上面的图示也说明了这点。当然在实际执行过程中,也出现了一些问题,如没有将MySQL驱动程序加到CLASSPATH中,MySQL的安装问题,其中最大的问题不是来自Hive的,而是安装MySQL,这也说明在MySQL正常的情况下,配置其为metastore的数据库还是很简单的。
- Hive学习之配置MySQL为Metastore
- Hive学习之配置Oracle为Metastore及问题
- 【hive】mysql metastore 配置
- Hive metastore MYSQL配置
- 配置HIVE的Metastore为MySQL操作实例
- [spark]spark/hive配置metastore为postgresql
- Hive学习之Metastore及其配置管理
- Hive学习之Metastore及其配置管理
- Hive学习之Metastore及其配置管理
- Hive学习之Metastore及其配置管理
- hive配置远程metastore
- hive metastore ha 配置
- (大数据之hive)hive利用mysql存储metastore
- Hive 之使用mysql作为hive的metastore
- 搭建hive的环境,以mysql为Metastore
- Hive-2.1.1使用MySQL作为metastore配置过程
- Hive之——metastore三种配置方式
- hive使用mysql保存metastore
- V2010对话框窗口大小可拉伸设置
- PHP chmod() 函数改变文件模式
- 如何将数据库中的表导入到PowerDesigner中
- 马云控股“文化中国”暗藏啥玄机?
- Android开发新“神器”:模拟器之王genymotion![转]
- Hive学习之配置MySQL为Metastore
- Android Audio相关 AudioFlinger类
- JAVA多线程并发库高级应用 (一)
- 四极管:室内定位技术(一)
- static关键字使用注意事项
- 图表控件anyChart和FusionCharts的flash透明
- 基于线程池模型的讨论与完整代码演示
- C++基础知识(一)
- 【小超_U3D】Android环境的配置和Unity导出APK