赞
踩
Hive是基于Hadoop的一个数据仓库管理工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL(HQL)查询功能。本质是将SQL转换为MapReduce程序(默认)。
直接使用Hadoop MapReduce处理数据所面临的问题: 学习成本高,MapReduce实现复杂查询功能开发难度大,使用Hive接口采用类SQL语法,提供快速开发的能力避免了去写MapReduce,减少开发人员的学习成本功能。
用户接口:包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)为Shell命令行;JDBC/ODBC是Hive的JAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive。
元数据存储:通常是存储在关系数据库如 mysql/derby中。Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性,表的数据所在目录等。
解释器、编译器、优化器、执行器:完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。
1、元数据存储在内置的derby数据库中;
2、不需要单独配置metastore 也不需要单独启动metastore服务;
适合测试体验,适合单机单人使用。不同路径启动hive,每一个hive拥有一套自己的元数据,无法共享。
1、元数据使用外置的RDBMS,常见的是MySQL数据库;
2、不需要单独配置metastore 也不需要单独启动metastore服务
每启动一次hive服务,都内置启动了一个metastore。如果使用多个客户端进行访问,就需要有多个Hiveserver服务,此时会启动多个Metastore可能出现资源竞争现象。
1、元数据使用外置的RDBMS,常见的是MySQL数据库;
2、metastore服务单独配置,单独启动,全局唯一。
这样各个客户端只能通过这一个metastore服务访问Hive.
bin/beeline
# 在安装hive的服务器上(主机1),首先启动metastore服务,再启动hiveserver2服务
nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore &
nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service hiveserver2 &
# 在任意机器(如机器2)上使用beeline客户端访问
/export/server/apache-hive-3.1.2-bin/bin/beeline
# 启动beeline后进入如下界面
beeline> ! connect jdbc:hive2://node1:10000 #jdbc访问HS2服务
Connecting to jdbc:hive2://node1:10000
Enter username for jdbc:hive2://node1:10000: root #用户名 要求具备HDFS读写权限
Enter password for jdbc:hive2://node1:10000:
hiveserver2服务启动后无法立即使用, 类似于HDFS的安全模式,大概要半分钟到一分钟才能开始使用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。