hive安装

image.png
下载地址http://mirror.bit.edu.cn/apache/hive/hive-3.1.1/

1. 解压hive安装包

  1. # 解压
  2. tar -zxvf apache-hive-3.1.1-bin.tar.gz -C ~
  3. # 创建软链接
  4. ln -s apache-hive-3.1.1-bin hive
  5. cd hive
  6. ls

2.配置HIVE_HOME环境变量

  1. vi ~/.bashrc
  2. export HIVE_HOME=/root/hive
  3. export PATH=$HIVE_HOME/bin:$PATH
  4. # 一定要记得这一步
  5. source ~/.bashrc

image.png

查看版本号 hive —version

image.png

3.在hdfs上创建hive数据存放目录

  1. hadoop fs -mkdir /tmp
  2. hadoop fs -mkdir -p /user/hive/warehouse
  3. hadoop fs -chmod g+w /tmp
  4. hadoop fs -chmod g+w /user/hive/warehouse

4. 初始化hive库schma

  1. # hive安装目录下执行下面命令初始化hive 默认数据库为derby:
  2. cd hive
  3. ./bin/schematool -dbType derby -initSchema
  • 初始化成功后就会在hive的安装目录下生成derby.log日志文件和metastore_db数据库目录,目录中存放的是hive

的数据库信息.

image.png

5.启动hive

注意事项:
1.在高版本的hive已经添加安全认证机制,所有需要使用hadoop用户启动.
2.保证hadoop集群的状态是非安全模式下,使用一下命令查看到的状态是OFF
如果是ON状态,请使用hadoop dfsadmin -safemode leave命令关闭安全模式
当我们配置好hive的环境变量执行,直接使用hive命令启动hive的shell操作界面.
image.png

**记得要进到hive目录下再使用hive命令 使用show tables 如果安装成功会显示OK提示.**

数据源上传

1. 单表

在home下创建datas目录,然后通过xftp 把数据源上传上去
image.png

  1. # 依次启动 Hadoop 与 hive进入hive 交互模式并创建库kaikeba
  2. create database if not exists kaikeba;
  3. use kaikeba;
  4. create table if not exists user_info (
  5. user_id string,
  6. user_name string,
  7. sex string,
  8. age int,
  9. city string,
  10. firstactivetime string,
  11. level int,
  12. extra1 string,
  13. extra2 map<string,string>)
  14. row format DELIMITED FIELDS TERMINATED BY '\t'
  15. COLLECTION ITEMS TERMINATED BY ','
  16. MAP KEYS TERMINATED BY ':'
  17. LINES TERMINATED BY '\n'
  18. stored as textfile;

image.png

加载数据源

  1. load data local inpath '/home/datas/user_info/user_info.txt' overwrite into table user_info;

注意:上步如果出现错误 建议重启3台虚拟环境,然后每台都要关闭防火墙,重启hadoop 重启hive 命令如下: 1.#停止firewall systemctl stop firewalld.service 2.#禁止firewall开机启动 systemctl disable firewalld.service

2. 分区表

  1. CREATE TABLE IF NOT EXISTS user_trade(
  2. user_name string,
  3. piece int,
  4. price double,
  5. pay_amount double,
  6. goods_category string,
  7. pay_time bigint)
  8. partitioned by (dt string)
  9. row format delimited fields terminated by '\t';

image.png

设置动态分区

  1. set hive.exec.dynamic.partition=true;
  2. set hive.exec.dynamic.partition.mode=nonstrict;
  3. set hive.exec.max.dynamic.partitions=10000;
  4. set hive.exec.max.dynamic.partitions.pernode=10000;

image.png

查看hdfs上的文件

用xshell 再次打开一个kkb001 上述保持不动做如下操作
杀杀杀.png

上传数据到hdfs

hdfs dfs -put /home/datas/user_trade/* /user/hive/warehouse/kaikeba.db/user_trade
image.png

msck repair table + 表名
image.png

image.png