Hive简介和安装

2023-11-16

1,Hive是基于hadoop的数据仓库解决方案,由facebook贡献给Apache。Hive出现的初衷是让不熟悉编程的数据分析人员也能够使用hadoop处理大数据,这是怎么实现的呢?

2,我们先来看看Hive提供的接口,从下面Hive的架构图中可以很明显的看出来,Hive 提供了Hive shell,JDBC/ODBC,Web接口来使用和管理Hive数据仓库。

  • Hive的shell接口可以通过客户端接受shell命令,而Hive 提供了类似于 sql的HiveQL语法,使得通过Hive可以用类似于操作关系数据库那样对Hive数据仓库进行操作,熟悉sql的数据分析人员可以很容易的学会操作Hive利用hadoop进行大数据分析。
  • Web接口可以让我们像管理hadoop一样通过浏览器监控、管理hive数据仓库。




3,Hive的安装分为三种:内嵌模式、单机模式、远程模式

*内嵌模式:元数据保持在内嵌的Derby模式,只允许一个会话连接
*本地独立模式:在本地安装Mysql,把元数据放到Mysql
*远程模式:元数据放置在远程的Mysql数据库
4,Hive内嵌模式的安装:内嵌安装,Hive的元数据存储在derby数据库中,derby数据只允许单用户连接,所以只适用于实验环境。
4.1  下载Hive安装介质。http://mirror.bit.edu.cn/apache/hive/stable/
4.2   我的试验环境是在win7系统下安装virtualbox,linux系统是centos。所以我是在windows中下载Hive的安装压缩包,然后通过工具winscp将其传送到linux文件系统中。
4.3   解压Hive安装包并创建软连接。软连接可以不用创建,创建软连接的原因是hive-0.11.0 名称太长不方便书写,创建软连接相当于给hive-0.11.0起了一个更简单的别名。实际上我们也可以通过命令 mv  直接将文件夹名hive-0.11.0改为hive。
4.4修改配置文件,更改配置文件名称。
  •    在/etc/profile中添加HIVE_HOME环境变量

  

  •   在hive安装目录下的conf文件夹中的hive-default.xml.template,hive-log4j.properties.template复制改名:

    cp hive-default.xml.template   hive-site.xml

  •     cp hive-log4j.properties.template   hive-log4j.properties
这样hive的内嵌模式就安装好了,可以通过执行命令 Hive进行验证。
5,独立模式和远程模式的安装。
独立模式和远程模式下,元数据都存储在mysql数据库中,不同的是独立模式下mysql安装在本地,远程模式下mysql安装在远程计算机上。
因为独立模式和远程模式都不在使用内嵌的derby数据库存储元数据,而是使用mysql存储元数据,所以首先要装mysql数据库。
5.1本地安装mysql数据库。
mysql的java驱动包下载http://dev.mysql.com/downloads/connector/j/
下载mysql和mysql驱动之后,开始安装,要注意使用root用户来安装mysql数据库,否则会在使用的过程中遇到权限不足的问题。
第一步,解压mysql和mysql的java驱动。
第二步,使用命令rpm安装mysqlserver。(如下图,图片来自艾伦老师hadoop视频教程)
在安装过程中,系统会自动生成一个用户,用户名是当前系统用户名,如root,初始密码存放在/root/.mysql_secret文件夹中。如下图进行查看,每个用户的初识密码是不一样的。
第三步,安装mysql_client和mysql_devel.
执行命令启动mysql服务。
第四步,用之前安装mysqlserver时生成的用户名和密码登陆mysql,并修改密码。
第五步,授权任何ip地址的用户使用客户端登陆mysql。
第六步,创建一个新的用户,如hive,并给这个用户授权。
> create user 'hadoop'identified by '123456';
>grant all on *.* tohadoop@'%'with grant option;
第七步,用创建的用户hive登陆mysql,创建名为hive数据库用来存储hive数据仓库元数据。
mysql -uhadoop-p123456
mysql> create database hive;
5.2修改hive-site.xml配置文件,指定mysql连接字符串和用户名及密码。这里不修改的话就默认用derby作为元数据存储。

5.3,将之前下载解压的mysql的java驱动复制到{hivehome}/lib目录下


5.4 输入hive命令测试,hive独立安装是否成功。

总结:独立模式和内嵌模式区别和联系,独立模式是在内嵌模式的基础之上继续安装,独立模式要安装mysql数据库,要再hive-site.xml文件中指定元数据库为mysql,要将mysql的驱动包放置在hive安装目录下的lib目录中。


5.5远程模式的安装。

一是,远程模式首先要指定mysql的位置,在hive-site.xml文件中告诉hive怎么去连接mysql元数据库。

Ø修改hive-site.xml的javax.jdo.option.ConnectionURL参数,调整主机名为远程机的主机名
二是,hive-site.xml中配置metastore不采用本地存储的方式,而要采用远程的方式。
Ø配置hive.metastore.uris参数
 <property>
          <name> hive.metastore.local </name>
          <value> false </value>
          <description>controls whether to connect to remote metastore server or open a new metastore server in Hive Client JVM</description>
        </property>
          <property>
          <name> hive.metastore.uris </name>
          <value> thrift://hadoop0:9083 </value>
          <description></description>
   </property>

对于远程安装,即把hive的元数据库安装在和hive不同的服务器上,所以和内嵌安装以及独立安装不同的是,我们需要单独启动远程的metastore服务,从而连接元数据库。


6,hive的远程启动。远程安装的启动步骤可以总结为:启动mysql服务(mysql  service   start),启动远程元数据服务(hive --service metastore),启动本地hive服务(hive --service hiveserver)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive简介和安装 的相关文章

随机推荐

  • 机器学习实战(集成学习与随机森林)

    集成学习与随机森林 更新权重 Adaboost AdaBoostClassifier base estimator None n estimators 50 learning rate 1 0 algorithm SAMME R rando
  • JavaScript去除数组对象中多余字段,提取对象数组中某些的属性组成新的对象数组。

    对象数组中每个对象包含很多属性 批量操作只需要要用到一两个属性 可以提取原数组中的属性组成一个新的对象数组 const data classtypecode 新人对象 NST suoxie classtypename null trains
  • 一般函数指针和类的成员函数指针

    一般函数指针和类的成员函数指针 转载请注明原文网址 http www cnblogs com xianyunhe archive 2011 11 26 2264709 html 函数指针是通过指向函数的指针间接调用函数 函数指针可以实现对参
  • 如何利用Java完成在数组中插入数值并且排序(从大到小)

    首先要对数据组进行扩容 然后定义新的数据组 将旧数据组的值重新赋值 最后开始插入数值 数组插入值 前提 数组本身有序 插入要保证不会越界 步骤 1 从后向前遍历 2 每个值要与插入的值进行比较 不符合顺序的后移 3 符合顺序的 要在后方插入
  • AD之PCB中元器件旋转45度后两元器件无法靠得很近

    最近笔者因为在画一块圆形PCB板 所以为了节省PCB空间 有时需要将元器件倾斜放置 在这时就产生了一个问题 问题情况及解决办法记录如下 问题描述 首先是正常竖直放置时 两元器件可以放置得很近 这没有问题 然后将两元器件同时选中并旋转45度
  • 软件工程基础知识--需求分析

    软件需求 在进行需求获取之前 首先要明确需要获取什么 也就是需求包含哪些内容 软件需求是指用户对目标软件系统在功能 行为 性能 设计约束等方面的期望 通常 这些需求包括功能需求 性能需求 用户或人的因素 环境需求 界面需求 文档需求 数据需
  • Numpy 数组切片

    一 列表切片 一维数组 1 1 切片原理 列表切片是从原始列表中提取列表的一部分的过程 在列表切片中 我们将根据所需内容 如 从何处开始 结束以及增量进行切片 剪切列表 Python中符合序列的有序序列都支持切片 slice 例如列表 字符
  • 嵌入式成长手册——初级嵌入式开发工程师技术栈

  • 【python爬虫】爬虫程序模板(面向对象)

    爬虫代码模板 程序结构 class xxxSpider object def init self 定义常用变量 比如url或计数变量等 def get html self 获取响应内容函数 使用随机User Agent def parse
  • 了解 HTTP3.0 吗?简要说一下 HTTP 的一个发展历程?

    码字不易 有帮助的同学希望能关注一下我的微信公众号 Code程序人生 感谢 代码自用自取 一 HTTP 3 0 HTTP3 0 也称作HTTP over QUIC HTTP3 0的核心是QUIC 读音quick 协议 由Google在 20
  • 埋点数据

    原文源自 http www woshipm com pmd 751876 html 本文作者将从一个埋点系统设计者的角度通俗系统地讲解埋点的全过程 涉及到埋点基础知识 埋点作用 埋点方法 埋点数据流程 埋点应用 埋点管理等信息 埋点是什么
  • STM32之中断与事件---中断与事件的区别

    转自http blog csdn net flydream0 article details 8208463
  • docker添加新的环境变量_关于docker:在Dockerfile中,如何更新PATH环境变量?

    我有一个从源代码下载和构建GTK的dockerfile 但以下行没有更新我的图像的环境变量 RUN PATH opt gtk bin PATH RUN export PATH 我读到我应该使用ENV来设置环境值 但以下指令似乎也不起作用 E
  • conda的安装与使用

    conda的安装与使用 一 conda可以干嘛 官方介绍 Anaconda 是一个包含数据科学常用包的 Python 发行版本 它基于 conda 一个包和环境管理器 衍生而来 你将使用 conda 创建环境 以便分隔使用不同 Python
  • 苏神文章解析(6篇)

    苏神文章解析 文章目录 苏神文章解析 1 浅谈Transformer的初始化 参数化与标准化 1 1采样分布 截尾正态分布 1 2 正交初始化 Xavier初始化 1 3 直接标准化 1 4 NTK参数化 1 5 残差连接 2 模型参数的初
  • 图像边缘算法——计算图像边缘(OpenCV)

    目录 一 算法描述 二 计算欧氏距离的Python代码 三 完整的代码 四 结果 一 算法描述 算法的基本原理是 将当前像素与邻接的下部和右部进行比较 如果相似 则将当前像素设置为白色 否则设置为黑色 如何判定像素相似呢 应用欧式距离算法
  • 吐血整理!Python程序员常见的几种变现方式!

    今天聊一个特俗但是大家都想的事情 那就是 赚钱 这件事 先说为什么这个事情 特俗 因为其实我发现我身边大部分程序员不爱谈钱 或者羞于谈钱 加上程序员工资普遍比较高 所以早期都没啥压力 但是随着年龄增大 薪资的涨薪幅度放缓 问题逐渐就暴露出来
  • n个人围成一圈 报数3 python

    n int input count 0 a list range 1 n 1 while len a gt 1 b a for i in range len a count 1 if count 3 0 a remove b i print
  • 不能使用clr编译c文件 怎么强制用clr_一名合格的 C/C++ 开发者拥有这些能力,你就可以去面试了!...

    首先你需要一个显得十分有 经验 的发型 然后拥有一身程序员的基本装备 比如 言归正传 在大多数开发人员的认知中 C C 是一门非常难学的编程语言 很多人知道它的强大 但因为 难 造成的恐惧让很多人放弃 在我看来 C C 一旦学成 其妙无穷
  • Hive简介和安装

    1 Hive是基于hadoop的数据仓库解决方案 由facebook贡献给Apache Hive出现的初衷是让不熟悉编程的数据分析人员也能够使用hadoop处理大数据 这是怎么实现的呢 2 我们先来看看Hive提供的接口 从下面Hive的架