安装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的环境变量

  1. vim /etc/profile
  2. ##HIVE_HOME
  3. export HIVE_HOME=/usr/local/soft/hive
  4. export PATH=$PATH:$HIVE_HOME/bin
  5. source /etc/profile

4、修改配置文件

4.1

来到hive的conf目录下
  1. cd /usr/local/soft/hive/conf

4.2 重命名模板文件

  1. mv hive-env.sh.template hive-env.sh
  2. mv hive-log4j2.properties.template hive-log4j2.properties
  3. 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
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <!-- hive元数据地址,默认是/user/hive/warehouse -->
  5. <property>
  6. <name>hive.metastore.warehouse.dir</name>
  7. <value>/user/hive/warehouse</value>
  8. </property>
  9. <!-- hive查询时输出列名 -->
  10. <property>
  11. <name>hive.cli.print.header</name>
  12. <value>true</value>
  13. </property>
  14. <!-- 显示当前数据库名 -->
  15. <property>
  16. <name>hive.cli.print.current.db</name>
  17. <value>true</value>
  18. </property>
  19. <!-- 开启本地模式,默认是false -->
  20. <property>
  21. <name>hive.exec.mode.local.auto</name>
  22. <value>true</value>
  23. </property>
  24. <!-- URL用于连接远程元数据 -->
  25. <property>
  26. <name>hive.metastore.uris</name>
  27. <value>thrift://bigdata01:9083</value>
  28. <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
  29. </property>
  30. <!-- 元数据使用mysql数据库 -->
  31. <property>
  32. <name>javax.jdo.option.ConnectionURL</name>
  33. <value>jdbc:mysql://bigdata01:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
  34. <description>JDBC connect string for a JDBC metastore</description>
  35. </property>
  36. <property>
  37. <name>javax.jdo.option.ConnectionUserName</name>
  38. <value>root</value>
  39. <description>username to use against metastore database</description>
  40. </property>
  41. <property>
  42. <name>javax.jdo.option.ConnectionPassword</name>
  43. <value>123456</value>
  44. <description>password to use against metastore database</description>
  45. </property>
  46. <property>
  47. <name>javax.jdo.option.ConnectionDriverName</name>
  48. <value>com.mysql.jdbc.Driver</value>
  49. <description>Driver class name for a JDBC metastore</description>
  50. </property>
  51. </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命令行

  1. #创建test数据库
  2. create database test;
  3. #切换test数据库
  4. use test;
  5. #建表
  6. create table if not exists `city_aqi`
  7. ( `province` string COMMENT "省份",
  8. `city` string COMMENT "城市",
  9. update_time string COMMENT "更新时间",
  10. `aqi` int COMMENT "空气质量指数",
  11. `aqstatus` string COMMENT "空气质量状态",
  12. `aqwarning` string COMMENT "空气质量预警",
  13. `PM2` int COMMENT "PM2.5",
  14. `CO` float COMMENT "一氧化碳",
  15. `SO2` int COMMENT "二氧化硫SO2(μg/立方米)",
  16. `PM10` int COMMENT "PM10(μg/立方米)",
  17. `O3` int COMMENT "臭氧",
  18. `NO2` int COMMENT "二氧化氮")
  19. ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
  20. #查看表
  21. show tables;
  22. #加载数据操作
  23. load data local inpath "/usr/local/soft/city_aqi.csv" into table city_aqi;
  24. #查看数据
  25. select * from city_aqi limit 10;
  26. #统计表中一共有多少条数据
  27. select count(*) from city_aqi;
  28. #统计aqi状态分别由多少条数据
  29. select aqstatus,count(*) from city_aqi group by aqstatus;

用xftp上传 city_aqi.csv 到 /usr/local/soft/