[关闭]
@awsekfozc 2016-01-08T11:13:07.000000Z 字数 3758 阅读 2027

Hive概述,安装

Hive

Hive简介

1)hive是基于Hadoop的一个数据仓库,将结构化的数据文件映射为一张数据库表。(HDFS存储数据)
2)提供HiveQ语句查询,结构类似于SQL。将语句解析成mapreduce任务(可能多个)(YARN运行mapreduce)
3)元数据存储在RDBMS(mysql,Postgresql)。

Hive作用

使用简单的HiveQL自动生成mapreduce,省去了繁琐的编程过程。在筛选数据的效率上大大提升。十分适合数据仓库的统计分析。
Hive的数据存储在HDFS之上。适合大数据量的存储,运行再YARN上,分布式的YARN,让Hive适合筛选大数据量的数据。

Hive架构

QQ截图20151125224749.png-24.3kB

  1. 用户接口:CLI,JDBC 和 WEBUI。
  2. Hive将元数据存储在数据库中,如mysql、Postgresql。Hive中的元数据包括表的名字,表的字段属性和分区及其属性,表的属性。,表的数据所在目录等。
  3. 解释器、编译器、优化器完成HiveQL查询语句从词法分析、语法分析、编译、优化以及生成MapReduce任务。并在随后有YARN调用执行。
  4. Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成Hive将元数据存储在RDBMS中,

Hive安装配置

安装

下载地址

  1. //解压
  2. $ tar -zxvf apache-hive-0.13.1-bin.tar.gz -C /opt/moduels/

配置(使用默认数据库,只支持单客户)

文档地址

  1. //hive-env.sh
  2. //hadoop环境设置
  3. HADOOP_HOME=/opt/moduels/hadoop-2.5.0/
  4. //Hive的控制目录
  5. export HIVE_CONF_DIR=/opt/moduels/hive-0.13.1/conf
  6. //HDFS上创建临时目录并赋予可学权限
  7. $ bin/hdfs dfs -mkdir /tmp
  8. $ bin/hdfs dfs -chmod 775 /tmp
  9. //HDFS上创建数据存储目录并赋予可学权限
  10. $ bin/hdfs dfs -mkdir -p /user/hive/warehouse
  11. $ bin/hdfs dfs -chmod 775 /user/hive/warehouse
  12. ###
  13. 启动前记得加上mysql驱动包
  14. ###
  15. //启动hive
  16. $ bin/hive
  17. //创建表pepole
  18. create table pepole(pid int,name string,phone string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
  19. //创建表加载数据
  20. load data local inpath "/opt/datas/customers.csv" into table pepole;

QQ截图20151125234940.png-12.6kB

配置(元数据存储在mysql)

mysql安装

  1. //联网安装,使用yum
  2. 设置自动获取IP地址
  3. //替换系统镜像源
  4. $ cd /etc/yum.repos.d
  5. $ sudo mv CentOS-Base.repo CentOS-Base.repo.bak
  6. $ sudo touch CentOS6-Base-163.repo
  7. $ sudo vi CentOS6-Base-163.repo
  8. //查看要安装的组件
  9. $ sudo yum list|grep mysql
  10. //安装mysql
  11. $ sudo yum install mysql-server -y
  12. //查看mysql服务状态
  13. $ sudo service mysqld status
  14. //启动mysql服务
  15. $ sudo service mysqld start
  16. //设置mysql root用户密码
  17. # /usr/bin/mysqladmin -u root password '123456'
  18. //测试连接数据库
  19. $ mysql -uroot -p123456
  20. > show databases ;
  21. > use test ;
  22. > show tables ;

QQ截图20151126210402.png-38.2kB

Hive元数据配置到mysql

元数据配置官方文档

 - 自定义文件:/opt/moduels/hive-0.13.1/conf/hive-site.xml
 - 配置属性查找:/opt/moduels/hive-0.13.1/conf/hive-site.xml.template
  1. <!--hive-site.xml-->
  2. <!--连接路径-->
  3. <property>
  4. <name>javax.jdo.option.ConnectionURL</name>
  5. <value>jdbc:mysql://hadoop.zc.com/metastore?createDatabaseIfNotExist=true</value>
  6. <description>JDBC connect string for a JDBC metastore</description>
  7. </property>
  8. <!--连接驱动-->
  9. <property>
  10. <name>javax.jdo.option.ConnectionDriverName</name>
  11. <value>com.mysql.jdbc.Driver</value>
  12. <description>Driver class name for a JDBC metastore</description>
  13. </property>
  14. <!--连接用户名-->
  15. <property>
  16. <name>javax.jdo.option.ConnectionUserName</name>
  17. <value>root</value>
  18. <description>username to use against metastore database</description>
  19. </property>
  20. <!--连接密码-->
  21. <property>
  22. <name>javax.jdo.option.ConnectionPassword</name>
  23. <value>123456</value>
  24. <description>password to use against metastore database</description>
  25. </property>

QQ截图20151126221829.png-35.9kB

Hive的基本操作

  1. #查看数据库
  2. show databases;
  3. #使用数据库
  4. use datbase_name;
  5. #查看表
  6. show tables;
  7. #创建数据库
  8. create database datbase_name ;
  9. #创建表
  10. create table pepole(pid int,name string,phone string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
  11. #加载HDFS数据到表
  12. load data inpath '/user/hive/warehouse/pepole/customers.csv' into table pepole ;
  13. #加载本地数据表
  14. load data local inpath "/opt/datas/customers.csv" into table pepole;
  15. #查询表
  16. select * from table-name ;
  17. #查看表属性
  18. desc table-name;
  19. #查看表详细属性
  20. desc extended table-name ;
  21. #查看格式化表属性
  22. desc formatted table-name ;
  23. #查看函数
  24. show functions ;
  25. #查看函数使用
  26. desc function fun-name ;
  27. #查看函数详细属性
  28. desc function extended upper ;

Hive的常用属性配置

  1. <!--仓库路径配置:使用时注意权限,要有写的权限-->
  2. <property>
  3. <name>hive.metastore.warehouse.dir</name>
  4. <value>/user/hive/warehouse</value>
  5. <description>location of default database for the warehouse</description>
  6. </property>
  7. <!--hive运行日志目录配置:$HIVE_HOME/conf/hive-log4j.properties-->
  8. hive.log.dir=/opt/moduels/hive-0.13.1/logs
  9. <!--指定hive运行时显示的log日志的级别(INFO,DEBUG):$HIVE_HOME/conf/hive-log4j.properties-->
  10. $HIVE_HOME/conf/log4j.properties
  11. <!--在cli命令行上显示当前数据库,以及查询表的行头信息:$HIVE_HOME/conf/hive-site.xml-->
  12. <property>
  13. <name>hive.cli.print.header</name>
  14. <value>true</value>
  15. <description>Whether to print the names of the columns in query output.</description>
  16. </property>
  17. <property>
  18. <name>hive.cli.print.current.db</name>
  19. <value>true</value>
  20. <description>Whether to include the current database in the Hive prompt.</description>
  21. </property>

在此输入正文

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注