< property>
<name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createData baseIfNotExist=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>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>test</value>
<description>password to use against metastore database</description>
</property>
hive-env.sh
·配置Hive的配置文件路径
·export HIVE_CONF_DIR= your path
·配置Hadoop的安装路径
·HADOOP_HOME=your hadoop home
第三部分:安装hive
下载hive安装包 http://mirrors.tuna.tsinghua.edu.cn/apache/hive/
tar -xf hive-0.10.0.tar.gz
将解压后的hive文件放在系统的/usr/local/hive 中。
2)为Hive建立相应的MySQL帐号,并赋予足够的权限
①进入root:mysql -uroot -p;
②创建hive数据库:create database hive;
③创建用户hive,它只能从localhost连接到数据库并可以连接到wordpress数据库:grant all on hive.* to hive@localhost identified by 'hive'。
3)在Hive的conf目录下修改配置文件hive-site.xml,配置文件修改如下
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost: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>
页
启动Hive shell,执行
show tables;
如果不报错,表明基于独立元数据库的Hive已经安装成功了。
查看一下元数据的效果。
在Hive上建立数据表:
CREATE TABLE my(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
show tables;
select name from my;
然后我们以刚刚建立的hive帐号登录MySQL查看元数据信息。
mysql> use hive
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
异常描述:
java.sql.SQLException: Invalid authorization specification, message from server: "Access denied for user 'root'@'localhost' (using password: YES)"
java.sql.SQLException: Syntax error or access violation, message from server: "Access denied for user 'hadoop'@'localhost' to database 'metastore_db'"
解决方法:
这是因为mysql远程访问的权限问题,执行 grant all on *.* to 'hadoop'@'%' identified by 'hadoop'; 即可。
INSERT INTO USER(HOST,USER,PASSWORD) VALUES("localhost","hadoop",PASSWORD("hadoop"));
GRANT ALL PRIVILEGES ON * TO 'hadoop'@'localhost' IDENTIFIED BY 'hadoop' WITH GRANT OPTION;
FLUSH PRIVILEGES;
异常描述:
java.sql.SQLException: Syntax error or access violation, message from server: "Specified key was too long; max key length is 767 bytes"
解决方法:
一般是由于mysql的最大索引长度导致,看了一个人的文章颇有感触下面给出链接:
http://blog.csdn.net/cindy9902/article/details/6215769
1、数据库的字符集除了system为utf8,其他最好为latin1,否则可能出现如上异常。
2、set global binlog_format='MIXED';READ-COMMITTED需要把bin-log以mixed方式来记录
改完上述两种方法后,我还是会出现以上问题,我把mysql的metastore_db里面的所有表删除,hadoop重启,然后重新启动hive之后就能够正常删除表了。