hive调试信息显示模式:html
./hive -hiveconf hive.root.logger=DEBUG,consolejava
很是有用。mysql
默认状况下,Hive元数据保存在内嵌的 Derby 数据库中,只能容许一个会话链接,只适合简单的测试。为了支持多用户多会话,则须要一个独立的元数据库,咱们使用 MySQL 做为元数据库,Hive 内部对 MySQL 提供了很好的支持,配置一个独立的元数据库须要增长如下几步骤:
第一步:安装MySQL服务器端和MySQL客户端,并启动MySQL服务。
此步省略,具体请看http://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.htmlsql
第二步:安装Hive
此步省略,具体请看http://www.cnblogs.com/linjiqin/archive/2013/03/04/2942402.html
第三步:为Hive创建相应的MySQL帐户,并赋予足够的权限,执行命令以下:shell
hadoop@ubuntu:~$ mysql -uroot -pmysql mysql> CREATE USER 'hive' IDENTIFIED BY 'mysql'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION; mysql> flush privileges;
默认状况下Mysql只容许本地登陆,因此须要修改配置文件将地址绑定给注释掉:数据库
root@ubuntu:~# sudo gedit /etc/mysql/my.cnf
找到以下内容:ubuntu
# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 <---注释掉这一行就能够远程登陆了
重启mysql服务:服务器
sudo service mysql restart
第四步:创建 Hive 专用的元数据库,记得建立时用刚才建立的“hive”帐号登录。less
mysql> exit; hadoop@ubuntu:~$ mysql -uhive -pmysql mysql> create database hive;
第五步:在Hive的conf目录下的文件“hive-site.xml”中增长以下配置:oop
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.11.157:3306/hive?characterEncoding=UTF-8</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>mysql</value> </property> </configuration>
从前面咱们知道咱们的“hive-site.xml”是一个“hive-default.xml.template”的一个拷贝,里面的配置参数很是之多,可是并非咱们都须要的,咱们知道,Hive 系统会加载两个配置文件一个默认配置文件“hive-default.xml”,另外一个就是用户自定义文件“hive-site.xml”。当“hive-site.xml”中的配置参数的值与“hive-default.xml”文件中不一致时,以用户自定义的为准。因此咱们就把咱们不须要的参数都删除掉,只留下上面所示的内容。
备注:其实修改这里的配置文件若是在Linux下面进行则很是麻烦,尽然咱们都创建了FTP了,为什么不用,因此把Master.Hadoop上面的这个配置文件下载下来,按照要求进行修改,这样的文件在Windows进行操做是很是方便的,弄好以后在上传上去,覆盖原来的便可。
第六步:把MySQL的JDBC驱动包复制到Hive的lib目录下。
JDBC驱动包的版本:mysql-connector-java-5.1.18-bin.jar
第七步:启动 Hive Shell, 执行“show tables;”命令,若是不报错,代表基于独立元数据库的 Hive 已经安装成功了。
hadoop@ubuntu:~$ hive Logging initialized using configuration in file:/home/hadoop/hive-0.9.0/conf/hive-log4j.properties Hive history file=/tmp/hadoop/hive_job_log_hadoop_201303041631_450140463.txt hive> show tables; OK Time taken: 1.988 seconds hive>
第八步:验证Hive配置是否有误,进入Hive的shell新建表,在MySQL的Hive数据库中能够看到相应的元数据库信息。
1)在Hive上创建数据表
hive> CREATE TABLE xp(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
2)从 MySQL 数据库上查看元数据信息
用到的 SQL 语句:
use hive; //使用 hive 数据库库
show tables;//显示 hive 数据库中的数据表
select * from TBLS;//查看 hive 的元数据信息
到此Hive集成Mysql做为元数据已完成。
远程模式安装
远程模式安装是把 metastore 配置到远程机器上,能够配置多个。在独立模式的基础上须要在 hive-site.xml 文件中增长的配置项以下:
<property> <name>hive.metastore.local</name> <value>local</value> </property> <property> <name>hive.metastore.uris</name> <value>uri1,uri2,... </value>//可配置多个 uri <description>JDBC connect string for a JDBC metastore</description> </property>