美文网首页
17.Hive简介及搭建指南(详解)

17.Hive简介及搭建指南(详解)

作者: 文茶君 | 来源:发表于2019-12-13 20:18 被阅读0次

Hive中文译为蜂巢。
在前面我们了解了mapreduce的核心思想:分而治之(分治)
SQL是一个相对来说易于学习的编程语言。
大数据未来发展发现:可视化和平台化

Hive简介

Hive数据存储在Hadoop上。Hive是数据仓库。可以读写大规模已经存储(离线)的数据。
因为为了满足非java编程者对hdfs的数据做MapReduce操作,hive产生了。
hive:数据仓库 底层使用MR框架。 数据库一般用于交互式查询,及时反馈,但是hadoop里mr耗时很长,满足不了。 数据仓库里的数据不允许修改,不允许删除。
hive:解释器,编译器,优化器等。
hive运行时,元数据存储在关系型数据库里面。


hive架构

[注]matestore元数据
Hive架构
(1)用户接口有三个,CLI,Client和WUI。Cli启动时,会同时启动一个hive副本。client是hive的客户端,用户连接至Hive Server。在启动Client模式的时候,需要指出Hive Server所在的节点,并且在该节点启动Hive Server。WUI是通过浏览器访问Hive。
(2)hive将元数据存储在数据库中,如mysql,derby(内存数据库,hive自带)。hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
(3)解释器,编译器,优化器完成HQL查询语句从词法分析,语法分析,编译,优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。
(4)hive的数据存储在HDFS中,大部分的查询和计算由MapReduce完成(包含*的查询,比如select * from tbl不会生成MapReduce任务)


-编译器将一个hive SQL转换为操作符
-操作符是hive的最小的处理单元
-每个操作符代表HDFS的一个操作或者一道MapReduce作业


hive搭建(3种)

模式一(很少用)
模式二(常用)
模式三(至少需要三台,达到解耦效果)

安装hive

hive官网查看安装教程
http://hive.apache.org/
4种安装Linux软件方式:1.编译安装 2.rpm 3.yum 4.解压安装

1安装mysq.png
注意这里要安装mysql-server,而不是mysql,mysql只代表安装客户端
2启动mysql.png
3进入mysql.png
4赋予权限.png
分析授予权限语句
grant(授权) all privileges(所有权限) on .(表示所有库(第一个)所有表(第二个)) to 'root'@'%'(@%所有地址允许访问,远程可以访问) indentified by '123'(给密码) with grant option

因为%包含了以上,所以就可以删除了
5,刷新权限.png
6启动zookeeper.png
7.启动.png
8启动resourcemanager(后两台).png
以上就是启动集群
[注意]这里有个小技巧,比如我在node08和node09安装了resourcemanager,我在node09或08输入start-all.sh可以不用专门启动resourcemanage。但是还是要在备机node08或09执行yarn-daemon.sh start resourcemanager
安装需要的包(选中的部分).png 9.传输hive包(版本1.2.1).png 10解压(注意和安装mysql的不是同一台).png 11移动到hive文件.png 12配置环境变量.png 13修改配置.png 14运行.png

在这里,要配置5个参数


15.修改hive-site.xml.png
16删除原来configuration粘贴新的配置.png

关于这些代码现在在给出(官网上找的)

<configuration>  
<property>  
  <name>hive.metastore.warehouse.dir</name>  
  <value>/user/hive_remote/warehouse</value>  
</property>  //hdfs存储路径
   
<property>  
  <name>hive.metastore.local</name>  
  <value>true</value>  
</property>  //是不是本地的metastore。[注意]removed as of hive0.10 就是后面删除了,如果你配了为空,就是本地模式。如果没配,就是远程模式。所以我在本文中并未配置相关参数。配上了没问题,只会报一些警告,说找不到相关参数
   
<property>  
  <name>javax.jdo.option.ConnectionURL</name>  
  <value>jdbc:mysql://localhost/hive_remote?createDatabaseIfNotExist=true</value>  
</property>  //localhost改为node01
   
<property>  
  <name>javax.jdo.option.ConnectionDriverName</name>  
  <value>com.mysql.jdbc.Driver</value>  
</property>  
   
<property>  
  <name>javax.jdo.option.ConnectionUserName</name>  
  <value>hive</value>  
</property>  //username 这里hive改为root
   
<property>  
  <name>javax.jdo.option.ConnectionPassword</name>  
  <value>password</value>  
</property>  
</configuration>  
17执行cd命令后hive.png 18错误.png

这里报错了,查看错误代码,没有驱动包,把原来下载的复制到该地点


19cp原来的mysql包.png
20第二个错误.png

这里发现第二个错误,查看错误代码,发现jline,查看jline版本


21查看有什么jar包.png 22查看hadoop下的lib.png 23查看jline版本.png 24删除后拷贝一份.png
25记住这个目录.png 26hive安装成功.png 27登录浏览器查看.png
具体的文字版本无图方式请看我写的另一篇文章
hive的三种搭建方式概览
通过以上搭建行为,可能就有一个疑问,他是怎么搭建起来的,并未给与明确的指定?
答案是环境变量。
默认配置.png

3.多用户模式

1.Remote一体

这种存储方式需要在远端服务器运行一个mysql服务器,并且需要在Hive服务器启动meta服务。

这里用mysql的测试服务器,ip位192.168.1.214,新建hive_remote数据库,字符集位latine1
这里来理一下思绪,我们所有的有4台服务器,node1,2,3,4.经过上面的配置,node1做mysql元数据,node2搭建了单节点。还有两台,一台做服务端(node3),一台做客户端(node4)。
注意服务端不是指的hive服务端,是元数据的服务端

1由于在单节点搭建过程中已经有jar包了,所以直接拷贝就是了.png 2.拷给node4.png 3配置环境变量.png 4修改变量.png 5.运行配置文件.png
6对node4执行相同的操作.png 7node4运行.png 8在node3上修改hive配置.png
9只需修改两个属性值.png

修改的两个属性是(只修改了属性值):

<property>  

  <name>hive.metastore.warehouse.dir</name>  

  <value>/user/hive/warehouse</value>  

</property>  

<property>  

  <name>javax.jdo.option.ConnectionURL</name>  

  <value>jdbc:mysql://node1/hive?createDatabaseIfNotExist=true</value>  

</property>  

客户端node4修改


10修改客户端.png 11把原来的property除第一个都删掉并修改第一个的值,然后增加一个属性.png
<property>  

  <name>hive.metastore.warehouse.dir</name>  

  <value>/user/hive/warehouse</value>  

</property>  


<property>  

  <name>hive.metastore.uris</name>  

  <value>thrift://192.168.57.5:9083</value>  

</property>  
12服务端启动.png

这是一个阻塞式窗口,就会卡着不动


13ss-nal查看存在9083.png
14node4发现错误jline,处理方法如上面单点方式.png 15处理错误.png 16进入hive.png 17进入node1安装的mysql中发现多了一个.png 18新建表.png 19通过浏览器查看多了hive.png
20插入一个值(可以看到启动了mr任务).png 21执行成功.png

相关文章

  • 17.Hive简介及搭建指南(详解)

    Hive中文译为蜂巢。在前面我们了解了mapreduce的核心思想:分而治之(分治)SQL是一个相对来说易于学习的...

  • java-spring-1

    今日大纲 Spring 框架简介及官方压缩包目录介绍 Spring 环境搭建 IoC 详解 Spr...

  • Spring第一天

    [今日课程大纲] Spring 框架简介及官方压缩包目录介绍 Spring 环境搭建 IoC 详解 Spring ...

  • SpringMVC_入门搭建

    SpringMVC_入门搭建 @(开源框架) 8步详解SpringMVC集成Maven、Tomcat 步骤简介 基...

  • iOS日记15-KVC

    1.iOS开发技巧系列---详解KVC 2.漫谈 KVC 与 KVO 3.KVC/KVO原理详解及编程指南 关键点...

  • 2.git进阶篇总结

    阅读 Git 原理详解及实用指南 记录 进阶 1 - HEAD、master 与 branch: 介绍了 Git ...

  • glusterfs详解及kubernetes 搭建heketi-

    本文包含: gluster各存储卷详解、创建及使用 gluster-kubernetes搭建glusterfs存储...

  • iOS Runtime详解及应用场景

    一 runtime简介 二 Class的结构 三 isa指针详解 四 method详解 五 方法调用及消息转发流程...

  • Zookeeper 集群搭建

    目录 集群简介 环境配置描述 搭建步骤 配置参数详解 集群简介 Zookeeper 作为一个分布式的服务框架,主要...

  • 金考研厦门大学241英语(二外)考研精选资料PDF下载

    1.历年真题及详解 厦门大学241英语(二外)历年考研真题及详解 2.指定教材学习指南 郑树棠《新视野大学英语...

网友评论

      本文标题:17.Hive简介及搭建指南(详解)

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