美文网首页
Hive介绍及结构设计

Hive介绍及结构设计

作者: 南宫萧言 | 来源:发表于2019-01-07 20:18 被阅读0次

    Hive简介:

    Hive 是基于 Hadoop 的一个数据仓库工具,实质就是一款基于 HDFS 的 MapReduce 计算框架,对存储在 HDFS 中的数据进行分析和管理

    非java编程者对hdfs的数据做mapreduce操作。

    Hive 具有 SQL 数据库的外表,但应用场景完全不同,Hive 只适合用来做海量离线数 据统计分析,也就是数据仓库

    通过sql语句操作hdfs,底层调用mapreduce。

    Hive:数据仓库(历史数据分析,数据积累分析)

    Hive:解释器,编译器,优化器等;

    Hive运行时,元数据存储在关系型数据库里(MySql等)。

    yum,rpm,源码安装,压缩包  -------linux安装软件

    具体讲解参考hive

    Hive架构:

    hive官网:hive

    hive架构

    Client提交任务到Driver,1.向关系型数据库查询(元数据);2.解释,编译SQL语句,成为jar任务,3.执行mapreduce任务,最后返回结果。

    -编译器将一个Hive SQL转化成操作符;

    -操作符是Hive的最小的处理单元;

    -每个操作符代表HDFS的一个操作或者一道MapReduce作业。

    Operator:Select,TableScan,Limit,File Output操作;

    Hive采用第三方ANTLR语法分析工具解析hql;

    Hive搭建模式

    1.Local模式

         此模式连接到一个In-memory的数据库Derby,一般用于Unit Test。

    2.单用户模式

    此模式通过网络连接到一个数据库,是最经常使用的模式。

    3.远程服务器模式/多用户模式

    用于非java客户端访问元数据库,在服务器启动MataStroreServer,客户端利用Thrift协议通过MataStroreServer访问元数据库。

    多用户模式

    下面主要介绍单用户模式和多用户模式的搭建:

    搭建准备,MySql的安装:

    安装mysql:          yum install -y mysql-server

    启动服务:          service mysqld start

    chkconfig mysqld on

    输入:mysql启动进程;

    设置用户访问:

    show tables;

    select user, host,password from user;

    修改mysql权限:

    修改权限

    flush privileges;

    删除多余的会对权限造成影响的数据;

    mysql -uroot -p   登录mysql服务器;

    单用户模式安装:

    1.下载hive的安装包,上传到服务器,tar 解压安装,配置环境变量/etc/profile;

    2.这种存储方式需要在本地运行一个mysql服务器,并作如下配置(下面两种使用mysql的方式,需要将mysql的jar包拷贝到$HIVE_HOME/lib目录下)。

    配置文件:

    hive.metastore.warehouse.dir:/user/hive_remote/warehouse

    hive.metastore.local:true

    javax.jdo.option.ConnectionURL:jdbc:mysql://localhost/hive_remote?createDatabaseIfNotExist=true

    javax.jdo.option.ConnectionDriverName:com.mysql.jdbc.Driver

    javax.jdo.option.ConnectionUserName:hive

    javax.jdo.option.ConnectionPassword:password

    [ERROR] Terminal initialization failed; falling back tounsupported

    java.lang.IncompatibleClassChangeError: Found classjline.Terminal, but interface was expected atjline.TerminalFactory.create(TerminalFactory.java:101)

    错误的原因: Hadoop jline版本和hive的jline不一致

    hadoop的jline jar包存放位置:HADOOP_HOME/share/hadoop/yarn/lib/下

    其中的jline包为:jline-0.9.94.jar(hadoop-2.6.5)

    hive的jline jar包存放位置:HIVE_HOME/lib/下

    其中的jline包为:jline-2.12.jar(hive-1.2.1)

    删除hadoop的jline包,把hive的jline包放进去。

    多用户模式安装:

    参考链接:多用户模式

    使用参考链接:基本使用

    相关文章

      网友评论

          本文标题:Hive介绍及结构设计

          本文链接:https://www.haomeiwen.com/subject/hffsrqtx.html