HIve的安装与配置 

 

本文中hive版本2.3.2,默认环境中jdk已经正常安装,hadoop集群正常启动

1.1下载hive安装文件

可以从Apache官网下载安装文件,即http://mirror.bit.edu.cn/apache/hive/

由于hive是默认将元数据保存在本地内置的Derby数据库中,Derby是单用户模式,不支持会话连接(具体体现:当你进行切换目录启动的时候需要重新元数据库的初始化工作,原来的目录下的初始化的元数据访问不了),本人选择MySQL作为元数据存储。个人百度网盘 内附hive2.3.2安装包和源码以及MySQL驱动包链接:https://pan.baidu.com/s/1uKzgIBSjnL_ZPGEL-VhpVA 密码:kdci

本文使用hive版本2.3.2,

hive注册不了 hive账号必须绑定手机吗_hive注册不了

解压安装文件到指定的文件夹 tar -xvzf apache-hive-2.3.2-bin.tar.gz  -C  /home/hadoop/apps/

hive注册不了 hive账号必须绑定手机吗_hive注册不了_02

2.1配置相关文件和环境变量

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

hive注册不了 hive账号必须绑定手机吗_hive注册不了_03

配置完成可输入hive  --version 查看版本

hive注册不了 hive账号必须绑定手机吗_mysql_04

修改hive配置文件 /home/hadoop/apps/apache-hive-2.3.2-bin/conf 路径下

初次解压发现hive-site.xml配置文件并没有,此时需要我们自己创建并配置hive-site.xml

hive-site.xml

<configuration>

                    <property>

                    <!-- 元数据库的链接地址 mysql -->

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

                    <value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true</value>

                    <description>JDBC connect string for a JDBC metastore</description>

                    <!-- 如果 mysql 和 hive 在同一个服务器节点,那么请更改 hadoop02 为 localhost -->

                    </property>

                    <property>

                    <!-- 指定mysql驱动 -->

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

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

                    <description>Driver class name for a JDBC metastore</description>

                    </property>

                    <property>

                    <!-- 指定mysql用户名 -->

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

                    <value>root</value>

                    <description>username to use against metastore database</description>

                    </property>

                    <property>

                    <!-- 指定mysql密码 请输入自己的MySQL连接密码 -->

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

                    <value>password</value>

                    <description>password to use against metastore database</description>

                    </property><property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>hive default warehouse, if nessecory, change it</description>
</property> 

                    </configuration>

 

hive-site.xml详细图解:

hive注册不了 hive账号必须绑定手机吗_hive_05

hive注册不了 hive账号必须绑定手机吗_hive注册不了_06

 将MySQL的驱动添加到hive安装目录的lib下  mysql-connector-java-5.1.40-bin (ps:个人网盘上有,链接在上面,也可自行去下载)

元数据库的初始化    schematool -dbType mysql -initSchema  (ps:也可切换到hive的bin目录下 ./schematool -dbType mysql -initSchema)

 

3.1hive的启动 

运行hive之前要确保hadoop集群启动和MySQL服务启动正常开启的情况下  

3.1hive的启动 

运行hive之前要确保hadoop集群启动和MySQL服务启动正常开启的情况下  

3.1.1本地hive启动 CLI方式(若hive当前节点使用,此启动方式即可)

由于配置过环境变量,可以直接在命令行中输入hive  本地启动命令 hive

hive注册不了 hive账号必须绑定手机吗_mysql_07

 3.1.2 HiveServer2/beeline 客户端方式启动

由于hive启动,hadoop集群中其他节点是无法访问的,只能在hive安装的当前节点使用,若需要在其他节点操作hive,则可以用HiveServer2/beeline方式,下面就简单介绍下 HiveServer2/beeline

第一:修改 hadoop 集群的 hdfs-site.xml 配置文件:加入一条配置信息,表示启用 webhdfs 

hive注册不了 hive账号必须绑定手机吗_hive注册不了_08

第二:修改 hadoop 集群的 core-site.xml 配置文件:加入两条配置信息:表示设置 hadoop 的代理用户 

hive注册不了 hive账号必须绑定手机吗_mysql_09

hive注册不了 hive账号必须绑定手机吗_hive注册不了_10

配置解析: hadoop.proxyuser.hadoop.hosts 配置成*的意义,表示任意节点使用 hadoop 集群的代理用户 hadoop 都能访问 hdfs 集群,hadoop.proxyuser.hadoop.groups 表示代理用户的组所属

第一步:先启动 hiveserver2 服务

前台启动方式:hiveserver2

后台启动方式:

nohup hiveserver2 1>/home/hadoop/hiveserver.log 2>/home/hadoop/hiveserver.err &

或者:nohup hiveserver2 1>/dev/null 2>/dev/null &

或者:nohup hiveserver2 >/dev/null 2>&1 &

以上 3 个命令是等价的,第一个表示记录日志,第二个和第三个表示不记录日志 (ps:注意符号&是结尾符,一定要带上,本人刚开始操作的时候经常忘记0.0,提醒一下)

命令中的 1 和 2 的意义分别是: 1:表示标准日志输出 2:表示错误日志输出 如果我没有配置日志的输出路径,日志会生成在当前工作目录,默认的日志名称叫做: nohup.xxx

hive注册不了 hive账号必须绑定手机吗_mysql_11

第二步:然后启动 beeline 客户端去连接:

beeline -u jdbc:hive2://hadoop01:10000 -n hadoop    -u : 指定元数据库的链接信息 -n : 指定用户名和密码

不过我比较习惯常用的是先执行 beeline 然后按图所示输入:!connect jdbc:hive2://hadoop01:10000 按回车,然后输入用户名,这个 用户名就是安装 hadoop 集群的用户名,情形如下图

hive注册不了 hive账号必须绑定手机吗_hive_12

接下来便可以做 hive 操作

还有第三种hive启动方式 Web UI ,配置相对繁琐,本文不做过多介绍,有兴趣的朋友可以去了解一下。

4.1测试hive

这个部分比较简单就不截图了,附上一组小命令,自行检测。 

show databases;

                create database test_work; //新建一个测试库

                use test_work;

                craete table course(id string);

                insert into table course values("qq");

                exit;

以上正常执行,表明hive已经安装和配置完成。可去hdfs图形界面上查看建的表,访问xxxx.50070

(ps:mysql上只存储hive的元数据,而原始数据是存储在hdfs上的,默认存储路径上面配置hive-site.xml时已有说明,如果没有指定hive.metastore.warehouse.dir属性,则默认值是/user/hive/warehouse)