热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

hive初级、进阶、高级

刚刚研究了hive,从定义,安装到hive命令、优化高级,不断完善中。。。第一部分:Hive简介Hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张数据表,并提供类SQL的查

刚刚研究了hive,从定义,安装到hive命令、优化高级,不断完善中。。。

第一部分:Hive简介

Hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张数据表,并提供类SQL的查询功能。

Hive的本质是将SQL转换成mapreduce程序。

第二部分:为什么使用hive

  1. 避免去写mapreduce,减少开发人员的成本

  2. 操作接口采用类sql语法,提供快速开发能力

  3. 扩展功能比较方便

第三部分:hivehadoop的关系

由图可以看出,hive必须给予hadoop使用

第四部分:hive与传统数据库对比

 

Hive

RDBMS

查询语言

HQL

SQL

数据存储

HDFS

Raw Device or Local FS

执行

MapReduce

Excutor

执行延迟

处理数据规模

索引

0.8版本后加入位图索引

有复杂的索引

第五部分:hive安装手顺

在随便一台有hadoop环境的机器上解压缩:hive-0.9.0-bin.tar.gztar –zxvf hive-0.9.0-bin.tar.gz

修改hive/conf下的配置文件

 cphive-default.xml.template hive-default.xml

 cphive-default.xml hive-site.xml

 cphive-env.sh.template hive-env.sh

hive-env.sh配置HADOOP_HOME=/home/user/hadoop,最好配置一下jvm堆大小,否则使用jdbc服务的时候很容易内存溢出export HADOOP_HEAPSIZE=1024,大小视自己情况而定。

配置环境变量HIVE_HOMEPATHvi /etc/profile ,配置完成后source /etc/profile,使文件立即生效,配置如下:

到此为止,hive配置完成,输入hive,启动,输入show databases进行验证、运行web接口:hive --service hwihttp://client:9999/hwi

启动hivejdbc服务端thrift服务接口 hive --service hiveserver 50000

第六部分:hive配置mysql

默认情况下,hive元数据保存在内嵌的Derby数据库中,只允许一个会话连接,为了支持多用户会话,则需要建立一个独立的元数据库,hive内部提供了对mysql很好的支持,配置一个独立的元数据库需要以下步骤:

第一步:安装MySQL服务器端和MySQL客户端,并启动MySQL服务(我的安装在window下,hive在虚拟机下centos6.5),安装时需要允许远程登录(记得最后一步打钩,如果是在linux上,sudo gedit /etc/mysql/my.cnf #bind-address=127.0.0.1 <---注释掉这一行就可以远程登录了)

第二步:安装Hive

第三步:Hive建立相应的MySQL账户,并赋予足够的权限,执行命令如下:

$ mysql -uroot -pmysql

mysql> CREATE USER 'hive' IDENTIFIED BY 'mysql';

mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANTOPTION;

mysql> flush privileges;

第四步:建立 Hive 专用的元数据库,记得创建时用刚才创建的“hive”账号登陆。

mysql> exit;

$ mysql -uhive –pmysql

mysql> create database hive;

第五步:Hiveconf目录下的文件“hive-site.xml”中增加如下配置:

 

   

       hive.metastore.local

       true

   

   

       javax.jdo.option.ConnectionURL

jdbc:mysql://192.168.11.157:3306/hive?characterEncoding=UTF-8

   

   

       javax.jdo.option.ConnectionDriverName

       com.mysql.jdbc.Driver

   

   

       javax.jdo.option.ConnectionUserName

       hive

   

   

       javax.jdo.option.ConnectionPassword

       mysql

   

 

从前面我们知道我们的“hive-site.xml”是一个“hive-default.xml.template”的一个拷贝,里面的配置参数非常之多,但是并不是我们都需要的,我们知道,Hive系统会加载两个配置文件一个默认配置文件“hive-default.xml”,另一个就是用户自定义文件“hive-site.xml”。当“hive-site.xml”中的配置参数的值与“hive-default.xml”文件中不一致时,以用户自定义的为准。所以我们就把我们不需要的参数都删除掉,只留下上面所示的内容。

第六步:MySQLJDBC驱动包复制到Hivelib目录下。
JDBC
驱动包的版本:mysql-connector-java-5.1.18-bin.jar

第七步:启动 HiveShell,輸入hive,如果沒報錯,执行“show tables;”命令,如果不报错,表明基于独立元数据库的 Hive 已经安装成功了。

第八步:验证Hive配置是否有误,进入Hiveshell新建表,MySQLHive数据库中可以看到相应的元数据库信息。
1)
Hive上建立数据表
hive> CREATE TABLE xp(id INT,name string) ROW FORMAT DELIMITED FIELDSTERMINATED BY '\t';
2)
MySQL数据库上查看元数据信息
用到的 SQL语句:
use hive; //
使用 hive数据库库

show tables;//
显示 hive数据库中的数据表
select * from TBLS;//
查看 hive的元数据信息
到此Hive集成Mysql作为元数据已完成。

第七部分:hive内表、外表、分区表、命令

第八部分:hive优化

 

 


推荐阅读
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • Hadoop发行版本选择指南:技术解析与应用实践
    本文详细介绍了Hadoop的不同发行版本及其特点,帮助读者根据实际需求选择最合适的Hadoop版本。内容涵盖Apache Hadoop、Cloudera CDH等主流版本的特性及应用场景。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • HBase运维工具全解析
    本文深入探讨了HBase常用的运维工具,详细介绍了每种工具的功能、使用场景及操作示例。对于HBase的开发人员和运维工程师来说,这些工具是日常管理和故障排查的重要手段。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • 全面解析运维监控:白盒与黑盒监控及四大黄金指标
    本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 从码农到创业者:我的职业转型之路
    在观察了众多同行的职业发展后,我决定分享自己的故事。本文探讨了为什么大多数程序员难以成为架构师,并阐述了我从一家外企离职后投身创业的心路历程。 ... [详细]
  • 本文探讨了如何在Hive(基于Hadoop)环境中编写类似SQL的语句,以去除字段中的空格。特别是在处理邮政编码等数据时,去除特定位置的空格是常见的需求。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 解决SVN图标显示异常问题的综合指南
    本文详细探讨了SVN图标无法正常显示的问题,并提供了多种有效的解决方案,涵盖不同环境下的具体操作步骤。通过本文,您将了解如何排查和修复这些常见的SVN图标显示故障。 ... [详细]
  • 磁盘健康检查与维护
    在计算机系统运行过程中,硬件或电源故障可能会导致文件系统出现异常。为确保数据完整性和系统稳定性,定期进行磁盘健康检查至关重要。本文将详细介绍如何使用fsck和badblocks工具来检测和修复文件系统及硬盘扇区的潜在问题。 ... [详细]
author-avatar
木木的亦尘_283
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有