大数据环境搭建(一)-Hive

news2024/12/24 18:18:06

1 hive介绍

由Facebook开源的,用于解决海量结构化日志的数据统计的项目

本质上是将HQL转化为MapReduce、Tez、Spark等程序

Hive表的数据是HDFS上的目录和文件

Hive元数据 metastore,包含Hive表的数据库、表名、列、分区、表类型、表所在目录等。

根据Hive部署模式(嵌入、本地、远程)的不同,元数据存储的位置也不同,一般是远程方式多用户访问,元数据存储MySQL中。

用户通过客户端(CLI、JDBC/ODBC) 向Hive提交SQL语句执行任务,大致会做如下操作:

  • 提交SQL给Driver
  • 将SQL转换为抽象语法树(AST),使用Hive的元数据进行校验
  • 将抽象语法树转换为逻辑计划
  • 将逻辑计划转换为物理计划
  • 执行物理计划,返回结果给客户端

2 CentOS安装MySQL 存储Hive元数据

MySQL部署在bd-centos01节点

添加mysql的yum源

下载mysql源安装包,MySQL官网的YUM源地址(http://dev.mysql.com/downloads/repo/yum/ )

# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安装mysql源

# yum localinstall mysql57-community-release-el7-8.noarch.rpm

检查mysql源是否安装成功

# yum repolist all | grep mysql
安装、启动mysql服务
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# yum -y install mysql-community-server
# systemctl start mysqld
# systemctl enable mysqld
修改root本地登录密码

获取临时密码

$ grep 'temporary password' /var/log/mysqld.log
2019-06-17T08:07:04.775619Z 1 [Note] A temporary password is generated for root@localhost: 6?qrG;ClOP7A

登录

$ mysql -u root -p

修改密码

mysql> set password = password("密码");

*5.5+版本要求密码:字母大小写、数字、特殊字符*

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> alter user 'root'@'localhost' identified by '密码';
Query OK, 0 rows affected (0.00 sec)
添加远程登录用户
mysql> grant all privileges on *.* to 'hadoop'@'%' identified by '密码' with grant option;
mysql> flush privileges;
mysql> quit;

3 hive环境搭建

先安装启动hadoop

参考 Hadoop环境安装

安装
$ tar -zxf  hive-3.1.3.tar.gz -C /opt/modules/
$ mv /opt/modules/apache-hive-3.1.3-bin/ /opt/modules/hive-3.1.3
配置
  • 配置hive-site.xml

    $ cd /opt/modules/hive-3.1.3/
    $ vi conf/hive-site.xml
    添加如下内容
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://bd-centos01:3306/metastore?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
        </property>
    
        <property>
            <name>javax.jdo.option.ConnectionDriverName</name>
            <value>com.mysql.jdbc.Driver</value>
        </property>
    
        <property>
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>hadoop</value>
        </property>
    
        <property>
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>mysql中添加的hadoop用户的密码</value>
        </property>
    
        <property>
            <name>hive.metastore.warehouse.dir</name>
            <value>/user/hive/warehouse</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>
    
  • 配置 hive-log4j.properties

    $ cp conf/hive-log4j2.properties.template conf/hive-log4j2.properties
    $ vi conf/hive-log4j2.propertie
    修改为
    property.hive.log.dir = /opt/modules/hive-3.1.3/${sys:user.name}
    
  • 配置hive-env.sh

    $ cp conf/hive-env.sh.template conf/hive-env.sh
    $ vi conf/hive-env.sh
    修改为
    HADOOP_HOME=/opt/modules/hadoop-3.3.4
    export HIVE_CONF_DIR=/opt/modules/hive-3.1.3/conf
    
  • 添加mysql驱动

    $ mv ~/software/mysql-connector-java-5.1.46.jar /opt/modules/hive-3.1.3/lib/
    
初始化metadata
$ bin/schematool -initSchema -dbType mysql -verbose
通过本地客户端访问
$ bin/hive
hive (default)>show databases;

4 开启hiveserver2服务

自己本地验证的集群可以配置

hiveserver2依赖Hadoop提供的 代理用户功能, 可以允许多个用户远程连接访问(beeline,jdbc等)

修改配置文件

  • 修改${HADOOP_HOME}/core-site.xml

    注意配置分发到所有节点

    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
    </property>
    
    <property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
    </property>
    
    <property>
        <name>hadoop.proxyuser.hadoop.users</name>
        <value>*</value>
    </property>
    
  • 修改${HIVE_HOME}/hive-site.xml

    <property>
    	<name>hive.server2.thrift.bind.host</name>
      <value>bd-centos01</value>
    </property>
    
    <property>
    	<name>hive.server2.thrift.port</name>
    	<value>10000</value>
    </property>
    
  • 加载hadoop配置

    在${HADOOP_HOME}下执行
    $ bin/hdfs dfsadmin -refreshSuperUserGroupsConfiguration
    $ bin/yarn rmadmin -refreshSuperUserGroupsConfiguration
    
  • 启动hiveserver2服务

    $ bin/hive --service hiveserver2
    
  • 连接

    可通过jdbc、beeline等方式连接

    $ bin/beeline -u jdbc:hive2://bd-centos01:10000 -n hadoop
    

5 metastore服务

Hive的元数据服务为Hive CLI、Hiveserver2提供元数据访问。Hive的3种运行模式: 嵌入模式、本地模式元数据服务都嵌入Hive服务中,不需要额外启动,上面的配置,meatastore是本地模式。生产一般是远程模式,将metastore服务独立启动。根据hive.metastore.uris 参数值来判断,如果不为空则为远程模式,需要额外启动元数据服务。

自己本地验证的集群可以配置

下面是 metastore远程模式的配置

  • 修改配置${HIVE_HOME}/hive-site.xml

    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://bd-centos01:9083</value>
    </property>
    
  • 启动metastore服务

    后续必须启动该服务,才能访问hive

    $ bin/hive --service metastore
    
  • beeline远程连接,输入密码

    $ beeline -u jdbc:hive2://bd-centos01:10000 -n hadoop -p
    

在这里插入图片描述

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

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

相关文章

10 分钟在K8s 中部署轻量级日志系统 Loki

转载至我的博客 https://www.infrastack.cn &#xff0c;公众号&#xff1a;架构成长指南 Loki 是什么&#xff1f; Loki是由Grafana Labs开源的一个水平可扩展、高可用性&#xff0c;多租户的日志聚合系统的日志聚合系统。它的设计初衷是为了解决在大规模分布式系统中&#x…

WebGL+Three.js入门与实战——绘制水平移动的点、通过鼠标控制绘制(点击绘制、移动绘制、模拟画笔)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

MATLAB矩阵的操作(第二部分)

师从清风 矩阵的创建方法 在MATLAB中&#xff0c;矩阵的创建方法主要有三种&#xff0c;分别是&#xff1a;直接输入法、函数创建法和导入本地文件中的数据。 直接输入法 输入矩阵时要以中括号“[ ]”作为标识符号&#xff0c;矩阵的所有元素必须都在中括号内。 矩阵的同行元…

IEC104 S帧超时判定客户与服务端不匹配造成的异常链接问题分析

2、通过ss命令发现确有链接端口变化&#xff0c;与设备约一天一次的重连&#xff0c;通过抓包&#xff08;tcpdump -vvv -nn port 1001 -w 0926.cap&#xff09;分析得以下现象 2.1、异常情况时未对设备的I帧均匀的回S帧进行确认&#xff0c;正常情况时均匀的回S帧进行确认 2.…

数据在内存中的存储(上)

1. 整数在内存中的存储 整数的2进制表示方法有三种&#xff1a;即原码、反码和补码 三种表示方法均有符号位和数值位两部分&#xff0c;符号位都是用0表示“正”&#xff0c;用1表示“负”&#xff0c;而数值位最 高位的一位是被当做符号位&#xff0c;剩余的都是数值位。 正…

深度学习水论文怎么缝模块?搭积木永不过时!(附80个即插即用模型)

深度学习如何创新&#xff1f;如何水模型&#xff1f;总结来说就八个字&#xff1a;排列组合&#xff0c;会讲故事。说直白点&#xff0c;就是缝模块。 先看看别人怎么做&#xff0c;然后根据自己的实际情况将这些模块来一波随机组合&#xff0c;这样效率会高很多。我这边已经…

冰冻天气恰逢春运,“观冰精灵”化身电力供应守护者

据中国路网&#xff0c;截至2月1日14时&#xff0c;受降雪及路面结冰影响&#xff0c;河北、山西、内蒙古、黑龙江、江苏、安徽、河南、山东、西藏、陕西、宁夏、甘肃、新疆共封闭路段66个&#xff08;涉及44条高速公路、5条普通国道、5条普通省道&#xff09;&#xff0c;关闭…

Pandas.Series.clip() 修剪数值范围 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本&#xff1a; 本文基于 pandas2.2.0 编写。 关于本文内容更新&#xff1a; 随着pandas的stable版本更迭&#xff0c;本文持续更新&#xff0c;不断完善补充。 传送门&#xff1a; Pandas API参考目录 传送门&#xff1a; Pandas 版本更新及新特性 传送门&…

前端JavaScript篇之map和Object的区别、map和weakMap的区别

目录 map和Object的区别map和weakMap的区别 map和Object的区别 Object是JavaScript的内置对象&#xff0c;用于存储键值对。Object的键必须是字符串或符号&#xff0c;值可以是任意类型。Map是ES6引入的新数据结构&#xff0c;用于存储键值对。Map的键可以是任意类型&#xff…

高中数学两面角习题练习1

用到的定理 2 第1问证明&#xff1a; 第2问用到的知识和例子&#xff1a; 二面角锐角钝角判断的快速技巧 https://www.bilibili.com/video/BV13P41157K1/?spm_id_from333.788.recommend_more_video.0&vd_source91b03ee59c462b7b3cfbd57346cf1001 叉乘的几何意义及应用 …

day39 不同路径 不同路径Ⅱ

题目1&#xff1a;62 不同路径 题目链接&#xff1a;62 不同路径 题意 机器人位于m*n网格的左上角每次只能向下或向右移动一步&#xff0c;到达网格的右下角,返回不同路径的数量 动态规划 动规五部曲 1&#xff09;dp数组及下标i的含义 dp[i][j]&#xff1a;到达(i,j)有…

2024年 复习 HTML5+CSS3+移动web 笔记 之CSS遍 第5天

第 五 天 整个网站例 5.1 准备工作 项目目录与版心 base.css 5.2 网页制作思路 5.3 header 区域-整体布局 5.4 header区域-logo 5.5 header区域-导航 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…

代码随想录算法训练营29期Day41|LeetCode 343,96

文档讲解&#xff1a;整数拆分 不同的二叉搜索树 343.整数拆分 题目链接&#xff1a;https://leetcode.cn/problems/integer-break/description/ 思路&#xff1a; 题目要求我们拆分n&#xff0c;拆成k个数使其乘积和最大&#xff0c;然而题目中并没有给出k&#xff0c;所以…

[python]基于opencv实现的车道线检测

【检测原理】 一、首先进行canny边缘检测&#xff0c;为获取车道线边缘做准备 二、进行ROI提取获取确切的车道线边缘&#xff08;红色线内部&#xff09; 三、利用概率霍夫变换获取直线&#xff0c;并将斜率正数和复数的线段给分割开来 四、离群值过滤&#xff0c;剔除斜率…

uniapp 高德地图显示

1. uniapp 高德地图显示 使用前需到**高德开放平台&#xff08;https://lbs.amap.com/&#xff09;**创建应用并申请Key   登录 高德开放平台&#xff0c;进入“控制台”&#xff0c;如果没有注册账号请先根据页面提示注册账号   打开 “应用管理” -> “我的应用”页面…

Springboot集成Camunda并完成一条流程实例

&#x1f496;专栏简介 ✔️本专栏将从Camunda(卡蒙达) 7中的关键概念到实现中国式工作流相关功能。 ✔️文章中只包含演示核心代码及测试数据&#xff0c;完整代码可查看作者的开源项目snail-camunda ✔️请给snail-camunda 点颗星吧&#x1f618; &#x1f496;设计流程定…

028 方法的重载

方法重载的定义 使用案例 public static void main(String[] args) {// 匹配到max(int a, int b)System.out.println(max(1, 3));// 匹配到max(double a, double b)System.out.println(max(1L, 3L));// 匹配到max(double a, double b, double c, double d)&#xff0c;int自动…

SQL 函数(十二)

SQL 函数&#xff08;十二&#xff09; 一、函数分类 1.1 单行函数 单行函数仅对单个行进行运算&#xff0c;并且每行返回一个结果。 常见的函数类型&#xff1a; 字符、数字、日期、转换 1.2 多行函数 多行函数能够操纵成组的行&#xff0c;每个行组给出一个结果&#x…

【拜年神器】AI写真保姆级教程

1. 介绍 废话不说&#xff0c;先上图看效果 功能简介 上传几张自己的照片&#xff0c;训练之后&#xff0c;就能生成各种风格的AI写真照&#xff0c;主要有无限风格写真、固定模板写真、AI虚拟试衣、人物说话视频四个类别 无限风格写真 固定模板写真 证件照 工作照 婚纱…

k8s中cert-manager管理https证书

前言 目前https是刚需,但证书又很贵,虽然阿里云有免费的,但没有泛域名证书,每有一个子域名就要申请一个证书,有效期1年,1年一到全都的更换,太麻烦了。经过搜索,发现了自动更新证书神器cert-manager;当然cert-manager是基于k8s的。 安装采用Helm方式 Chart地址: ht…