Hive本地模式安装过程简单总结

前言

安装Hive实属后知后觉,是想使用Apache Atlas展示血缘关系,后来发现需要从Hive中导入元数据才能查看data lineage,故而初步了解Hive,了解Hive主要有三种模式(内嵌、本地和远程),选了本地模式,并使用mysql替代了默认的derby数据库。在参考网上的教程进行实操后出了一些bug,百度搜索后成功安装,现进行简单总结。

Hive是基于Hadoop上的数据仓库,面向主题、集成的、不可更新的,支持OLAP(On-Line Analytical Processing 联机分析处理。不会更新、删除、插入操作,数据都是历史数据)。

Hive的表其实就是HDFS的目录/文件,Hive表存在HDFS的目录上,Hive数据存在HDFS文件中。

安装模式:

  • 内嵌模式:元数据信息被存储在Hive自带的Derby数据库中 ./hive,只允许创建一个连接,多用于Demo演示使用
  • 本地模式:元数据信息被存储在MySQL数据库中,MySQL数据库与Hive运行在同一台物理机器上,多用于开发和测试
  • 远程模式:Hive和MySQL运行在不同的物理机上

准备

安装过程

1. Hadoop集群安装及配置

具体请参考https://blog.csdn.net/qq_38586378/article/details/81352358 中Hadoop集群的搭建

2. mysql安装

yum install mysql

service mysqld start

mysql -u username -p password

create database hivedb;

grant all privileges on hivedb.* to  'root'@'%' identified by 'root';

grant all privileges on hivedb.* to  'root'@'loalhost' identified by 'root';

grant all privileges on hivedb.* to  'root'@'主机名' identified by 'root';

flush privileges;

安装mysql->启动mysql->创建hivedb数据库->给hivedb授权 需要注意的是第一次登录mysql密码为空,我设置的是username和password均为root

3. Hive安装

下载->解压配置环境变量->配置conf->启动hive  我是将hive解压到了/usr/local/src/hive下

3.1 环境变量配置 vi /etc/profile

扫描二维码关注公众号,回复: 10174084 查看本文章
export HIVE_HOME=/usr/local/src/hive
export HIVE_PATH=${HIVE_HOME}/bin

export PATH=${HIVE_PATH}:$PATH

 使环境变量生效 source /etc/profile

3.2 配置conf

      主要是conf中的hive-env.sh和hive-site.xml原本的conf中是没有这两个文件的,将所有结尾为template的去掉template后缀

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

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

   3.2.1 hive-env.sh配置

export HADOOP_HOME=/usr/local/hadoop

export HIVE_CONF_DIR=/usr/local/src/hive/conf

export HIVE_AUX_JARS_PATH=/usr/local/src/hive/lib

   3.2.2 hive-site.xml配置

<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>the driver for JDBC connection</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://master-01:3306/hivedb?createDatabaseIfNotExist=true</value>
  <description>the configuration for JDBC connection</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>root</value>
  <description>the username for database hivedb</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>root</value>
  <description>the password for database hivedb</description>
</property>

     修改hive-site.xml中有关iotmp存储的位置和用户名的替换

     因为其中有多处${system:java.io.tmpdir}和${system:username}所以直接加property对二者进行说明即可

<property>
  <name>system:java.io.tmpdir</name>
  <value>/usr/local/src/hive/iotmp</value>  //iotmp为自行mkdir的目录
</property>
<property>
  <name>system:user.name</name>
  <value>root</value>
</property>

3.3 mysql驱动jar包导入hive的lib中

     具体jar包下载地址:http://central.maven.org/maven2/mysql/mysql-connector-java/

    下载完毕后mv移动到hive对应的lib目录下即可

3.4 初始化Hive在mysql里的脚本

schematool -initSchema -dbType mysql

3.5 测试hive

     bin/hive 不出错出现进入hive模式即为安装运行成功。

     如果想要有web ui界面,需要下载hive 源码src包,进行编译,编译成功后可通过默认的端口9999查看

Bug汇总

开始有hadoop.hivexxx.jar包的bug的时候以为是安装模式的问题,后续试了内嵌模式还是同样的bug,最后发现是hadoop里的jline jar包版本太老了,所以就将hive/lib底下的jline jar包复制到hadoop/share/hadoop/yarn/lib下并rm掉原来的旧版本jar包,重新启动hive即成功。

总结

虽然很多安装网上都有很详细的教程,但是不思考一味地埋头仿照配置是不可取的,需要思考为啥这样配置,这样可以get到配置的某种思想(两个组件要交互,是要有conf底下的xml文件property配置和相应jar包等的导入),以及出现bug要学会查看log日志和error提示,根据提示百度或思考解决bug。

感觉进入大数据领域学习后,很多安装都是各组件的版本不匹配问题导致的bug,所以安装前一定要注意版本匹配问题(组件间的兼容性及使用的jar包版本相同)

在遇到bug时,一定要学会排查,对比教程查看自己操作的遗漏点,以及根据报错信息思考可能是哪块出错尝试解决,焦急发呆盲搜解决不了问题,冷静客观处理方会有好结果~

发布了41 篇原创文章 · 获赞 9 · 访问量 9780

猜你喜欢

转载自blog.csdn.net/qq_38586378/article/details/88429945