公司建立数仓,hive是必不可少的,hive是建立在hadoop基础上的数据库,前面已经搭建起了hadoop高可用,要学习hive,先从搭建开始,下面梳理一下hive搭建过程
1.下载hive安装包 ,下载地址:https://hive.apache.org/downloads.html
找到自己hadoop对应的版本下载安装,我这里下载的是 apache-hive-2.3.6-bin.tar.gz
2.安装hive,将安装包解压到/opt/soft下,并建立软链接
tar -zxvf apache-hive-2.3.6-bin.tar.gz -C /opt/soft/ cd /opt/soft mv apache-hive-2.3.6-bin hive-2.3.6 ln -s hive-2.3.6 hive
3.配置环境变量/etc/profile
vim /etc/profile
#hive export HIVE_HOME=/opt/soft/hive export PATH=$PATH:$HIVE_HOME/bin
保存后别忘记编译一下
source /etc/profile
4.配置hive配置文件,hive元数据默认存储到derby数据库中,我们这里使用mysql来存储,hive-site.xml配置信息较多建议下载到windows下修改,然后再传上去
首先复制默认的配置文件模板,里面已经包含hive所有的默认配置信息
cp hive-default.xml.template hive-site.xml
修改hive-site.xml配置文件,将元数据存放数据库改为mysql,在hive-site.xml中找到下列属性,修改为:
javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver Driver class name for a JDBC metastore javax.jdo.option.ConnectionURL jdbc:mysql://192.168.118.1:3306/hive2 JDBC connect string for a JDBC metastore. To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL. For example, jdbc:postgresql://myhost/db?ssl=true for postgres database. javax.jdo.option.ConnectionUserName root Username to use against metastore database javax.jdo.option.ConnectionPassword 111111 password to use against metastore database
数据库驱动为mysql驱动com.mysql.jdbc.Driver,URL改为mysql的hive2(自定义)数据库,用户名密码为自己数据库对应的用户名密码
修改hive配置的一些目录,指定到自己选择的目录,搜索以 ${system 开头的 value 替换为自己的目录,我这里替换为:/home/hdfs/hive下相关目录
hive.exec.local.scratchdir /home/hdfs/hive Local scratch space for Hive jobs hive.downloaded.resources.dir /home/hdfs/hive/downloads Temporary local directory for added resources in the remote file system. hive.querylog.location /home/hdfs/hive/querylog Location of Hive run time structured log file hive.server2.logging.operation.log.location /home/hdfs/hive/server2_logs Top level directory where operation logs are stored if logging functionality is enabled
修改权限验证为false
hive.server2.enable.doAs false Setting this property to true will have HiveServer2 execute Hive operations as the user making the calls to it.
5.既然修改元数据存放在mysql库里,就需要将mysql驱动包放入到hive/lib中,注意mysql版本和驱动包一致
mv mysql-connector-java-8.0.18.jar /opt/soft/hive/lib/
6.在mysql数据库中创建hive2库
7.初始化hive的元数据(表结构)到mysql中。
cd /opt/soft/hive/bin
schematool -dbType mysql -initSchema
出现如下信息,代表成功
也可以查看mysql中hive2库,所有表初始化完成
8.启动hadoop,如果没有安装可以参考:centos7搭建hadoop2.10高可用(HA)
start-all.sh
9.启动hive
hive
查看目前只有default数据库
创建数据库:
create database myhivedb2;
查看创建的mysqhivedb2已经出来了
我们查一下hdfs中是否创建了对应的目录
hdfs dfs -ls -R /user/hive/
也可以查看mysql中hive2库的dbs表:
至此hive环境搭建完成