hive安装与配置

背景:

新工作需要用到hive,因此在本机安装一个hive来进行学习。之前已成功安装配置好hadoop分布式了,其中创建了一个专门hadoop用户,本次hive的安装与配置也是在这个用户下进行。(因为ubuntu的~/.bashrc这个环境变量文件是基于某个用户的,用别的用户,之前配置的hadoop、java环境就不生效了。)

hive下载(官方下载地址,这里我下载了最新的hive-3.1.1): http://mirror.bit.edu.cn/apache/hive/ 

1、安装配置mysql

Hive元数据默认保存在内嵌的Derby数据库中,只能允许一个会话连接,只适合简单的测试。实际生产环境中不使用,为了支持多用户会话,所以配置mysql来存储hive元数据。

1.1、执行 sudo apt-get install mysql-server 进行安装mysql,安装过程中会让你设置mysql的用户名跟密码。

1.2、安装完之后输入 mysql -u 用户名 -p  进入mysql的shell界面(用户名如果安装的时候没有设置,默认是root)

1.3、创建hive数据库,用来保存hive元数据。

命令:create database hive;

查看是否创建:show databases;

1.4、进入hive数据库,创建hadoop用户,并授权所有表权限给hadoop用户。

切换用户:use hive;

新建用户:create user 'hadoop'@'%' identified by 'mysql';

授权:grant all privileges on *.* to 'hadoop'@'%' with grant option;

刷新权限表: flush privileges;

需要注意的是,在ubuntu系统里,默认情况下MySQL只允许本地登录,所以需要修改配置文件将地址绑定注释。

执行修改命令:sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

找到 # bind-address         = 127.0.0.1    注释掉这一行就可以啦,修改后保存不成功修改权限就可以了(sudo chmod 777 mysqld.cnf)。

2、hive 的安装与配置

mysql的配置还没结束,需要安装hive之后,修改hive文件才能完成设置mysql为hive的默认数据库。

2.1、新建一个安装hive的文件夹

命令:sudo mkdir /opt/hive

将hive安装包放在这个文件夹,然后解压

解压命令:tar -zxvf apache-hive-3.1.1-bin.tar.gz

2.2、设置环境变量:

命令:vi /etc/profile

在文末加入下面两句:

export HIVE_HOME=/opt/hive/apache-hive-3.1.1-bin

export PATH=$PATH:$HIVE_HOME/bin

然后执行:source /etc/profile

在执行:hive --version 就可以看到hive 的版本了

2.3、修改hive-site.xml文件

进入conf文件: cd /opt/hive/apache-hive-3.1.1-bin/conf

将 hive-default.xml.template复制成hive-site.xml:cp hive-default.xml.template hive-site.xml

然后修改hive-site.xml文件:vi hive-site.xml

然后打开hive-site,然后分别搜索javax.jdo.option.ConnectionURL,javax.jdo.option.ConnectionDriverName,javax.jdo.option.ConnectionUserName,javax.jdo.option.ConnectionPassword,hive.metastore.schema.verification这五个地方按照下面修改对应的<name> 的值:

 

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://localhost:3306/hive?serverTimezone=UTC</value>

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.cj.jdbc.Driver</value>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>hadoop</value>  <!-- 这里是mysqlhadoop的用户名 -->

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>mysql</value> <!-- 这里是mysqlhadoop的密码 -->

</property>

<property>

<name>hive.metastore.schema.verification</name>

<value>false</value>

</property>

 

2.3.1 然后这里需要配置下mysql的jdbc驱动,才能是hive链接上mysql数据库

到官网下载对应系统版本的jdbc: https://dev.mysql.com/downloads/connector/j/

2.3.2 这里下载的是.deb文件,需要对其压缩成jar 文件,下载后上传到任意目录,然后执行:

sudo dpkg -i mysql-connector-java_8.0.16-1ubuntu16.04_all.deb

2.3.4  压缩之后到/usr/share/java下可以找到相应的mysql-connector-java-8.0.16.jar,然后将其目录添加到CLASSPATH中(vi ~/.bashrc)。

2.3.5  将该jar包复制到$HIVE_HOME/lib目录下,cp mysql-connector-java-8.0.16.jar $HIVE_HOME/lib

 

 

2.4、修改hive-env.sh

还是在conf目录下执行:

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

vi hive-env.sh

将hadoop的路径放在hadoop_home上。

 

2.5 初始化hive与mysql

2.3和2.4中配置是将mysql与hive相连起来,让mysql存储hive的元数据。配置后之后需要对hive初始化。进入/opt/hive/apache-hive-3.1.1-bin/bin

执行schematool -dbType mysql -initSchema,出现下面第二张图内容则初始化成功,配置也就没问题了。

 

2.6、运行hive

启动 meta store服务: nohup hive --service metastore > metastore.log 2>&1 &

启动远程访问:  nohup hive --service hiveserver2 > hiveserver2.log 2>&1 &

再执行:jps 就可以看到hive的进程了

2.7、检查hive跟mysql的同步性

这里是检查hive的元数据是否存在与自己创建mysql的hadoop用户里了。

直接执行 hive,成功后就出现hive的shell界面了

在hive创建一张空表

然后去mysql 的hive库下的hadoop用户查看这张表的创建。

可以看出,在mysql可以看到t1这表的创建情况,说明mysql跟hive已经联通。

 

3、遇到的问题

将 hive-default.xml.template复制成hive-site.xml后,hive-site.xml文件第3210行,存在特殊字符,红宽的字符去掉。

更多常见的问题可参考: https://blog.csdn.net/ge_gewu/article/details/85327468

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值