安装Hive
1、上传hive的tar包到/usr/local/soft目录下
2、解压tar包并且重命名
tar -zxvf apache-hive-2.3.4-bin.tar.gz
mv apache-hive-2.3.4-bin hive
3、配置hive的环境变量
vim /etc/profile
##HIVE_HOME
export HIVE_HOME=/usr/local/soft/hive
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile
4、修改配置文件
4.1
来到hive的conf目录下
cd /usr/local/soft/hive/conf
4.2 重命名模板文件
mv hive-env.sh.template hive-env.sh
mv hive-log4j2.properties.template hive-log4j2.properties
cp hive-default.xml.template hive-site.xml
4.3修改配置文件
4.3.1 hive-env.sh
vim 打开 hive-env.sh文件
vim hive-env.sh
添加如下内容
HADOOP_HOME=/usr/local/soft/hadoop-2.7.2
export HIVE_CONF_DIR=/usr/local/soft/hive/conf
4.3.2 hive-log4j2.properties
vim 打开 hive-log4j2.properties 文件
vim hive-log4j2.properties
修改第24行
property.hive.log.dir = /usr/local/soft/hive/logs
4.3.3 hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- hive元数据地址,默认是/user/hive/warehouse -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<!-- hive查询时输出列名 -->
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<!-- 显示当前数据库名 -->
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<!-- 开启本地模式,默认是false -->
<property>
<name>hive.exec.mode.local.auto</name>
<value>true</value>
</property>
<!-- URL用于连接远程元数据 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://bigdata01:9083</value>
<description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>
<!-- 元数据使用mysql数据库 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://bigdata01:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
</configuration>
5、创建hive元数据所在路径
hadoop fs -mkdir /tmp #如果有这个路径,这不需要重新创建
hadoop fs -chmod -R 777 /tmp #修改文件权限
hadoop fs -mkdir -p /user/hive/warehouse #创建目录
hadoop fs -chmod -R 777 /user/hive/warehouse #修改文件权限
6、添加mysql驱动
cd /usr/local/soft/hive/lib
上传mysql的驱动
使用xftp上传 mysql-connector-java-5.1.49-bin.jar
7、初始化mysql元数据库
schematool -initSchema -dbType mysql //初始化成功最后会出现
8、开启元数据
nohup hive —service metastore & #开启元数据
9、启动hive并测试
hive
进入hive shell命令行
#创建test数据库
create database test;
#切换test数据库
use test;
#建表
create table if not exists `city_aqi`
( `province` string COMMENT "省份",
`city` string COMMENT "城市",
update_time string COMMENT "更新时间",
`aqi` int COMMENT "空气质量指数",
`aqstatus` string COMMENT "空气质量状态",
`aqwarning` string COMMENT "空气质量预警",
`PM2` int COMMENT "PM2.5",
`CO` float COMMENT "一氧化碳",
`SO2` int COMMENT "二氧化硫SO2(μg/立方米)",
`PM10` int COMMENT "PM10(μg/立方米)",
`O3` int COMMENT "臭氧",
`NO2` int COMMENT "二氧化氮")
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
#查看表
show tables;
#加载数据操作
load data local inpath "/usr/local/soft/city_aqi.csv" into table city_aqi;
#查看数据
select * from city_aqi limit 10;
#统计表中一共有多少条数据
select count(*) from city_aqi;
#统计aqi状态分别由多少条数据
select aqstatus,count(*) from city_aqi group by aqstatus;
用xftp上传 city_aqi.csv 到 /usr/local/soft/