安装Apache Hive-2.3.3

2023-10-26

1、Hive是什么

1.1、Hive是数据仓库

数据仓库英文名DataWarehouse,可简写为DW或DWH。数据仓库 ,由数据仓库之父比尔·恩门(Bill Inmon)于1990年提出,主要功能仍是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料,透过数据仓库理论所特有的资料储存架构,作一有系统的分析整理,以利各种分析方法如联机分析处理(OLAP)、数据挖掘(Data Mining)之进行,并进而支持如决策支持系统(DSS)、主管资讯系统(EIS)之创建,帮助决策者能快速有效的自大量资料中,分析出有价值的资讯,以利决策拟定及快速回应外在环境变动,帮助建构商业智能(BI)。往白了说数据仓库就是用来作为查询分析的数据库,很少用来插入,修改,删除

2.2、Hive是解释器、编译器、优化器、执行器

简单的将就是说HQL会被Hive解释,编译,优化并生成查询计划,一般情况而言查询计划会被转化为MapReduce任务进而执行。

2、Hive架构

  • 对外接口 :命令行接口CLI、客户端接口Client 、WebGUI接口WUI;
  • 元数据存储:通常在关系型数据库,如mysql、oracle;
  • Driver:包含解释器、编译器、优化器、序列反序列化、UDF、执行器;
  • Hadoop:HDFS用来进行MapReduce分布式计算;

3、Hiive的安装

  • 3.1 前置--安装mysql 5.7+
  • 3.2 准备--tar包apache-hive-2.3.3
  • 3.3 配置--hive-site.xml配置
  • 3.4 辅助--使用可视化工具zeppelin-0.7.3-bin-all

4、准备工作

  • 1.访问 hive官网 ,下载对应版本hive的tar包
  • 2. 解压tar包,到指定文件夹目录下 
//解压hive的tar包,到指定的app目录下
$ tar -zxvf apache-hive-2.3.3-bin.tar.gz -C ../app

  •  3. 修改文件夹名,此步骤可忽略
//修改包名
$ mv apache-hive-2.3.3-bin apache-hive-2.3.3

 

5、 配置hive-site.xml

1. 使用hive-default.xml.template,创建hive-site.xml

//进入hive/conf文件夹下
$ cd apache-hive-2.3.3/conf/

//拷贝hive-default.xml.template ,重命名为 hive-site.xml
$ cp hive-default.xml.template hive-site.xml

 

2. 修改元数据数据库地址, javax.jdo.option.ConnectionURL;

//修改hive-site.xml配置
$ vi hive-site.xml

//1. 按 i 键,进入编辑状态
//2. 按 / 键,查找 javax.jdo.option.ConnectionURL

//修改如下
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?autoReconnect=true&amp;useUnicode=true&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=UTC</value>
</property>

 3. 修改元数据数据库驱动,javax.jdo.option.ConnectionDriverName;

// 按 / 键,查找 javax.jdo.option.ConnectionDriverName

//修改如下
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
</property>

4. 修改元数据数据库用户名,javax.jdo.option.ConnectionUserName;

//按 / 键,查找 javax.jdo.option.ConnectionUserName

//修改如下
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
</property>

5. 元数据数据库登陆密码,javax.jdo.option.ConnectionPassword

//按 / 键, 查找  javax.jdo.option.ConnectionPassword

//修改如下
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
</property>

6.  修改hive数据仓库存储地址(在hdfs上具体存储地址),hive.metastore.warehouse.dir;

//按 / 键,查找 hive.metastore.warehouse.dir

//默认 /user/hive/warehouse ,这里不进行调整
//修改如下
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
</property>

7.  配置其他路径;

//1. 配置 hive.querylog.location

//修改如下
<property>
    <name>hive.querylog.location</name>
    <value>/home/hadoop/opt/tmp/hive</value>
</property>


//2. 配置 hive.server2.logging.operation.log.location

//修改如下
<property>
    <name>hive.server2.logging.operation.log.location</name>
    <value>/home/hadoop/opt/tmp/hive/operation_logs</value>
</property>

//3. 配置 hive.exec.local.scratchdir

//修改如下
<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/home/hadoop/opt/tmp/hive</value>
</property>

//4. 配置 hive.downloaded.resources.dir

//修改如下
<property>
    <name>hive.downloaded.resources.dir</name>
    <value>/home/hadoop/opt/tmp/_resources</value>
</property>

8.  配置错误日志

//按 esc 键,退出编辑;
//按 wq 键,保存编辑;

//查看 /conf 
$ ll 

//拷贝 hive-log4j2.properties.template ,并命名为 hive-log4j2.properties
$ cp hive-log4j2.properties.template hive-log4j2.properties

//编辑 hive-log4j2.properties
$ vi hive-log4j2.properties

//按 i 键,进入编辑状态
//配置输出log文件
property.hive.log.dir = /home/hadoop/opt/hive

6、 初始化hive元数据 

1.  初始化schema,schematool -dbType mysql -initSchema

//使用 schematool, 初始化 schema 
[hadoop@hadoop000 apache-hive-2.3.3]$ bin/schematool -dbType mysql -initSchema

2. 补充初始化 schema 时,会出现Underlying cause: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver异常,这里是因为缺少mysql连接驱动,这里使用 mysql-connector-java 5.1.38;

//下载mysql-connector的jar包
[hadoop@hadoop000 lib]$ wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.


//检查mysql驱动是否下载完成
[hadoop@localhost lib]$ ll | grep mysql
-rw-rw-r--. 1 hadoop hadoop   983911 Dec 16  2015 mysql-connector-java-5.1.38.jar
-rw-r--r--. 1 hadoop hadoop     7954 Dec 20  2016 mysql-metadata-storage-0.9.2.jar

再次执行初始化,出现 schemaTool completed ,说明初始化成功;

3.  登录mysql,查看初始化后的hive库

//登录mysql
# mysql -uroot -proot


//查看数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hive               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

//使用 hive
mysql> use hive;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

//查看hive下,所有表,发现是 57 张,说明初始化成功
mysql> show tables;
+---------------------------+
| Tables_in_hive            |
+---------------------------+
| AUX_TABLE                 |
| BUCKETING_COLS            |
| CDS                       |
| COLUMNS_V2                |
| COMPACTION_QUEUE          |
| COMPLETED_COMPACTIONS     |
| COMPLETED_TXN_COMPONENTS  |
| DATABASE_PARAMS           |
| DBS                       |
| DB_PRIVS                  |
| DELEGATION_TOKENS         |
| FUNCS                     |
| FUNC_RU                   |
| GLOBAL_PRIVS              |
| HIVE_LOCKS                |
| IDXS                      |
| INDEX_PARAMS              |
| KEY_CONSTRAINTS           |
| MASTER_KEYS               |
| NEXT_COMPACTION_QUEUE_ID  |
| NEXT_LOCK_ID              |
| NEXT_TXN_ID               |
| NOTIFICATION_LOG          |
| NOTIFICATION_SEQUENCE     |
| NUCLEUS_TABLES            |
| PARTITIONS                |
| PARTITION_EVENTS          |
| PARTITION_KEYS            |
| PARTITION_KEY_VALS        |
| PARTITION_PARAMS          |
| PART_COL_PRIVS            |
| PART_COL_STATS            |
| PART_PRIVS                |
| ROLES                     |
| ROLE_MAP                  |
| SDS                       |
| SD_PARAMS                 |
| SEQUENCE_TABLE            |
| SERDES                    |
| SERDE_PARAMS              |
| SKEWED_COL_NAMES          |
| SKEWED_COL_VALUE_LOC_MAP  |
| SKEWED_STRING_LIST        |
| SKEWED_STRING_LIST_VALUES |
| SKEWED_VALUES             |
| SORT_COLS                 |
| TABLE_PARAMS              |
| TAB_COL_STATS             |
| TBLS                      |
| TBL_COL_PRIVS             |
| TBL_PRIVS                 |
| TXNS                      |
| TXN_COMPONENTS            |
| TYPES                     |
| TYPE_FIELDS               |
| VERSION                   |
| WRITE_SET                 |
+---------------------------+
57 rows in set (0.00 sec)

 7、 启动hive

1. 使用hiveserver2启动hive,启动前需要修改hadoop代理访问权限:

找到hadoop的core-site.xml,添加如下配置:

<property>
  <name>hadoop.proxyuser.hadoop.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.hadoop.groups</name>
  <value>*</value>
</property>

2. hive的访问方式分为两种:

  1). beeline,该方式仅支持本地机器进行操作;

       启动方式如下:$ bin/beeline -u jdbc:hive2://127.0.0.1:10000 -n hadoop

       -n : 代理用户

       -u : 请求地址

  2). hiveserver2,该方式可提供不同的机器进行调用;

       启动方式如下:$ bin/hiveservice2

       查看是否已开放端口:netstat -ant | grep 10000

 

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

安装Apache Hive-2.3.3 的相关文章

  • 是否可以使用 impala 查询包含 DATE 类型列的 Hive 表?

    每次我尝试在 IMPALA 中从 HIVE 中创建的表中选择 DATE 类型字段时 都会收到 AnalysisException Unsupported type DATE 有什么解决方法吗 UPDATE这是从 hive 创建表模式和 im
  • hive中每行的百分比计算

    我在配置单元中有一个具有以下架构的表 差值 int 计数值 int 值为 5 2 30 1 90 1 100 1 现在我想找到每个 count value 与 count value 总和的百分比 每行的值类似于 count value s
  • Hadoop 构建在 Windows 中失败:native.sln 中缺少 zconf.h?

    我正在尝试在使用 Windows 10 家庭版的开发计算机上构建以下 hadoop 版本 hadoop 2 7 3 src 以下是我本地开发环境的详细信息 Windows 10家庭版 英特尔酷睿 i5 6200U CPU 2 30GHz 内
  • Hive 表的默认分隔符是什么?

    如果我们在创建表时不提及任何分隔符 hive 是否有默认分隔符 创建表日志 ts bigint 行字符串 按 dt 字符串 国家 地区字符串 分区 默认分隔符 001 如果创建hive表时没有设置 您可以将其更改为其他分隔符 例如 hive
  • 使用 Hadoop MapReduce 的计算语言学项目构想

    我需要做一个关于计算语言学课程的项目 是否有任何有趣的 语言 问题 其数据密集程度足以使用 Hadoop MapReduce 来解决 解决方案或算法应尝试分析并提供 语言 领域的一些见解 但是它应该适用于大型数据集 以便我可以使用 hado
  • 在hbase中创建表

    我是 hbase 和 hadoop 的新手 无论如何 我已经成功建立了一个由3台机器组成的hadoop集群 现在我需要一些帮助来建立数据库 我有一个表 评论 包含字段 user id comments 对评论的评论 可以多个 和状态字段相同
  • 使用自制软件安装hadoop时出错

    我正在尝试在 Mac 上本地安装 hadoop 但在尝试 brew install hadoop 时收到以下错误 brew install hadoop gt Downloading http www apache org dyn clos
  • Hive 上的自定义 MapReduce 程序,规则是什么?输入和输出怎么样?

    我被困了几天 因为我想根据我在 hive 上的查询创建一个自定义的地图缩减程序 在谷歌搜索后我发现没有太多例子 而且我仍然对规则感到困惑 创建自定义 MapReduce 程序的规则是什么 映射器和减速器类怎么样 任何人都可以提供任何解决方案
  • Amazon MapReduce 日志分析最佳实践

    我正在解析 Apache Nginx Darwin 视频流服务器 生成的访问日志 并按日期 引用者 用户代理聚合每个交付文件的统计信息 每小时都会生成大量日志 而且这个数字在不久的将来可能会急剧增加 因此通过 Amazon Elastic
  • Hive - 通过聚合跨组的值来创建映射列类型

    我有一个看起来像这样的表 customer category room date 1 A aa d1 1 A bb d2 1 B cc d3 1 C aa d1 1 C bb d2 2 A aa d3 2 A bb d4 2 C bb d4
  • 使用 python 从 HDFS 获取文件名列表

    这里是 Hadoop 菜鸟 我搜索了一些有关 hadoop 和 python 入门的教程 但没有取得太大成功 我还不需要使用映射器和缩减器进行任何工作 但这更多是一个访问问题 作为Hadoop集群的一部分 HDFS 上有一堆 dat 文件
  • 将 hadoop fs 路径转换为 ​​EMR 上的 hdfs:// 路径

    我想知道如何将数据从 EMR 集群的 HDFS 文件系统移动到 S3 存储桶 我认识到我可以直接在 Spark 中写入 S3 但原则上 之后执行它也应该很简单 到目前为止 我还没有发现在实践中这是正确的 AWS 文档建议s3 dist cp
  • HDP 3.1.0.0-78 升级后无法使用 ResourceManager UI 终止 YARN 应用程序

    我最近将 HDP 从 2 6 5 升级到 3 1 0 它运行 YARN 3 1 0 并且我无法再使用旧的 8088 cluster apps 或新的 8088 从 YARN ResourceManager UI 终止应用程序 ui2 ind
  • Hive 中字符串数据类型是否有最大大小?

    谷歌了很多 但没有在任何地方找到它 或者这是否意味着只要允许集群 Hive 就可以支持任意大字符串数据类型 如果是这样 我在哪里可以找到我的集群可以支持的最大字符串数据类型大小 提前致谢 Hive 列表的当前文档STRING作为有效的数据类
  • Spark超时可能是由于HDFS中文件超过100万个的binary Files()

    我正在通过以下方式读取数百万个 xml 文件 val xmls sc binaryFiles xmlDir 该操作在本地运行良好 但在纱线上失败并显示 client token N A diagnostics Application app
  • 连接到 Hive 时使用 Spark 进行 Kinit

    我正在尝试从独立的 Spark 连接到 Hive hadoop 集群具有 kerberos 身份验证 有人可以让我知道如何在 Spark 程序中执行 kinit 我可以连接到配置单元吗 更新 我的 Spark 与 Hadoop 位于不同的集
  • Spark JDBC 仅返回带有列名的数据帧

    我正在尝试使用 Spark JDBC 连接到 HiveTable 代码如下 val df spark read format jdbc option driver org apache hive jdbc HiveDriver option
  • Sqoop mysql错误-通信链路故障

    尝试运行以下命令 sqoop import connect jdbc mysql 3306 home credit risk table bureau target dir home sqoop username root password
  • hadoop2.2.0追加文件发生AlreadyBeingCreatedException

    我遇到了一个关于hadoop2 2 0追加操作的问题 我通过 HDFS java API 将一些字节附加到 hdfs 文件 首先 如果在附加操作之前文件不存在 我将创建目标文件 代码如下 String fileUri hdfs hadoop
  • HIVE 执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1

    我在创建配置单元数据库时收到以下错误 FAILED 执行错误 从 org apache hadoop hive ql exec DDLTask 返回代码 1 com facebook fb303 FacebookService Iface

随机推荐

  • Selenium自动化测试 —— 通过cookie绕过验证码的操作

    验证码的处理 对于web应用 很多地方比如登录 发帖都需要输入验证码 类型也多种多样 登录 核心操作过程中 系统会产生随机的验证码图片 进行验证才能进行后续操作 解决验证码的方法如下 1 开发做个万能验证码 推荐 2 测试环境关闭验证码功能
  • Easy Code插件使用(附Spring Data JPA生成模板)

    文章目录 一 概述 二 安装 1 安装插件 2 连接数据库 三 生成代码 四 配置EasyCode 五 Spring Data JPA模板 1 controller类 2 service接口 3 serviceImpl实现类 4 dao接口
  • Python之体育竞技分析

    来源 Python语言程序设计 嵩天 一 问题描述 需求 高手过招 胜负只在毫厘 如何科学地分析体育竞技比赛 输入 球员的水平 输出 预测比赛成绩 二 具体分析 三 代码实现 from random import random 生成随机数
  • uniapp picker实现:市区镇村4级懒加载

    使用这种方法的原因 市区镇村4级数据太大 后台接口响应时间太长 方法实现 样式 view
  • 深度学习各方向开源数据集分类汇总

    转载自 深度学习各方向开源数据集分类汇总 持续更新中 哔哩哔哩 目录 1 小目标检测 2 目标检测 3 人体姿态估计 4 图像分割 语义分割 5 工业检测 6 人脸识别 7 自动驾驶 8 目标跟踪 9 动作识别 10 图像分类 11 图像识
  • 基于Matlab的数字图像水印技术

    基于Matlab 的数字图像水印技术 课题介绍 数字水印技术涉及到许多图像处理算法以及数学计算工具等 如果用普通编程工具实现上述算法 需要要花费大量的时间 MathWorks公司推出的一种简单 高效 功能极强的高级语言 MATLAB语言 它
  • 局部最小值问题

    问题 一个数组 相邻不等 返回任意一个局部最小值 重点是 相邻不等 否则无法用此方法 分析 所谓局部最小值 即左右相邻的数都比他大 当此数为第一个时 只需要右边的比他大即可 最右同理 代码 生成随机数组 相邻不等 void Random a
  • B站疯传!堪称最强!java超级面试资料

    我没有知名企业的工作经历 也没有多么耀目的成就 为什么他们会对我有那么深的印象呢 其实 在我看来 面试都是有迹可循的 也就是说 完全可以用很短的时间准备 却给面试官留下很深的印象 一 好的自我介绍决定了面试的80 不管你相不相信 你适不适合
  • DataX理论知识:简介-框架设计-数据抽取策略

    文章目录 一 简介 二 框架设计 三 数据抽取策略 一 简介 DataX 是一个 异构数据源 离线同步工具 可实现 各种 异构数据源 之间 稳定高效的数据同步功能 设计理念 从 蜘蛛网 到 星型链路 DataX充当一个中转站的角色 二 框架
  • 数据分析——数据特征描述、画箱线图、分组直方图

    数据特征描述 import pandas as pd catering sale r H school 数据挖掘 实验 实验二 catering sale xls data pd read excel catering sale index
  • 如何对SQL Server中的tempdb“减肥”

    SQL Server会自动创建一个名为tempdb的数据库作为工作空间使
  • checkstyle:off 使用注释暂时禁用checkstyle检查

    背景 本文介绍在Gradle中 如何跳过checkstyle对指定的文件 或者指定的代码块 的检查 步骤 1 在checkstyle xml的
  • Typescript常见表达式

    Typescript常见表达式 一 析构表达式 destructuring 1 数组析构表达式 用中括号括起来 var array1 1 2 3 4 function doSomething number1 number2 others c
  • Java基础---反射、多线程

    十 反射机制 1 Java反射机制概述 1 1Java Reflection Reflection 反射 是被犯为动态语言的关键 反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息 并能直接操作任意对象的内部属性
  • datetime.time类介绍

    一 time是一个时间类 由时 分 秒 微妙组成 其构造函数如下 class datetime time hour minute second microsecond tzinfo 参数tzinfo 它表示时区信息 各参数的取值范围 hou
  • window安装docker Desktop和wsl2

    目录 一 先到微软商店下载terminal 也就是power shell 后续命令都在这个里面执行 二 安装docker Destop 1 打开控制面板 2 勾选Hyper V服务 3 根据提示重启电脑 等待更新即可 二 启动Docker
  • 字符串去重的5种方式

    public class Demo public static void main String args String str albcad12l gt sfg gt String newStr quChong5 str System o
  • 深度负反馈

    负反馈放大电路的方块图 因为负反馈放大电路有四种组态 而且对于同一种组态 具体电路也各不相同 所以为了研究负反馈放大电路的共同规律 可以利用方块图来描述所有电路 一 负反馈放大电路的方块图表示法 任何负反馈放大电路都可以用下图所示的方块图来
  • windows服务器禁用135,137,138,139,445端口方法

    windows服务器禁用135 137 138 139 445端口方法 1 防火墙新建入站和出站规则 注意 此方法只针对防火墙已开启的情况下才能实现禁用端口 打开控制面板 系统和安全 Windows Defender 防火墙 在左侧选择 高
  • 安装Apache Hive-2.3.3

    1 Hive是什么 1 1 Hive是数据仓库 数据仓库英文名DataWarehouse 可简写为DW或DWH 数据仓库 由数据仓库之父比尔 恩门 Bill Inmon 于1990年提出 主要功能仍是将组织透过资讯系统之联机事务处理 OLT