热门标签 | 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 安装初体验》
微信公众号:大数据专栏


推荐阅读
  • 【转】腾讯分析系统架构解析
    TA(TencentAnalytics,腾讯分析)是一款面向第三方站长的免费网站分析系统,在数据稳定性、及时性方面广受站长好评,其秒级的实时数据更新频率也获得业界的认可。本文将从实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 分享2款网站程序源码/主题等后门检测工具
    本文介绍了2款用于检测网站程序源码和主题中是否存在后门的工具,分别是WebShellkiller和D盾_Web查杀。WebShellkiller是一款支持webshell和暗链扫描的工具,采用多重检测引擎和智能检测模型,能够更精准地检测出已知和未知的后门文件。D盾_Web查杀则使用自行研发的代码分析引擎,能够分析更为隐藏的WebShell后门行为。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 对于开源的东东,尤其是刚出来不久,我认为最好的学习方式就是能够看源代码和doc,測试它的样例为了方便查看源代码,关联导入源代 ... [详细]
  • 如何在mysqlshell命令中执行sql命令行本文介绍MySQL8.0shell子模块Util的两个导入特性importTableimport_table(JS和python版本 ... [详细]
  • 《Spark核心技术与高级应用》——1.2节Spark的重要扩展
    本节书摘来自华章社区《Spark核心技术与高级应用》一书中的第1章,第1.2节Spark的重要扩展,作者于俊向海代其锋马海平,更多章节内容可以访问云栖社区“华章社区”公众号查看1. ... [详细]
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社区 版权所有