大数据基础平台搭建-(五)Hive搭建

news2025/1/18 7:32:48

大数据基础平台搭建-(五)Hive搭建

大数据平台系列文章:
1、大数据基础平台搭建-(一)基础环境准备
2、大数据基础平台搭建-(二)Hadoop集群搭建
3、大数据基础平台搭建-(三)Hadoop集群HA+Zookeeper搭建
4、大数据基础平台搭建-(四)HBase集群HA+Zookeeper搭建
5、大数据基础平台搭建-(五)Hive搭建

目录

  • 大数据基础平台搭建-(五)Hive搭建
  • 一、部署架构
  • 二、Hadoop集群各节点分布情况
  • 三、Hive搭建前准备
    • 1、Hadoop集群搭建完成
    • 2、Zookeeper集群搭建完成
    • 3、HBase集群搭建完成
    • 4、mysql数据库
    • 5、各组件版本说明
  • 四、Hive搭建
    • 1、在hnode5上部署Hive
      • 1).解压安装包
      • 2).配置环境变量
      • 3).为Hive元数据创建数据库
      • 4).为Hive添加mysql数据库驱动
      • 5).修改hive的环境变量
      • 6).修改hive-size.xml
      • 7).初始化元数据配置表
  • 五、Hive服务启动
    • 1、启动metastore服务
    • 2、启动hiveserver2服务
    • 3、以root用户通过beeline连接hive

一、部署架构

在这里插入图片描述

二、Hadoop集群各节点分布情况

序号服务节点NameNode节点Zookeeper节点HMaster节点HRegionServer节点Hive节点
1hNode1√ (主)√ (主)--
2hNode2√ (备)√ (备)--
3hNode3---
4hNode4----
5hNode5---

三、Hive搭建前准备

1、Hadoop集群搭建完成

参见大数据基础平台搭建-(三)Hadoop集群HA+Zookeeper搭建

2、Zookeeper集群搭建完成

参见大数据基础平台搭建-(三)Hadoop集群HA+Zookeeper搭建中的**【三、搭建Zookeeper集群】**部分

3、HBase集群搭建完成

参见大数据基础平台搭建-(四)HBase集群HA+Zookeeper搭建

4、mysql数据库

用于存储Hive元数据信息,mysql服务的安装就不在文章中体现了,大家可以配置一个已经安装的mysql数据库即可。

5、各组件版本说明

序号软件名称版本说明
1JDK1.8
2Hadoop3.3.4
3HBase3.8.0列式数据库
4Zookeeper2.4.15
5Hive3.1.3Hadoop数据仓库工具
6mysql5.7.39Hadoop数据仓库工具

四、Hive搭建

1、在hnode5上部署Hive

1).解压安装包

[root@hnode1 ~]# cd /opt/hadoop
[root@hnode5 hadoop]# tar -xzvf ./apache-hive-3.1.3-bin.tar.gz

2).配置环境变量

[root@hnode1 hadoop]# vim /etc/profile
#Hive
export HIVE_HOME=/opt/hadoop/apache-hive-3.1.3-bin
export PATH=$HIVE_HOME/bin:$PATH
[root@hnode1 hadoop]# source /etc/profile

3).为Hive元数据创建数据库

[root@dbserver opt]# mysql -uroot -p
mysql> create database hiveDB_metastore charset=utf8;

4).为Hive添加mysql数据库驱动

将mysql-connector-java-5.1.12-bin.jar(mysql驱动jar)上传到/opt/hadoop/apache-hive-3.1.3-bin/lib/目录下

5).修改hive的环境变量

[root@hnode1 hadoop]# cd /opt/hadoop/apache-hive-3.1.3-bin/conf
[root@hnode5 conf]# cp ./hive-env.sh.template ./hive-env.sh
[root@hnode5 conf]# vim hive-env.sh
export HIVE_CONF_DIR=/opt/hadoop/apache-hive-3.1.3-bin/conf
export JAVA_HOME=/usr/java/jdk1.8.0_271
export HADOOP_HOME=/opt/hadoop/hadoop-3.3.4
export HIVE_AUX_JARS_PATH=/opt/hadoop/apache-hive-3.1.3-bin/lib

6).修改hive-size.xml

[root@hnode5 conf]# cp ./hive-default.xml.template ./hive-site.xml
[root@hnode5 conf]# vim ./hive-site.xml
#把hive-site.xml 中所有包含 ${system:java.io.tmpdir}替换成/opt/hadoop/apache-hive-3.1.3-bin/iotmp.
:%s#${system:java.io.tmpdir}#/opt/hadoop/apache-hive-3.1.3-bin/iotmp#g
#如果系统默认没有指定系统用户名,那么要把配置${system:user.name}替换成当前用户名root
:%s/${system:user.name}/root/g
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- jdbc 连接的 URL -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.168.2.186:3306/hiveDB_metastore?useSSL=false</value>
    </property>
 
    <!-- jdbc 连接的 Driver-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>

    <!-- jdbc 连接的 username-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <!-- jdbc 连接的 password -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>
    <!-- Hive 元数据存储版本的验证 -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
    <!--元数据存储授权-->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
    <!-- Hive 默认在 HDFS 的工作目录 -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/hive/warehouse</value>
    </property> 
    <!-- 指定存储元数据要连接的地址 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hnode5:9083</value>
    </property>
    <!-- 使用 JDBC 方式访问 Hive; 指定 hiveserver2 连接的 host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hnode5</value>
    </property>
    <!-- 指定 hiveserver2 连接的端口号 -->
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>
    
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>
    
</configuration>

7).初始化元数据配置表

[root@hnode5 conf]# schematool -initSchema -dbType mysql -verbose

五、Hive服务启动

1、启动metastore服务

# 方式一 以后台模式运行
[root@hnode5 conf]# hive --service metastore &
# 方式二 输出信息指向黑洞
[root@hnode5 conf]# hive --service metastore 2>&1 >/dev/null &

2、启动hiveserver2服务

# 方式一 以后台模式运行
[root@hnode5 conf]# hive --service hiveserver2 &
# 方式二 输出信息指向黑洞
[root@hnode5 conf]# hive --service hiveserver2 >/dev/null 2>&1 &

3、以root用户通过beeline连接hive

# 在HDFS上创建Hive目录/hive/warehouse,并赋予777权限
[root@hnode1 opt]# hdfs dfs -mkdir -p /hive/warehouse
[root@hnode1 opt]# hadoop fs -chmod -R 777 /hive
[root@hnode1 opt]# hadoop fs -chmod -R 777 /hive/warehouse
# 设置hadoop代理用户
[root@hnode1 opt]# vim /opt/hadoop/hadoop-3.3.4/etc/hadoop/core-site.xml
<property>
  <!-- 注意是root,根据自己实际部署hadoop的用户的组来进行设置 -->
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>

将core-size.xml分发给其它所有hadoop节点,然后重启hadoop集群和Hive服务

[root@hnode5 opt]# beeline
beeline> !connect jdbc:hive2://hnode5:10000
Connecting to jdbc:hive2://hnode5:10000
Enter username for jdbc:hive2://hnode5:10000: root
Enter password for jdbc:hive2://hnode5:10000: ******
Connected to: Apache Hive (version 3.1.3)
Driver: Hive JDBC (version 3.1.3)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://hnode5:10000> create database hivetest1;
0: jdbc:hive2://hnode5:10000> show databases;
OK
INFO  : Compiling command(queryId=root_20230106163527_be98a4b0-c479-43e1-bef8-8ef1b7ebff5c): show databases
INFO  : Concurrency mode is disabled, not creating a lock manager
INFO  : Semantic Analysis Completed (retrial = false)
INFO  : Returning Hive schema: Schema(fieldSchemas:[FieldSchema(name:database_name, type:string, comment:from deserializer)], properties:null)
INFO  : Completed compiling command(queryId=root_20230106163527_be98a4b0-c479-43e1-bef8-8ef1b7ebff5c); Time taken: 0.042 seconds
INFO  : Concurrency mode is disabled, not creating a lock manager
INFO  : Executing command(queryId=root_20230106163527_be98a4b0-c479-43e1-bef8-8ef1b7ebff5c): show databases
INFO  : Starting task [Stage-0:DDL] in serial mode
INFO  : Completed executing command(queryId=root_20230106163527_be98a4b0-c479-43e1-bef8-8ef1b7ebff5c); Time taken: 0.015 seconds
INFO  : OK
INFO  : Concurrency mode is disabled, not creating a lock manager
+----------------+
| database_name  |
+----------------+
| default        |
| hivetest1      |
+----------------+
2 rows selected (0.089 seconds)
0: jdbc:hive2://hnode5:10000> 

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/144811.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android今日头条平台隐私合规整改

头条应用管理平台开发者合规指引&#xff1a;https://open.oceanengine.com/labels/7/docs/1730079845340164头条审核合规的app&#xff0c;需要具备以下条件&#xff1a;用户协议弹窗抖音隐私政策&#xff08;模板示例&#xff09;&#xff1a;https://sf3-cdn-tos.douyinstat…

别告诉我你只知道waitnotify,不知道parkunpark???

目录 park&unpark wait,notify 和 park,unpark的区别 park unpark 原理 先调用park的情况 先调用park,在调用unpark的情况 先调用unpark,在调用park的情况 park&unpark park和unpark都是LockSupport的方法,park用于暂停当前线程的运行,而unpark用于恢复该线程的…

服务机器人“众生相”

在多种因素的共同作用下&#xff0c;早年间经常出现在科幻片中的机器人已然穿越荧屏来到了现实世界&#xff0c;为人们的日常生活增添了几分便利。比如&#xff0c;在家庭场景中&#xff0c;扫地机器人帮助人们解放双手&#xff1b;在餐饮场景中&#xff0c;送餐机器人为顾客提…

C语言--探索函数栈帧的创建与销毁

目录 为main函数开辟栈帧 创建变量 传参 为自定义函数开辟栈帧 返回 局部变量是怎么创建的&#xff1f;为什么局部变量的值是随机值&#xff1f;函数是怎么传参的&#xff1f;形参与实参的关系&#xff1f;函数怎么调用与返回&#xff1f; 我们用VS2013的环境进行探索…

Https为什么比Http安全?

Https是在Http之上做了一层加密和认证&#xff1b; 主要的区别是Https在TLS层对常规的Http请求和响应进行加密&#xff0c;同时对这些请求和响应进行数字签名。 Http请求的样式&#xff1a; 明文传输&#xff0c;通过抓包工具可以抓到 GET /hello.txt HTTP/1.1 User-Agent: c…

【三】Netty 解决粘包和拆包问题

netty 解决粘包和拆包问题TCP 粘包/拆包的基础知识粘包和拆包的问题说明TCP粘包/拆包 原因粘包和拆包的解决策略tcp 粘包/拆包 的问题案例大致流程如图:代码展示(jdk1.7)TimeServer 服务端启动类TimeServerHandler 服务端业务处理类TimeClient 客户端启动类TimeClientHandler 客…

Python入门注释和变量(2)

1.1输入 a input("请输入内容") print("您输入的内容是&#xff1a;{}".format(a)) 输入的内容会帮我们转换成字符串形式 2.1运算符 2.1.1算数运算符 以a 10 , b 20 为例进行运算 运算符描述实例加两个对象相加ab输出结果30-减得到负数或是一个数减…

You辉编程_有关boot

一、SpringBoot多环境配置 1.环境的配置信息 (1)application.properties #指定默认使用dev的配置 spring.profiles.activedev (2)application-dev.properties #开发环境 server.port8080 branchdev (3)application-prod.properties #测试环境 server.port8081 branchtest2…

【Nacos】Nacos介绍和简单使用

Nacos介绍及简单使用 Nacos介绍 Nacos是SpringCloudAlibaba架构中最重要的组件。Nacos是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台&#xff0c;提供了注册中心、配置中心和动态DNS服务三大功能。能够无缝对接SpringCloud、Spring、Dubbo等流行框架。 …

环境搭建 | MuMu模拟器 - Window10/11 系列

&#x1f5a5;️ 环境搭建 专栏&#xff1a;MuMu模拟器 - Window10/11 系列 &#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; ✨ 个人主页&#xff1a;CoderHing的个人主页 &#x1f340; 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ …

FLV格式分析

1.FLV封装格式简介 FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式&#xff0c;由于其封装后的⾳视频⽂件体积小、封装简单等特点&#xff0c;⾮常适合于互联⽹上使⽤。⽬前主流的视频⽹站基本都⽀持FLV。采⽤ FLV格式封装的⽂件后缀为.flv。 2.FLV封装格式分析 FLV封装格…

视频监视计划和设计软件丨IP Video System Design Tool功能简介

本软件提供快速轻松地设计现代视频监视系统之新方式 产品功能 • 降低寻找更好的视频摄像机位置的成本时&#xff0c;增加您的安全系统效能。 • 极短时间内&#xff0c;即可计算出精确的摄像机镜头焦距长度与视角。 • 使用2D和3D建模&#xff0c;检查每台摄像机的视野并寻…

新应用——合同管理应用,实现合同无纸化管理

合同管理应用&#xff0c;是建立在低代码技术基础上&#xff0c;结合企业的管理方式&#xff0c;为企业提供决策、计划、控制与经营绩效评估的全方位、系统化的合同管理解决方案。百数合同管理系统应用提供了从合同模板、合同签订、合同收付款和合同发票管理、合同归档&#xf…

我是如何两个月通过软件设计师的!

软设刚过&#xff0c;分享下经验 个人感觉不是很难&#xff0c;我都不好意思说我没怎么复习&#xff0c;本来以后自己要二战了&#xff0c;没想到&#xff0c;成绩还挺惊喜&#xff0c;大概是因为最后几天冲刺到点子上了。 攻略&#xff1a; 搜集资料&#xff0c;搜集考试相…

一、Kubernetes介绍

文章目录1.常见容器编排工具2.kubernetes简介3.kubernetes组件4.kubernetes概念1.常见容器编排工具 Swarm&#xff1a;Docker自己的容器编排工具Mesos&#xff1a;Apache的一个资源统一管控的工具&#xff0c;需要和Marathon结合使用Kubernetes&#xff1a;Google开源的的容器…

vector的实现和使用中的常见错误

文章目录实现构造函数时的调用模糊实现insert函数时的迭代器失效使用erase函数时的迭代器失效实现reserve函数使用memcpy函数导致的浅拷贝实现构造函数时的调用模糊 vector的构造函数有这四种,其中有两种在实例化的时候会有调用模糊的问题&#xff1a; vector<int> v(10…

SpringBoot自定义配置的提示

文章目录1. 引入依赖2. 开启 IDEA 配置3. 使用 ConfigurationProperties 自定义配置4. 编译项目&#xff0c;自动生成 spring-configuration-metadata.json 文件文件中的属性值介绍5. 可以看到有提示了官方文档&#xff1a;https://docs.spring.io/spring-boot/docs/2.2.2.RELE…

机器视觉(七):图像分割

目录&#xff1a; 机器视觉&#xff08;一&#xff09;&#xff1a;概述 机器视觉&#xff08;二&#xff09;&#xff1a;机器视觉硬件技术 机器视觉&#xff08;三&#xff09;&#xff1a;摄像机标定技术 机器视觉&#xff08;四&#xff09;&#xff1a;空域图像增强 …

whistle的使用【前端抓包】

前言 抓包工具看起来只是测试要用的东西&#xff0c;其实对前端作用也很多&#xff0c;因为我们也要模拟请求、mock数据、调试。站在巨人肩膀上永远不亏! whistle能解决的痛点 一、看请求不方便 跳页、支付时候上一页的请求结果看不到&#xff0c;h5、小程序newWork不能在电…

Raki的读paper小记:Continual Learning of Natural Language Processing Tasks: A Survey

第一次写综述的小记&#xff0c;也将是我读完的第一篇综述&#xff08; 最开始因为可乐老师的原因&#xff0c;接触到了持续学习&#xff0c;然后从一开始的音频到自己读了一些ICLR的paper找idea做NLP的持续学习&#xff0c;然后做了自己第一个粗糙的工作&#xff0c;在杰哥的…