热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

大数据专栏|Hive安装初体验

Hive基本概念什么是HiveHive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。为什么使用HiveØ直接使用hadoo

Hive 基本概念

  • 什么是Hive

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

  • 为什么使用Hive

Ø
直接使用hadoop所面临的问题

人员学习成本太高

项目周期要求太短

MapReduce实现复杂查询逻辑开发难度太大

Ø
为什么要使用Hive

操作接口采用类SQL语法,提供快速开发的能力。

避免了去写MapReduce,减少开发人员的学习成本。

扩展功能很方便。

  • Hive的特点

Ø
可扩展

Hive可以自由的扩展集群的规模,一般情况下不需要重启服务。

Ø
延展性

Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。

Ø
容错

良好的容错性,节点出现问题SQL仍可完成执行。

  • Hive架构

《大数据专栏 | Hive 安装初体验》

Jobtracker是hadoop1.x中的组件,它的功能相当于: Resourcemanager+AppMaster

TaskTracker 相当于: Nodemanager + yarnchild

  • 基本组成

Ø 用户接口:包括 CLI、JDBC/ODBC、WebGUI。

Ø 元数据存储:通常是存储在关系数据库如 mysql , derby中。

Ø 解释器、编译器、优化器、执行器。

  • 各组件的基本功能

Ø 用户接口主要由三个:CLI、JDBC/ODBC和WebGUI。其中,CLI为shell命令行;JDBC/ODBC是Hive的JAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive。

Ø 元数据存储:Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。

Ø 解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。

  • Hive与Hadoop的关系

《大数据专栏 | Hive 安装初体验》
《大数据专栏 | Hive 安装初体验》

  • Hive与传统数据库对比

《大数据专栏 | Hive 安装初体验》

  • 注意:hive具有sql数据库的外表但应用场景完全不同hive只适合用来做批量数据统计分析
  • Hive的数据存储

1、Hive中所有的数据都存储在 HDFS 中,没有专门的数据存储格式(可支持Text,SequenceFile,ParquetFile,RCFILE等)

2、只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。

3、Hive 中包含以下数据模型:DB、Table,External Table,Partition,Bucket。

db:在hdfs中表现为${hive.metastore.warehouse.dir}目录下一个文件夹

table:在hdfs中表现所属db目录下一个文件夹

external table:外部表, 与table类似,不过其数据存放位置可以在任意指定路径

普通表: 删除表后, hdfs上的文件都删了

External外部表删除后, hdfs上的文件没有删除, 只是把文件删除了

partition:在hdfs中表现为table目录下的子目录bucket:桶, 在hdfs中表现为同一个表目录下根据hash散列之后的多个文件, 会根据不同的文件把数据放到不同的文件中

下面来安装 HIVE 吧!

Hive 学习环境 搭建

环境说明:

单机版

源数据库 MySQL

系统:CentOS6.7

Hadoop集群:3 台

  • 【mini61-192.168.25.201】NameNode
  • 【mini62-192.168.25.202】DataNode
  • 【mini62-192.168.25.203】DataNode

安装 MySQL:

可参考:

CentOS6.5安装MySQL5.7详细教程 – $nail – 博客园www.cnblogs.com《大数据专栏 | Hive 安装初体验》
CentOS6.5安装MySQL5.5blog.csdn.net

本次MySQL安装在主机:【mini62】中

注意:删除匿名用户,允许用户远程连接

mysql>use mysql;
mysql> grant all privileges on *.* to root@'%' identified by '123456';
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION ;
mysql>flush privileges;

安装 Hive

参考:

Hive安装与配置 – Kinginme – 博客园www.cnblogs.com《大数据专栏 | Hive 安装初体验》

官方文档:

Apache Software Foundationcwiki.apache.org

本次安装 hive1.2.1

  • 下载:

Index of /apache/hivemirror.bit.edu.cn
Downloadshive.apache.org

  • 使用工具上传 hive 压缩包到 虚拟机
  • 解压

切换 root 用户配置环境变量:

# vi /etc/profile
#增加Hive环境变量
export HIVE_HOME=/home/hadoop/app/hive # 你解压后 Hive 的目录
export PATH=${HIVE_HOME}/bin:$PATH

刷新环境变量 :source /etc/profile

进入 HIVE_HOME / conf/ 目录:

配置元数据库信息

新建文件:

$vi hive-site.xml

添加下面内容:(注意:hive-default.xml.template 配置内容过多,本次新建文件简单配置)

javax.jdo.option.ConnectionUserName 数据库用户名

javax.jdo.option.ConnectionPassword 对应数据库用户密码

javax.jdo.option.ConnectionURL MySQL 地址



javax.jdo.option.ConnectionURL
jdbc:mysql://mini62:3306/hive?createDatabaseIfNotExist=true
JDBC connect string for a JDBC metastore



javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore



javax.jdo.option.ConnectionUserName
root
username to use against metastore database



javax.jdo.option.ConnectionPassword
123456
password to use against metastore database

问题:

Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的 /home/hadoop/app/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar

添加 MySQL 驱动包到 HIVE_HOME/lib 目录下

可到Maven

mysql ” mysql-connector-javamvnrepository.com

MySQL驱动包

启动Hive

如配置了环境变量可直接执行 hive 命令启动

如果没有配置环境变量,在 HIVE_HOME/bin 目录下执行 hive 启动

启动报错:

[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected

Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的 HADOOP_HOME /share/hadoop/yarn/lib/jline-0.9.94.jar

启动完成:

《大数据专栏 | Hive 安装初体验》
《大数据专栏 | Hive 安装初体验》
大数据专栏zhuanlan.zhihu.com《大数据专栏 | Hive 安装初体验》
《大数据专栏 | Hive 安装初体验》
微信公众号:大数据专栏


推荐阅读
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 在前一篇文章《Hadoop》系列之“踽踽独行”(二)中,我们详细探讨了云计算的核心概念。本章将重点转向物联网技术,全面解析其基本原理、应用场景及未来发展前景。通过深入分析物联网的架构和技术栈,我们将揭示其在智能城市、工业自动化和智能家居等领域的广泛应用潜力。此外,还将讨论物联网面临的挑战,如数据安全和隐私保护等问题,并展望其在未来技术融合中的重要角色。 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 本文对比分析了三种基于Java的推理引擎:Jess、Racer和Jena。Jess(Java Expert Shell System)源自CLIPS,后者是一种经典的基于规则的前向推理引擎。Racer则专注于本体和语义推理,支持OWL和SWRL等标准。Jena是一个强大的语义网框架,不仅支持RDF和SPARQL查询,还具备推理能力。通过性能测试和功能对比,本文探讨了它们在不同应用场景下的优劣。 ... [详细]
  • 如何有效解决MySQL中预编译语句失效的问题及专业应对策略 ... [详细]
  • RocketMQ在秒杀时的应用
    目录一、RocketMQ是什么二、broker和nameserver2.1Broker2.2NameServer三、MQ在秒杀场景下的应用3.1利用MQ进行异步操作3. ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
author-avatar
yunzjyun
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有