mac OSX 上 brew install hive
本文介绍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_profile export HADOOP_HOME= /usr/local/Cellar/hadoop/hadoop .version.no export HIVE_HOME= /usr/local/Cellar/hive/hive .version.no /libexec source ~/.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 xz sudo 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. 创建mysqlmetastore 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 cd /usr/local/Cellar/hive/hive .version.no /libexec/conf 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 $ mysql mysql> 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 (d)If you still have any errors, feel free to comment. 在配置完成后,可能遇到的问题解决方案: 一,Reference error 解决方案: 使用sequel pro, 修改hive用户的权限,添加Reference的global权限。 二,启动hive时遇到的" Caused by: java.net.URISyntaxException: Relative path in absolute URI: {system:java.io.tmpdir%7D/{system:java.io.tmpdir%7D/%7Bsystem:user.name%7D " 解决方案: 修改hive-site.xml 配置中的以下key value即可: <name>hive.exec.scratchdir</name> <value>/tmp/hive-${user.name}</value> <name>hive.exec.local.scratchdir</name> <value>/tmp/${user.name}</value> <name>hive.downloaded.resources.dir</name> <value>/tmp/${user.name}_resources</value> <name>hive.scratch.dir.permission</name> <value>733</value> restart hive metastore and hiveserver2 本文转自fandyst博客园博客,原文链接:http://www.cnblogs.com/ToDoToTry/ ,如需转载请自行联系原作者