Hive0.13.1介绍及安装部署
一、简介 hive由Facebook开源用于解决海量结构化日志的数据统计。hive是基于Hadoop的一个数据仓库工具,是基于Hadoop之上的,文件是存储在HDFS上的,底层运行的是MR程序。hive可以将结构化
<h2>一、简介</h2>
hive由Facebook开源用于解决海量结构化日志的数据统计。hive是基于Hadoop的一个数据仓库工具,是基于Hadoop之上的,文件是存储在HDFS上的,底层运行的是MR程序。hive可以将结构化的数据文件映射成一张表,并提供类SQL查询功能。
二、HIVE特点
构建在Hadoop之上的数据仓库 使用HQL作为查询接口 使用HDFS存储 使用MapReduce计算
本质:将HQL转化成MapReduce程序 灵活性和扩展性比较好:支持UDF、自定义存储格式等 适合离线数据处理 hive在Hadoop生态系统中的位置:
三、hive体系结构
用户接口: ClientCLI(hive shell)、JDBC/ODBC(java访问hive),WEBUI(浏览器访问hive)
元数据:Metastore 元数据包括:表名、表所属数据库、表的拥有者、列/分区字段、表的类型(是否外部表)、表数据所在目录等
Hadoop 使用HDFS存储,使用MR计算
驱动器:Driver 包含:解析器、编译器、优化器、执行器 解析器 将SQL字符串转换成抽象语法书AST,这一步一般都用第三方工具库完成,比如antlr;对AST进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误等
编译器 将AST编译生成逻辑执行计划
优化器 对逻辑执行计划进行优化
执行器 把逻辑执行计划转化成可以运行的物理计划。对hive来说,就是MR/TEZ/SPARK
四、hive优点
操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手) 避免了去写MR,减少开发人员的学习成本 统一的元数据管理,可以与impala/spark等共享元数据 易扩展(HDFS+MR:可以扩展集群规模;支持UDF、UDAF、UDTF等自定义函数)
五、使用场景
数据的离线处理,比如:日志分析,海量结构化数据离线分析... Hive的执行延迟比较高,因此hive常用于数据分析的,对实时性要求不高的场合 Hive的优势在于处理大数据,对于小数据没有优势,因为Hive的执行延迟比较高
六、hive部署安装
*注意:安装部署hive之前,首先要安装完成jdk和hadoop。如有需要,可以查看博客:Haoop2.5.0伪分布式环境搭建。
step1:解压安装包
tar -xzvf apache-hive-0.13.1-bin.tar.gz -C /opt/software/
step2:在hdfs上创建hive所需要的目录及权限修改
hdfs dfs -mkdir /tmphdfs dfs -mkdir -p /user/hive/warehousehdfs dfs -chmod g+w /tmphdfs dfs -chmod g+w /user/hive/warehouse
step3:修改hive-env.sh中HADOOP_HOME及HIVE_CONF_DIR属性值,注意改名
# Set HADOOP_HOME to point to a specific hadoop install directoryHADOOP_HOME=/opt/software/hadoop-2.5.0
# Hive Configuration Directory can be controlled by:export HIVE_CONF_DIR=/opt/software/hive-0.13.1-bin/conf
step4:hive元数据信息默认是使用的Derby数据库,derby数据库只支持一个hive连接,修改为使用关系型数据库mysql存储hive元数据信息。
1.安装mysql数据库
# 查询系统中没有mysqlsudo rpm -qa | grep mysql# 卸载自带的mysql库sudo rpm -e --nodeps mysql-libs-5.1.66-2.el6_3.x86_64# 使用yum进行mysql的安装sudo yum -y install mysql-server# 查看mysqld服务是否开启sudo service mysqld status# 启动mysql服务sudo service mysqld start# 设置开机启动mysqldsudo chkconfig mysqld on# 设置mysql管理员root的密码mysqladmin -u root password '123456'
2.设置mysql的连接权限 mysql -uroot -p # 进入mysql命令行grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;flush privileges; # 刷新quit; # 退出sudo service mysqld restart # 重启mysql服务
3.自定义hive的配置文件,从默认的文件(hive-default.xml.template)拷贝一份过来,重命名为hive-site.xml,然后删除其中的内容,添加以下内容:
4.拷贝mysql驱动到/opt/software/hive-0.13.1-bin/lib/目录下
至此,hive部署完成,即可通过命令行输入hive进入hive环境。