Hive安装与配置部署教程

240次阅读
没有评论

一、环境需求

1.安装部署Zookeeper,Hadoop分布式环境

本实验采用hadoop 2.7.1部署三台大数据处理平台环境。如图所示

Hive安装与配置部署教程

2.解压安装文件 

使用tar命令解压安装包到指定目录,并重命名。

[root@master ~]# cd /opt/software/

[root@master software]# tar -zxvf apache-hive-2.0.0-bin.tar.gz -C /usr/local/src/ # 解压到统一安装目录

[root@master software]#cd /usr/local/src

[root@master src]#mv /usr/local/src/apache-hive-2.0.0-bin /usr/local/src/hive

[root@master src]#chown -R hadoop:hadoop hive

编辑/etc/profile文件。

[root@master src]# cd

[root@master ~]# vi /etc/profile

将以下配置信息添加到/etc/profile文件的末尾。

# set Hive environment
export HIVE_HOME=/usr/local/src/hive  # Hive安装目录
export PATH=$HIVE_HOME/bin:$PATH # 添加将Hive的bin目录
export HIVE_CONF_DIR=$HIVE_HOME/conf #Hive的环境变量

执行source /etc/profile命令,使配置的环境变量在系统全局范围生效。

[root@master ~]# source /etc/profile

以上命令只需要在hive安装的节点操作,本文在master主节点进行Hive部署

二、MySQL安装与启动

1.卸载MariaDB

先查看一下系统上的mariadb

[root@master ~]# rpm -qa | grep mariadb

mariadb-libs-5.5.52-2.el7.x86_64

然后卸载

[root@master ~]# rpm -e –nodeps mariadb-libs-5.5.56-2.el7.x86_64

ps:
rpm -qa 列出所有已安装软件包
rpm -e packagename  删除软件包
rpm -e –nodeps packagename  强制删除软件和依赖包
rpm -q 包名     查询包是否安装
rpm -ivh 包名     安装软件包

步骤二:使用rpm安装mysql

安装的顺序为:

[root@master ~]# cd /opt/software/mysql-5.7.18

[root@master mysql-5.7.18]# rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm

[root@master mysql-5.7.18]# rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm

[root@master mysql-5.7.18]# rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm

[root@master mysql-5.7.18]# rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm

再通过#rpm -qa | grep mysql检查mysql安装情况

Hive安装与配置部署教程

[root@master mysql-5.7.18]# vi /etc/my.cnf

#已有配置进行修改,没有的需要新增
default-storage-engine=innodb
innodb_file_per_table
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server=utf8

启动mysql服务和查看其状态

[root@master mysql-5.7.18]# systemctl start mysqld

[root@master mysql-5.7.18]# systemctl status mysqld

Hive安装与配置部署教程

[root@master mysql-5.7.18]# cat /var/log/mysqld.log | grep password

得到MySQL初始密码:

Hive安装与配置部署教程

[root@master mysql-5.7.18]# mysql_secure_installation     #重新设定密码和配置

设定密码要符合安全规则Password123$

Hive安装与配置部署教程
Hive安装与配置部署教程
Hive安装与配置部署教程

注:允许远程连接设定为n,表示允许远程连接,其它设定为y

Hive安装与配置部署教程

[root@master mysql-5.7.18]# mysql -uroot -pPassword123$

Hive安装与配置部署教程

3.新建Hive用户与元数据

在MySQL中新建名称为:hive_db的数据库存储Hive元数据。并新建hive用户,密码为Password123$,同时赋予所有权限。

mysql>create database hive_db;

mysql>create user hive identified by ‘Password123$’;

mysql>grant all privileges on *.* to hive@’%’ identified by ‘Password123$’ with grant option ;

mysql>grant all privileges on *.* to ‘root’@’%’identified by ‘Password123$’ with grant option;

mysql>flush privileges;

create database hive_db:新建hive_db数据库作为Hive的元数据存储地址
create user hive identified by ‘Password123$’:创建Hive访问用户,用户名为hive,密码为hive。
grant all privileges on *.* to hive@’%’ identified by ‘Password123$’ with grant option:grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址。赋予hive用户对所有数据库所有表的所有权限且任何地址都能建立连接“%”,并具有授予权。
flush privileges :刷新MySQL的系统权限相关表。

赋予hive用户对所有数据库所有表的所有权限且任何地址都能建立连接“%”,并具有授予权。

Hive安装与配置部署教程

三、配置Hive参数

1.配置hive-site.xml

复制源文件hive-default.xml.template并修改为hive-site.xml。修改对应参数的值。

[root@master ~]# su – hadoop

[hadoop@master ~]$ cp /usr/local/src/hive/conf/hive-default.xml.template /usr/local/src/hive/conf/hive-site.xml

[hadoop@master ~]$ vi /usr/local/src/hive/conf/hive-site.xml

<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive_db?createDatabaseIfNotExist=true</value>
</property>
<!--mysql用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<!--mysql中hive用户密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>Password123$</value>
</property>
<!--mysql驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/usr/local/src/hive/tmp</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/usr/local/src/hive/tmp/${hive.session.id}_resources</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/usr/local/src/hive/tmp</value>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/usr/local/src/hive/tmp/operation_logs</value>
</property>
<property>
<name>hive.server2.webui.host</name>
<value>master</value>
</property>
<property>
<name>hive.server2.webui.port</name>
<value>10002</value>
</property>
</configuration>

javax.jdo.option.ConnectionURL:   JDBC连接字符串,默认为自带的metastore_db数据库,现以MySQL作为元数据存储地址,需建立JDBC连接,且hive_db处为实验二中创建的MySQL数据库,存储元数据。

javax.jdo.option.ConnectionUserName:连接MySQL的hive操作用户,实验二创建。

javax.jdo.option.ConnectionPassword:连接MySQL的hive操作用户密码,实验二创建。

javax.jdo.option.ConnectionDriverName:配置数据库连接驱动。

hive.downloaded.resources.dir:远程资源下载的临时目录。

hive.server2.webui.host:hiveserver2 WebUI页面访问地址。

hive.server2.webui.port: hiveserver2 WebUI页面访问端口。

除此之外,Hive默认配置文件为hive-default.xml.template。若用户没有对相关配置参数进行修改,Hive将读取默认配置文件参数进行启动,其他重要配置信息如:

hive.metastore.warehouse.dir:HDFS上存储配置数据仓库的目录。

hive.exec.scratchdir:hive用来存储不同阶段的map/reduce的执行计划的目录,同时也存储中间输出结果。

其他详细参数可参照官方配置文件或者hive-default.xml.template下<description>标签下的描述信息,本文使用默认参数,既需要在HDFS上新建Hive的数据仓库文件夹,并赋予读写权限。

[hadoop@master ~]$ hadoop fs -mkdir -p /user/hive/warehouse

[hadoop@master ~]$ hadoop fs -chmod g+w /user/hive/warehouse

[hadoop@master ~]$ mkdir /usr/local/src/hive/tmp

2.配置hive-env.xml

在此处设置Hive和Hadoop环境变量,这些变量可以使用控制Hive的执行。

[hadoop@master ~]$ cp /usr/local/src/hive/conf/hive-env.sh.template /usr/local/src/hive/conf/hive-env.sh

[hadoop@master ~]$ vi /usr/local/src/hive/conf/hive-env.sh

# Set JAVA
export JAVA_HOME=/usr/local/src/java
# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=/usr/local/src/hadoop
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/usr/local/src/hive/conf
# Folder containing extra ibraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/usr/local/src/hive/lib

退出保存,数据库的初始化,保证此时MySQL为启动状态执行一下命令。注意的是,需要将Hive连接MySQL的驱动器文件上传至Hive的lib文件夹下。本文选择的驱动器版本为:mysql-connector-java-5.1.26.jar

[hadoop@master ~]$ cp /opt/software/mysql-connector-java-5.1.46.jar /usr/local/src/hive/lib/

[hadoop@master ~]$ schematool -initSchema -dbType mysql

Hive安装与配置部署教程
Hive安装与配置部署教程
Hive安装与配置部署教程

当显示schemaTool completed时,初始化成功,Hive与MySQL建立连接。启动完毕后查看MySQL下hive_db数据库,发现多出许多个新表(55个)。

Hive安装与配置部署教程
Hive安装与配置部署教程

3. 启动Hive

启动Hadoop集群,MySQL后,命令框输入hive。

[hadoop@master ~]$ hive

Hive安装与配置部署教程

创建新表并验证MySQL。

hive> show databases;

hive> create database hive_test_db;

hive> use hive_test_db;

hive> create table t_user(id int, name string);

hive> show tables;

Hive安装与配置部署教程

打开MySQL数据库,使用实验二配置过的hive_db数据库,此时注意,hive创建的表统一都在hive_db数据库的TBLS表中。当创建表存在,既基于MySQL存储元数据的Hive组件搭建完毕。

mysql> use hive_db;

mysql> select * from TBLS;

Hive安装与配置部署教程

四、beeline CLI远程访问Hive

1. 修改Hadoop的core-site.xml文件

使用beeline CLI访问Hive,需要在Hadoop集群中为Hive赋予代理用户权限。

[hadoop@master ~]$ cd /usr/local/src/hadoop/etc/hadoop

[hadoop@master hadoop]$ vi core-site.xml

[hadoop@slave1 ~]$ vi /usr/local/src/hadoop/etc/hadoop/core-site.xml

[hadoop@slave2 ~]$ vi /usr/local/src/hadoop/etc/hadoop/core-site.xml

#添加如下配置
<property>
  <name>hadoop.proxyuser.hadoop.hosts</name>
  <value>*</value>
 </property>
 <property>
  <name>hadoop.proxyuser.hadoop.groups</name>
  <value>*</value>
</property>

注意:其中hadoop.proxyuser.hadoop.hosts与hadoop.proxyuser.hadoop.groups标注灰色的主机名为访问的hadoop代理用户名。既给与相关权限可以通过hiveserver2服务进行访问操作。“*”为固定写法,前者表示Hadopp集群下所有节点可以使用hadoop代理用户访问Hive,后者表示所有组。

启动hiveserver2服务,等待时间较长,此页面不要关闭。

[hadoop@master hadoop]$ cd

[hadoop@master ~]$ stop-all.sh

[hadoop@master ~]$ start-all.sh

[hadoop@master ~]$ hiveserver2

Hive安装与配置部署教程

2. 添加远程访问节点

假设在slaves1节点进行远程访问,首先需要在slaves1节点上添加Hive组件,从master节点复制即可。

[root@master ~]# scp -r /usr/local/src/hive  root@slave1:/usr/local/src/

[root@slave1 ~]# chown -R hadoop:hadoop /usr/local/src/hive

slaves1配置hadoop用户环境变量,可以使用Hive命令。

[root@slave1 ~]# vi /etc/profile

#hive
export HIVE_HOME=/usr/local/src/hive
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$HIVE_HOME/bin:$PATH

[root@slave1 ~]# su – hadoop

[hadoop@ slave1 ~]$ source /etc/profile

3. 远程访问

通过jdbc 连接到beeline 就可以对 hive 进行操作了。在slaves1节点hadoop用户下执行以下命令。

[hadoop@slave1 ~]$ beeline -u jdbc:hive2://master:10000

Hive安装与配置部署教程

同时可以在Hive WebUI页面上查看访问的客户端。如下图所示,192.168.90.110(master)节点与192.168.90.181(slave1)节点并发访问Hive。

Hive安装与配置部署教程

到点睡觉了
版权声明:本站原创文章,由 到点睡觉了2022-01-08发表,共计7668字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)