1.准备工具
- mysql 5.6.43
- hive 3.1.1
mysql的安装就跳过了
2.配置环境
mv apache-hive-3.1.1-bin.tar.gz /usr/local
cd /usr/local
tar -zxvf apache-hive-3.1.1-bin.tar.gz
mv apache-hive-3.1.1 hive
sudo vi /etc/profile
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile
3.修改配置文件
3.1 vim hive-env.sh
cd /hive/conf
vim hive-env.sh
# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=/usr/local/hadoop #Hadoop安装路径
export HIVE_HOME=/usr/local/hive #Hive安装路径
export HIVE_CONF_DIR=$HIVE_HOME/conf #Hive配置文件路径
3.2 vim hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--Hive作业的HDFS根目录位置 -->
<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</value>
</property>
<!--Hive作业的HDFS根目录创建写权限 -->
<property>
<name>hive.scratch.dir.permission</name>
<value>733</value>
</property>
<!--hdfs上hive元数据存放位置 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<!--连接数据库地址,名称 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</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>
<!--客户端显示当前查询表的头信息 -->
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<!--客户端显示当前数据库名称信息 -->
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
</configuration>
3.3 mysql jdbc驱动导入
mysql-connector-java-5.1.47-bin.jar 放到 hive/lib下
4.创建mysql hive用户
mysql> CREATE DATABASE hive;
mysql> USE hive;
mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
mysql> GRANT ALL ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive';
mysql> GRANT ALL ON hive.* TO 'hive'@'master' IDENTIFIED BY 'hive';
mysql> GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';
mysql> FLUSH PRIVILEGES;
mysql> quit;
5.启动hive
5.1 初始化hive
schematool -dbType mysql -initSchema
hive1.png
#处理,mysql用户权限问题
mysql> GRANT ALL ON hive.* TO 'hive'@'master' IDENTIFIED BY 'hive';
hive2.png
5.2 启动hive
hive
hive3.png
6.试用hive
vim students.txt
95002,刘晨,女,19,IS
95017,王风娟,女,18,IS
95018,王一,女,19,IS
95013,冯伟,男,21,CS
95014,王小丽,女,19,CS
95019,邢小丽,女,19,IS
95020,赵钱,男,21,IS
95003,王敏,女,22,MA
95004,张立,男,19,IS
95012,孙花,女,20,CS
95010,孔小涛,男,19,CS
95005,刘刚,男,18,MA
95006,孙庆,男,23,CS
95007,易思玲,女,19,MA
95008,李娜,女,18,CS
95021,周二,男,17,MA
95022,郑明,男,20,MA
95001,李勇,男,20,CS
95011,包小柏,男,18,MA
95009,梦圆圆,女,18,MA
95015,王君,男,18,MA
hive (default)> create database myhive;
OK
Time taken: 0.937 seconds
hive (default)> use myhive;
OK
Time taken: 0.054 seconds
hive (myhive)> select current_database();
OK
_c0
myhive
Time taken: 5.276 seconds, Fetched: 1 row(s)
hive (myhive)> create table student(id int, name string, sex string, age int, department string)
> row format delimited fields
> terminated by ","
> ;
OK
Time taken: 0.983 seconds
hive (myhive)> load data local inpath "/root/students.txt" into table student;
Loading data to table myhive.student
OK
Time taken: 0.876 seconds
hive (myhive)> select *from student;
OK
student.id student.name student.sex student.age student.department
95002 刘晨 女 19 IS
95017 王风娟 女 18 IS
95018 王一 女 19 IS
95013 冯伟 男 21 CS
95014 王小丽 女 19 CS
95019 邢小丽 女 19 IS
95020 赵钱 男 21 IS
95003 王敏 女 22 MA
95004 张立 男 19 IS
95012 孙花 女 20 CS
95010 孔小涛 男 19 CS
95005 刘刚 男 18 MA
95006 孙庆 男 23 CS
95007 易思玲 女 19 MA
95008 李娜 女 18 CS
95021 周二 男 17 MA
95022 郑明 男 20 MA
95001 李勇 男 20 CS
95011 包小柏 男 18 MA
95009 梦圆圆 女 18 MA
95015 王君 男 18 MA
Time taken: 0.414 seconds, Fetched: 21 row(s)
hive (myhive)> desc student;
OK
col_name data_type comment
id int
name string
sex string
age int
department string
Time taken: 0.132 seconds, Fetched: 5 row(s)
7.hive相关语法
https://blog.csdn.net/qq_15300683/article/details/80455097
网友评论