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

Hadoop——Hive简介和环境配置

一、Hive的简介和配置1.简介Hive是构建在Hadoop之上的数据操作平台lHive是一个SQL解析引擎,它将SQL转译成MapReduce作业,并
一、Hive的简介和配置

  1.简介

    Hive是构建在Hadoop之上的数据操作平台l Hive是一个SQL解析引擎,它将SQL转译成MapReduce作业,并在Hadoop上运行Hive表是HDFS的一个文件目录,一个表名对应一个目录名,如果存在分区表的话,则分区值对应子目录名。

  2.Hive的体系结构

    Hive作为Hadoop的数据仓库处理工具,它所有的数据都存储在Hadoop兼容的文件系统中。Hive在加载数据的过程中不会对数据进行任何的修改,只是将数据移动到HDFS中Hive设置的指定目录下,因此,Hive不支持对数据的改写和添加,所有的数据都是在加载的时候设定的,Hive的设计特点如下:

        1.支持索引,加快数据查询

         2.不同的存储类型,例如:纯文本文件、HBase中的文件

         3. 将元数据保存在关系型数据库中,减少了在查询中执行语义的检查时间

         4. 可以直接使用存储在Hadoop文件系统中的数据

         5. 内置大量的用户UDF来操作时间,字符串和其他数据挖掘工具,支持用户扩展UDF来完成内置函数无法完成的操作

         6.类SQL的查询方式,将SQL查询转换为MapReduce的job在Hadoop集群上执行

         7.编码与Hadoop同样采用UTF-8

                                 

     

  用户接口:

             ① CLI:CLI启动的时候,会同时启动一个Hive副本

             ② JDBC客户端:封装了Thrift,Java应用程序可以通过指定的主机和端口 连接到在另一个进程中的Hive服务

             ③ WEB接口:通过浏览器访问Hive服务

     Thrift服务器:

            ① 基于Socket通讯,支持跨语言。Hive的Thrift服务简化了在多编程语言 中运行Hive命令,绑定支持C++,JAVA,PHP和Ruby语言。

     解析器:

             ① 编译器:完成HQL语句的从词法分析、语法分析、编译优化以及执行计   划的生成。

          ② 优化器:是一个演化组件,当前它的规则是:列修剪,谓词下压

             ③ 执行器:会顺序执行所有的Job。如果Task链不存在依赖关系,可以采取   并发方式执行Job

     元数据库:

           ① Hive的数据由两部分组成:数据文件和元数据。元数据用于存放Hive库的基   础信息,它存储在关系型数据库中,如MySQL、Derby。元数据包括:数据库信息、表       的名字、表的列和分区及其属性,表的属性,表的数据所在目录等。

      Hadoop:

          ① Hive的数据文件存储在HDFS中,大部分的查询由MapReduce构成,不过对   于包含*的查询,比如select * from lbl不会生成MapReduce作业。

  3.Hive的运行机制

        ① 用户通过用户接口连接Hive,发布Hive SQL

              ② Hive解析查询并制定查询计划

              ③ Hive将查询转换为MapReduce作业

              ④ Hive在Hadoop上执行MapReduce作业

  4.Hive的优势   

    1. 解决了传统关系数据库在大数据处理上的瓶颈,适合大数据的批量处理

    2.充分利用集群的CPU计算资源、存储资源,实现并行计算

    3.Hive支持标准SQL语法,免去了编写MR程序的过程。提升开发效率

    4.具有良好的扩展性,拓展功能很方便

  5.Hive的缺点  

    1.Hive的HQL表达能力有限:有些复杂运算HQL不易表达

    2.Hive的效率低:Hive自动生成MR作业,通常不够智能;HQL调优困难,粒度较粗;可控性差

    3.针对Hive运行效率低下等问题,促使人们去寻找一种更快,更具交互性的分析框架。SparkSQL的出现则有效的提高了Sql在Hadoop上的分析效率

  6.Hive的配置(Lin集群)

   (1).Hive配置前的准备: 完整的hadoop集群; ssh免密登录;安装mysql数据库;安装java

    (2).下载Hive的tar包 下载地址:http://mirror.bit.edu.cn/apache/hive/

    (3).上传Hive到Linux系统上 #将压缩包解压到对应目录  tar -zxvf /usr/localhost/apache-hive-2.3.5-bin.tar.gz

     (4).#将解压的目录重命名为hive    mv apache-hive-2.3.5-bin/ hive     

    (5).#设置hive的环境的变量   vim /etc/profile

    (6).#编辑内容如下(在profile文件)

      export HIVE_HOME=/usr/local/hive  (这个路径是自己将解压后的包解压后的位置)

      export PATH=$PATH:$HIVE_HOME/bin

    (7.)#刷新文件(保存后)   source /etc/profile
    (8).#检查hive版本     hive --version
    (9).Hive的配置
      #切换到hive的配置文件目录
        cd /usr/local/hive/conf/
      #以模板复制一个hive-site.xml
        cp hive-default.xml.template hive-site.xml
      #编辑hive-site.xml文件
        vim hive-site.xml
      #将以下内容插入到hive-site.xml文件,其他内容替换
        
          javax.jdo.option.ConnectionUserName
          root
        

        
          javax.jdo.option.ConnectionPassword
          123456
        

        
          javax.jdo.option.ConnectionURL
          jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true
        

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

        
          
          hive.metastore.schema.verification
          false
        

    (9).接下来将mysql的数据库驱动包放置到hive下的lib目录中
        初始化Hive元数据
          schematool -dbType mysql -initSchema

    (10).beeline连接操作  (找到hadoop的路径在相应的文件下修改以下下文件)

          hdfs-site.xml文件
      
        dfs.webhdfs.enabled
        true
      

        core-site.xml文件
      
        hadoop.proxyuser.root.hosts
        *
      

      
        hadoop.proxyuser.root.groups
        *
      

   (11).使用scp命令发送到slave1与slave2两台节点上,

      scp hdfs-site.xml core-site.xml root@slave1:/usr/local/hadoop-2.8.0/etc/hadoop/
      scp hdfs-site.xml core-site.xml root@slave2:/usr/local/hadoop-2.8.0/etc/hadoop/
   (12).hdfs namenode -format 重启服务 格式化namenode节点 (利用dbvis操作hive)
      ------------------------hiveserver2打开服务
        hiveserver2
      ------------------------beeline连接
        beeline
        !connect jdbc:hive2://master:10000
        ------------------------安装dbvis

   (13).注意事项

      在格式化hadoop集群时 从起hadoop会发现dataName没有启动成功

      解决办法: 进入hadoop的安装路径 找到 etc/hadoop 查看hadoop的tmp文件路径然后进入

                  

       进入红色圈中的文件夹

     

       复制标红的哪一行代码 到从节点的相同目录文件下 覆盖原有的一行

     

      从起集群即可解决

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转:https://www.cnblogs.com/wuxuewei/p/11465825.html



推荐阅读
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • JavaScript 实现图片文件转Base64编码的方法
    本文详细介绍了如何使用JavaScript将用户通过文件输入控件选择的图片文件转换为Base64编码字符串,适用于Web前端开发中图片上传前的预处理。 ... [详细]
  • 本文介绍如何通过整合SparkSQL与Hive来构建高效的用户画像环境,提高数据处理速度和查询效率。 ... [详细]
  • 关于进程的复习:#管道#数据的共享Managerdictlist#进程池#cpu个数1#retmap(func,iterable)#异步自带close和join#所有 ... [详细]
  • Ubuntu 环境下配置 LAMP 服务器
    本文详细介绍了如何在 Ubuntu 系统上安装和配置 LAMP(Linux、Apache、MySQL 和 PHP)服务器。包括 Apache 的安装、PHP 的配置以及 MySQL 数据库的设置,确保读者能够顺利搭建完整的 Web 开发环境。 ... [详细]
  • 开发笔记:前端之前端初识
    开发笔记:前端之前端初识 ... [详细]
  • 大数据领域的职业路径与角色解析
    本文将深入探讨大数据领域的各种职业和工作角色,帮助读者全面了解大数据行业的需求、市场趋势,以及从入门到高级专业人士的职业发展路径。文章还将详细介绍不同公司对大数据人才的需求,并解析各岗位的具体职责、所需技能和经验。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
author-avatar
蟹子的宿命
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有