博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mac OSX 上 brew install hive
阅读量:6005 次
发布时间:2019-06-20

本文共 2880 字,大约阅读时间需要 9 分钟。

本文介绍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
.
export 
HIVE_HOME=
/usr/local/Cellar/hive/hive
.
/libexec
 
source 
~/.bash_profile

3. 下载mysql connector

1
2
3
curl -L 
'' 
| 
tar 
xz
 
sudo 
cp 
mysql-connector-java-5.1.15
/mysql-connector-java-5
.1.22-bin.jar 
/usr/local/Cellar/hive/hive
.
/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
cd 
/usr/local/Cellar/hive/hive
.
/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 -urootmysql > 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 

本文转自博客园博客,原文链接:    ,如需转载请自行联系原作者

你可能感兴趣的文章
Express 文档(目录)
查看>>
用mpvue实现一个简单的demo
查看>>
node笔记(二)-fs模块
查看>>
定时获取来自服务器的消息
查看>>
高级 Angular 组件模式 (7)
查看>>
《阿里巴巴 Java开发手册》读后感
查看>>
Hello Vue: Vue快速入门教程
查看>>
笔记 | Node.js基础开发指南
查看>>
区块链概念 That You Must Know 第二期
查看>>
css伪类和伪元素的学习
查看>>
达到1000声望以后
查看>>
spring webflux文件上传下载
查看>>
【365天】跃迁之路——程序员高效学习方法论探索系列(实验阶段123-2018.02.05)...
查看>>
我的第一个小程序(Discuz! + 微信小程序)
查看>>
解决Genymotion无法拖拽的问题
查看>>
前端自动化构建之Gulp的使用(学习笔记)
查看>>
js递归原理之return
查看>>
【340天】每日项目总结系列078(2018.01.11)
查看>>
如何禁止使用bottomsheetdialogfragment拖动?
查看>>
CentOS6.5下安装Python3.6.2
查看>>