软件环境介绍
预装好的软件环境
- centos7
- hadoop-2.8.5
- spark-2.4.2
- zookeeper-3.4.14
- jdk-8u201-linux-x64
- mysql 5.7.27
hadoop配置修改 重要!!!
修改$HADOOP_HOME/etc/hadoop/core-site.xml文件,在标签间加入以下内容.
要不链接hive时会报错.
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
mysql安装可以参考:
- How to Install Latest MySQL 5.7.21 on RHEL/CentOS 7
- CentOS7 yum方式安装MySQL5.7这帖子Yum Repository地址错误旧了,参考上面英文帖子的地址.
本篇介绍的安装软件
- hive 2.3.6
先放参考链接
- centos7安装Hive2.3.0转载格式不是很好,内容不是很准确,整体思路可以借鉴.
- Hive官网英文教程我没找到配置mysql的地方
step1 下载Hive
选择适合的hive版本
查阅官网发布信息官网Release
注意提示hive版本跟hadoop的匹配版本对应关系.一般HIVE第一个数字版本跟hadoop第一个数字版本相对应即可.
点击访问下载页面
选择需要的版本下载,本文已2.3.6为例
访问2.3.6下载资源页面Hive2.3.6
右键复制上图红框里的 apache-hive-2.3.6-bin.tar.gz链接地址用于下载
链接地址为:
https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.gz
红框下方的apache-hive-2.3.6-src.tar.gz是源码文件,官网教程有介绍用源码自己编译出一个发布版本教程,我嫌麻烦,所以用官网提供好的编译版本apache-hive-2.3.6-bin.tar.gz.
下载hive2.3.6
cd 想要下载的目录
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.gz
解压hive
tar -zxvf apache-hive-2.3.6-bin.tar.gz
移动重命名hive
确定还在hive解压出的目录
mv apache-hive-2.3.6-bin /opt/apache-hive-2.3.6
移动的路径和重命名的名字根据自己需求自行调整.因为测试学习目的,所以我还带着apache和版本号,只是删掉了结尾的-bin.
配置hive环境变量
vi /etc/profile
加入下面的内容
#配置HIVE环境变量START
export HIVE_HOME=/opt/apache-hive-2.3.6/
export PATH=$HIVE_HOME/bin:$PATH
#配置HIVE环境变量END
刷新下配置文件
source /etc/profile
在hadoop下创建hive所用文件夹
前提,配置了本机HADOOP_HOME的环境变量可以这么使用命令.
创建文件夹 并赋予权限.
$HADOOP_HOME/bin/hadoop fs -mkdir -p /tmp
$HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
以上命令改编自官网教程,官网没有加-p,报错没有(上级)路径错误
Hadoop如果命令报这个错,可以参考这个 util.NativeCodeLoader: Unable to load native-hadoop library for your platform
配置Mysql
下载对应的mysql连接jar
原文地址
点击下图红框可以找到5.1.xx的连接jar
进入下面链接,随意选择一个下载就好,反正最后只是要解压出来的
mysql-connector-java-5.1.48.jar
文件
将目标文件移动到 hive的lib文件夹下
mv mysql-connector-java-5.1.48.jar $HIVE_HOME/lib
创建数据库,配置用户和权限
- 创建数据库 第1行
- 创建mysql的用户hive,密码hive并赋予权限 第2,3行
- 刷新Mysql权限 第4行
配置的用户名密码根据自己需求自行修改,下文有hive-site.xml配置时,注意对应修改
create database metastore;
grant all on metastore.* to hive@'%' identified by 'hive';
grant all on metastore.* to hive@'localhost' identified by 'hive';
flush privileges;
配置hive配置文件
另存配置文件模板
进入Hive的配置文件所在路径
cd $HIVE_HOME/conf
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties
推荐用cp命令另存为有个备份,如果觉得太多文件乱,那就可以用mv重命名 替换掉cp命令
修改hive-env.sh
如果没有配置以下环境变量/或是系统有jdk,hadoop多个环境,可以手动指定想要版本的地址
export JAVA_HOME=/usr/local/jdk1.7.0_80
export HADOOP_HOME=/usr/local/hadoop
增加hive-site.xml
用于配置mysql的关联
注意:下面xml里的ConnectionUserName和ConnectionPassword配置的是mysql的用户名密码,上文已经设置过都是hive,如果上文自己设置别的用户名密码,请自行修改.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>
<property>
<name>hive.exec.scratchdir</name>
<value>/opt/apache-hive-2.3.6/tmp</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/opt/apache-hive-2.3.6/warehouse</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/opt/apache-hive-2.3.6/log</value>
</property>
<!-- 配置 MySQL 数据库连接信息 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
</configuration>
初始化hive
同上,下面 命令最后结尾是 是Mysql的用户名 hive和密码hive
cd $HIVE_HOME/bin
./schematool -dbType mysql -initSchema hive hive
尝试hive启动
推荐hive启动资料
- hive的几种启动方式
我们这里使用后台启动
nohup $HIVE_HOME/bin/hiveserver2 &
日志配置文件hive-exec-log4j2.properties配置的日志路径 /tmp/{linxu当前用户名}/hive.log.
或者直接用命令查找hive.log文件
find / -name hive.log
尝试连接hive使用
$HIVE_HOME/bin/beeline
之后尝试连接hive.
localhost对应hive地址;mysql的用户名hive;mysql的密码hive;
!connect jdbc:hive2://localhost:10000 hive hive
示例执行
[root@Master ~]# $HIVE_HOME/bin/beeline
Beeline version 2.3.6 by Apache Hive
beeline> !connect jdbc:hive2://localhost:10000 hive hive
Connecting to jdbc:hive2://localhost:10000
Connected to: Apache Hive (version 2.3.6)
Driver: Hive JDBC (version 2.3.6)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://localhost:10000> show databases;
+----------------+
| database_name |
+----------------+
| default |
+----------------+
1 row selected (1.058 seconds)
0: jdbc:hive2://localhost:10000>