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/

选择下载

apache-hive-2.1.1-bin.tar.gz

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

  1. export HIVE_HOME=‘自己的安装位置’
  2. export PATH=$HIVE_HOME/bin:$PATH

3.配置Hive:

在$HIVE_HOME/conf目录下:

  1. cp hive-env.sh.template hive-env.sh  
  2. cp hive-default.xml.template hive-site.xml  
  3. cp hive-log4j2.properties.template hive-log4j2.properties

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

  1. export JAVA_HOME=/home/xqshi/Downloads/hadoop/jdk1.8.0_91  
  2. export HIVE_HOME=/home/xqshi/Downloads/hadoop/apache-hive-2.1.1-bin  
  3. export HADOOP_HOME=/home/xqshi/Downloads/hadoop/hadoop-2.8.0  

对hive-site.xml进行修改:

  1. <property>  
  2.     <name>javax.jdo.option.ConnectionURL</name>  
  3.     <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true$amp;useSSL=false</value>  
  4.     <description>JDBC connect string for a JDBC metastore</description>  
  5. </property>  
  6. <property>  
  7.     <name>javax.jdo.option.ConnectionDriverName</name>  
  8.     <value>com.mysql.jdbc.Driver</value>  
  9.     <description>Driver class name for a JDBC metastore</description>  
  10. </property>  
  11. <property>  
  12.     <name>javax.jdo.option.ConnectionUserName</name>  
  13.     <value>数据库用户名</value>  
  14.     <description>Username to use against metastore database</description>  
  15. </property>  
  16. <property>  
  17.     <name>javax.jdo.option.ConnectionPassword</name>  
  18.     <value>数据库密码</value>  
  19.     <description>password to use against metastore database</description>  
  20. </property>  
  21.   
  22. #下面的部分不配置会报错 
  23. <property>  
  24.     <name>hive.exec.local.scratchdir</name>  
  25.     <value>自定义目录</value>  
  26.     <description>Local scratch space for Hive jobs</description>  
  27.   </property>  
  28. <property>  
  29.     <name>hive.downloaded.resources.dir</name>  
  30.     <value>自定义目录</value>  
  31.     <description>Temporary local directory for added resources in the remote file system.</description>  
  32. </property>  
  33. <property>  
  34.     <name>hive.querylog.location</name>  
  35.     <value>自定义目录</value>  
  36.     <description>Location of Hive run time structured log file</description>  
  37. </property>  
  38. <property>  
  39.    <name>hive.server2.logging.operation.log.location</name>  
  40.     <value>自定义目录/operation_logs</value>  
  41.     <description>Top level directory where operation logs are stored if logging functionality is enabled</description>  
  42. </property> 

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

4.修改hive-log4j2.properties:

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

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

  1. mysql -u root -p 
  2. create user 'hive'@'%' identified by 'hive';                      // 创建账户hive,并设置密码为hive
  3. grant all privileges on *.* to 'hive'@'%' with grant option;      // 将所有权限赋予hive
  4. flush privileges;                                                 // 刷新权限
  5. select user,host from mysql.user;                                 // 在mysql中的用户里查找所有用户和名称,可以看到其他的都是loca                                                                     lhost,其中%代表所有服务都可以连接,不仅仅是本地才能连接
  6. exit;

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

    service mysql restart

  1. mysql -u hive -p 
  2. create database hive_metadata;                                    // 建立hive专属元数据库
  3. show databases;

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

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

  1. hdfs dfs -mkdir /tmp 
  2. hdfs dfs -mkdir /user/hive/warehouse
  3. hdfs dfs -chmod g+w /tmp
  4. hdfs dfs -chmod g+w /user/hive/warehouse

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

  1. bin/schematool -dbType mysql -initSchema

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

  1. bin/hive

运行成功,键入:

hive> show databases;

OK

default

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值