Hive 安装配置记录:
1. 准备
1.1 wget
yum -y install wget
1.2 hive:
cd /opt
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.7/apache-hive-2.3.7-bin.tar.gz
或
wget http://mirror.bit.edu.cn/apache/hive/hive-2.3.7/apache-hive-2.3.7-bin.tar.gz
注意提示hive版本跟hadoop的匹配版本对应关系.
一般HIVE第一个数字版本跟hadoop第一个数字版本相对应即可.
2 解压hive
tar -zxvf apache-hive-2.3.7-bin.tar.gz
3 重命名hive
mv apache-hive-2.3.7-bin /opt/hive
4 配置hive环境变量
vi ~/.bash_profile
5 添加
export HIVE_HOME=/opt/hive
export PATH=$HIVE_HOME/bin:$PATH
6 刷新配置文件
source ~/.bash_profile
7 在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
8 mysql驱动包
下载对应的 MySQL 连接jar
https://dev.mysql.com/downloads/connector/j/
只需要解压出来的 mysql-connector-java-5.1.49.jar 文件
9 文件移动到 hive的lib
将
mysql-connector-java-5.1.49.jar
文件移动到 hive的lib文件夹下
mv mysql-connector-java-5.1.49.jar $HIVE_HOME/lib
10 创建数据库,配置用户和权限
(1)创建数据库
create database metastore;
(2)创建MySQL的 用户hive,密码hive
并赋予权限*
grant all on metastore.* to hive@'%' identified by 'root';
grant all on metastore.* to hive@'localhost' identified by '123456';
(3)刷新MySQL权限
flush privileges;
用户名 密码根据自己需求自行修改,下文有hive-site.xml配置时,注意对应修改
11 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命令
12 修改hive-env.sh**
vi hive-env.sh
如果没有配置以下环境变量/或是系统有jdk,hadoop多个环境,
可以手动指定想要版本的地址
export JAVA_HOME=/usr/local/jdk1.8.0_251
export HADOOP_HOME=/opt/hadoop
13 增加hive-site.xml
vi 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/hive/tmp</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/opt/hive/warehouse</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/opt/hive/log</value>
</property>
<!-- 配置 MySQL 数据库连接信息 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.56.20:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value><!-- jdbc驱动 -->
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value><!-- mysql账号 -->
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value><!-- mysql密码 -->
</property>
</configuration>
用命令创建:hive数据库
[root@master ~]# mysql -u root -p
mysql>create database hive;
14 初始化hive
同上,下面 命令最后结尾是 是MySQL的用户名 hive和密码hive
cd $HIVE_HOME/bin
./schematool -dbType mysql -initSchema root 123456
15 启动
$HIVE_HOME/bin/hive
16 相关操作…
(1) 建表:
create table IF NOT EXISTS default.dept(
deptno int,
dname string,
loc string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
(2)查表:
hive (default)> show tables;
hive (default)> select * from dept;
(3)hive删除表:
drop table dept;
(4)hive删除表中数据:
truncate table dept;
(5)hive按分区删除数据:
alter table dept drop partition (partition_name='分区名')
(6)查表的存储位置:
show create table dept;
hdfs://x:9000/user/hive/warehouse/dept
//TODO