Mac安装Apache Hive-3.2.1

Mac安装Apache Hive-3.2.1教程

安装Hadoop

下载包进行安装,则hadoop需要独立安装

安装Hive

brew安装

1
$ brew install hive

此命令会把hive依赖的hadoop安装,所以就不需要单独进行安装hadoop
该命令默认安装的版本较新,我的hive是3.1.2,hadoop是3.2.1,安装位置:/usr/local/Cellar/hive/

环境变量修改

1
2
3
4
5
$ vim ~/.bash_profile
export HIVE_HOME=/usr/local/Cellar/hive/3.1.2
export PATH="$HIVE_HOME/bin:$PATH"

$ source ~/.bash_profile

使用mysql作为hive元数据存储

在mysql中为hive 创建用户,及初始化数据库
以下在mysql 中操作,注意:这里创建的用户名是 hadoop, 密码 mysql
第一行:创建数据库
第二、三行 创建用户,赋予权限
第四行 权限生效

1
2
3
4
create database hive;
CREATE USER 'hadoop'@'%' IDENTIFIED BY 'mysql';
GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'%' WITH GRANT OPTION;
flush privileges;

查看权限是否已经存储

1
SELECT * FROM mysql.user;

修改配置文件hive-site.xml

修改hive配置文件,我的配置文件位置在 /usr/local/Cellar/hive/3.1.2/libexec/conf
如果不存在hive-site.xml文件,则使用下面这个命令创建一个默认的hive-site.xml

1
$ cp hive-default.xml.template hive-site.xml

修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<configuration>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hadoop</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>mysql
<value>jdbc:mysql://localhost:3306/hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
</configuration>

javax.jdo.option.ConnectionUserName – 连接mysql的账号,hadoop
javax.jdo.option.ConnectionPassword – 连接mysql的密码,mysql
javax.jdo.option.ConnectionURL – 对应上一步创建的数据库,localhost:3306/hive

hadoop中创建hive所需仓库

1
2
3
4
$ $HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
$ $HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse

$HADOOP_HOME – 代表您的hadoop工作目录

hive初始化mysql中的数据库hive

命令

1
$ $HIVE_HOME/bin/schematool -dbType msyql -initSchema

可能出现错误1:java.lang.NoSuchMethodError: com.google.common…

解决方案:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument

可能出现错误2:java.lang.ClassNotFoundException: com.mysql…

解决方案:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

启动Hive的Metastore Server服务进程

1
$ $HIVE_HOME/bin/hive --service metastore &

登录hive客户端

命令

1
$ $HIVE_HOME/bin/ hive 

可能出现的错误1:java.lang.IllegalArgumentException: java.net.URISyntaxException:…

解决方案:Exception in thread “main” java.lang.IllegalArgumentException: java.net.URISyntaxException: