Ubuntu安装Hive,并使用Mysql作为元数据库

版本信息:

Ubuntu:16.04

JDK:1.8.0_144

Hadoop:2.7.4

Hive:2.1.1

MySQL:5.7.22

今天捣鼓了一下午关于Hadoop集群安装Hive,遇到了一些问题,在此记录下来。

在安装Hive之前,需要确保JDK,Hadoop安装完毕,在此不做赘述,网上教程一大堆。

1.安装MySQL:

这个安装很简单,因为我已经是登录root账户,所以直接shell依次键入:

(1)sudo apt-get install mysql-server

(2)sudo apt-get install mysql-client

(3)sudo apt-get install libmysqlclient-dev

(4)sudo apt-get install libmysql-java

然后将/usr/share/java/目录中的mysql-connector-java-5.1.38.jar拷贝出来,留作备用。

2.下载Hive,我这里直接下载的是apache官方版本,传送门:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/

选择下载

并解压,同时配置环境变量:

export HIVE_HOME=‘自己的安装位置’

export PATH=$HIVE_HOME/bin:$PATH

3.配置Hive:

在$HIVE_HOME/conf目录下:

cp hive-env.sh.template hive-env.sh  

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

cp hive-log4j2.properties.template hive-log4j2.properties

对hive-env.sh进行修改,添加内容:

exportJAVA_HOME=/home/xqshi/Downloads/hadoop/jdk1.8.0_91  

exportHIVE_HOME=/home/xqshi/Downloads/hadoop/apache-hive-2.1.1-bin  

exportHADOOP_HOME=/home/xqshi/Downloads/hadoop/hadoop-2.8.0  

对hive-site.xml进行修改:

  

javax.jdo.option.ConnectionURL  

jdbc:mysql://localhost:3306/hive  

JDBC connect string for a JDBC metastore  


javax.jdo.option.ConnectionDriverName  

com.mysql.jdbc.Driver  

Driver class name for a JDBC metastore  


javax.jdo.option.ConnectionUserName  

数据库用户名  

Username to use against metastore database  


javax.jdo.option.ConnectionPassword  

数据库密码  

password to use against metastore database  


#下面的部分不配置会报错  

hive.exec.local.scratchdir  

自定义目录  

Local scratch space for Hive jobs  

  

hive.downloaded.resources.dir  

自定义目录  

Temporary local directory for added resources in the remote file system.  

  

hive.querylog.location  

自定义目录  

Location of Hive run time structured log file  

  

hive.server2.logging.operation.log.location  

自定义目录/operation_logs  

Top level directory where operation logs are stored if logging functionality is enabled  

上面最关键的是:不能自己脑洞大开,把localhost换成自己的主机映射,因为我自己就在这个地方卡了大半个下午,查了很多资料都解决不了,结果改成localhost反而就行了,应该是因为接下来的关于创建mysql中hive账户的原因。

4.修改hive-log4j2.properties:

hive.log-dir=自定义目录/logs

5.登录mysql,创建hive账户:

mysql -u root -p 

create user 'hive'@'%' identified by 'hive';                      // 创建账户hive,并设置密码为hive

grant all privileges on *.* to 'hive'@'%' with grant option;      // 将所有权限赋予hive

flush privileges;                                                 // 刷新权限

select user,host from mysql.user;                                 // 在mysql中的用户里查找所有用户和名称,可以看到其他的都是loca                                                                     lhost,其中%代表所有服务都可以连接,不仅仅是本地才能连接

exit;

6.重启mysql,并登录hive账户,并创建database:

    service mysql restart

mysql -u hive -p 

create database hive_metadata;                                    // 建立hive专属元数据库

show databases;

7.将第1步中的mysql-connector-java-5.1.38.jar拷贝到$HIVE_HOME/lib下

8.在HDFS上创建/tmp和/user/hive/warehouse,并赋予写权限:

hdfs dfs -mkdir /tmp 

hdfs dfs -mkdir /user/hive/warehouse

hdfs dfs -chmod g+w /tmp

hdfs dfs -chmod g+w /user/hive/warehouse

9.Hive2需要对元数据库进行初始化:

bin/schematool -dbType mysql -initSchema

10.初始化后就可以启动hive了,运行hive:

bin/hive

运行成功,键入:

hive> show databases;

OK

default

至此,在Ubuntu上安装Hive和MySQL完成。

你可能感兴趣的:(Ubuntu安装Hive,并使用Mysql作为元数据库)