本文介绍brew install hive并修改默认的metastore存储方案,改Derby数据库为mysql的方法以及可能遇到的问题的解决方案。
1. 通过homebrew安装hive
|
1
|
brew install hive |
2. 添加hadoop和hive的环境变量
|
1
2
3
4
5
6
|
sudo vim ~/.bash_profilesource ~/.bash_profile |
3. 下载mysql connector
|
1
2
3
|
curl -L ‘http://www.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.22.tar.gz/from/http://mysql.he.net/‘ | tar xzsudo cp mysql-connector-java-5.1.15/mysql-connector-java-5.1.22-bin.jar /usr/local/Cellar/hive/hive.version.no/libexec/lib/ |
4. 创建mysql metastore
|
1
2
3
4
|
mysql> CREATE DATABASE metastore;mysql> USE metastore;mysql> CREATE USER ‘hiveuser‘@‘localhost‘ IDENTIFIED BY ‘password‘;mysql> GRANT SELECT,INSERT,UPDATE,DELETE,ALTER,CREATE ON metastore.* TO ‘hiveuser‘@‘localhost‘; |
5. 配置hive的配置文件
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
cp hive-default.xml.template hive-site.xml#添加或者编辑如下内容<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore</value></property><property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value></property><property> <name>javax.jdo.option.ConnectionUserName</name> <value>hiveuser</value></property><property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value></property><property> <name>datanucleus.fixedDatastore</name> <value>false</value></property> |
6. 测试hive是否工作
|
1
2
3
|
$ hive;hive > show tables;hive> create table temp_table temp_col string; |
7. Revoke few permissions on the mysql metastore
|
1
2
|
$ mysqlmysql> REVOKE ALTER,CREATE ON metastore.* FROM ‘hiveuser‘@‘localhost‘; |
9. Further troubleshooting :
(a) If you get a bin log error saying statement format is not support. Login to your mysql console as root
$ mysql -uroot mysql > SET GLOBAL binlog_format = ‘ROW‘;
(b) You could also try reading the logs as follows. Logs can be emitted to the bash prompt while running hive by setting hive.root.logger to INFO,console.
$ hive -hiveconf hive.root.logger=INFO,console
(c)You could also read the raw hive logs which is usually located at /tmp/user_name/hive.log
原文:http://www.cnblogs.com/ToDoToTry/p/5349753.html