当前位置: 首页 > news >正文

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

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
    

在这里插入图片描述

相关文章:

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

1 hive介绍 由Facebook开源的,用于解决海量结构化日志的数据统计的项目 本质上是将HQL转化为MapReduce、Tez、Spark等程序 Hive表的数据是HDFS上的目录和文件 Hive元数据 metastore&#xff0c;包含Hive表的数据库、表名、列、分区、表类型、表所在目录等。 根据Hive部署模…...

mac电脑上使用android studio创建flutter项目

mac电脑环境配置可以看这篇文章&#xff1a;https://xiaoshen.blog.csdn.net/article/details/136068650 配置玩环境之后&#xff0c;开始创建第一个flutter项目&#xff1a;点击new flutter project或者new project都可以 然后选择flutter&#xff1a; 并将sdk配置为解压后的…...

Excel——分类汇总

1.一级分类汇总 Q&#xff1a;请根据各销售地区统计销售额总数。 第一步&#xff1a;排序&#xff0c;我们需要根据销售地区汇总数据&#xff0c;我们就要对【销售地区】的内容进行排序。点击【销售地区】列中任意一个单元格&#xff0c;选择【数据】——【排序】&#xff0c…...

Backtrader 文档学习- Observers - Reference

Backtrader 文档学习- Observers - Reference 1.Benchmark class backtrader.observers.Benchmark() 观察器存储策略的回报和参考资产的回报&#xff0c;参考资产是传递给系统的数据之一。 参数&#xff1a; timeframe (default: None) &#xff0c;如果None&#xff0c;则将…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Radio组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Radio组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Radio组件 单选框&#xff0c;提供相应的用户交互选择项。 子组件 无。 接口 …...

【go】结构体切片去重

场景 自定义结构体切片&#xff0c;去除切片中的重复元素&#xff08;所有值完全相同&#xff09; 代码 // 自定义struct去重 type AssetAppIntranets struct {ID string json:"id,omitempty"AppID string json:"app_id,omitempty"IP …...

百面嵌入式专栏(面试题)C语言面试题22道

沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍C语言相关面试题 。 宏定义是在编译的哪个阶段被处理的?答案:宏定义是在编译预处理阶段被处理的。 解读:编译预处理:头文件包含、宏替换、条件编译、去除注释、添加行号。 写一个“标准”宏MIN,这个…...

Docker方式创建keepalived连接MGR集群

记录一下简单的搭建步骤以便后期查验 目录 前言步骤1. 安装环境2. 重新制作镜像3. 导入新镜像4. 创建容器 前言 假设已经搭建了MySQL8的MGR集群方式&#xff08;一主两从&#xff09;。 MGR本身有故障转移重新选举新的主节点功能&#xff0c;但是上游的应用程序需要自己手动修…...

Oracle PL/SQL Programming 第5章:Iterative Processing with Loops 读书笔记

总的目录和进度&#xff0c;请参见开始读 Oracle PL/SQL Programming 第6版 本章探讨 PL/SQL 的迭代控制结构&#xff08;也称为循环&#xff09;&#xff0c;它允许您重复执行相同的代码。 PL/SQL 提供了三种不同类型的循环结构&#xff1a; 简单或无限循环FOR 循环&#x…...

C入门番外篇——C, Are you OK?

今日路上看到一个车牌&#xff0c;52U0K&#xff0c;感觉很有意思&#xff0c;如果做一下简单的翻译就是&#xff0c;“我爱你&#xff0c;好么&#xff1f;” 这样让我脑子中闪现了这样的一个画面&#xff1a;“一个男生追一个女生&#xff0c;看到女生不怎么搭理自己的样子&a…...

python-产品篇-游戏-象棋

文章目录 代码效果 代码 import pygame import time import constants from button import Button import pieces import computerclass MainGame():window NoneStart_X constants.Start_XStart_Y constants.Start_YLine_Span constants.Line_SpanMax_X Start_X 8 * Lin…...

用linux文件系统的链接功能实现文件缓存LRU

概述: 目前,随着家庭宽带网络、无线宽带技术,以及终端设备性能的不断发展,基于多媒体的应用越来越广泛,特别是互联网视频的应用更是成为推动这些技术发展的源动力。作为互联网视频VOD的应用,提高视频播放的流畅度是一个非常重要的指标之一。除了编解码技术,视频C…...

AI大模型开发架构设计(10)——AI大模型架构体系与典型应用场景

文章目录 AI大模型架构体系与典型应用场景1 AI大模型架构体系你了解多少?GPT 助手训练流程GPT 助手训练数据预处理2个训练案例分析 2 AI 大模型的典型应用场景以及应用架构剖析AI 大模型的典型应用场景AI 大模型应用架构 AI大模型架构体系与典型应用场景 1 AI大模型架构体系你…...

C# async/await的使用

C# 中的 async 和 await 关键字是用于实现异步编程的重要工具&#xff0c;它们简化了编写和维护非阻塞代码的过程。以下是对这两个关键字用法的简要说明&#xff1a; async 关键字 定义异步方法&#xff1a;在方法声明前使用 async 关键字&#xff0c;表示该方法是一个异步方…...

C语言之找单身狗

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a; 我要学编程(ಥ_ಥ)-CSDN博客 题目&#xff1a; 在一个整型数组中&#xff0c;只有一个数字出现一次&#xff0c;其他数组都是成对出现的&#xff0c;请找出那个只出现一次的数字。…...

读懂 FastChat 大模型部署源码所需的异步编程基础

原文&#xff1a;读懂 FastChat 大模型部署源码所需的异步编程基础 - 知乎 目录 0. 前言 1. 同步与异步的区别 2. 协程 3. 事件循环 4. await 5. 组合协程 6. 使用 Semaphore 限制并发数 7. 运行阻塞任务 8. 异步迭代器 async for 9. 异步上下文管理器 async with …...

【华为】GRE VPN 实验配置

【华为】GRE VPN 实验配置 前言报文格式 实验需求配置思路配置拓扑GRE配置步骤R1基础配置GRE 配置 ISP_R2基础配置 R3基础配置GRE 配置 PCPC1PC2 抓包检查OSPF建立GRE隧道建立 配置文档 前言 VPN &#xff1a;&#xff08;Virtual Private Network&#xff09;&#xff0c;即“…...

创建一个VUE项目(vue2和vue3)

背景&#xff1a;电脑已经安装完vue2和vue3环境 一台Mac同时安装vue2和vue3 https://blog.csdn.net/c103363/article/details/136059783 创建vue2项目 vue init webpack "项目名称"创建vue3项目 vue create "项目名称"...

Android 10.0 动态壁纸 LiveWallpaper

前言 在 Android 中&#xff0c;壁纸分为动态与静态两种&#xff0c;但其实两者得本质都是一样。都以一个 Service 得形式在后台运行&#xff0c;在一个类型为 TYPE_WALLPAPER 的窗口上绘制内容。也可以这么去理解&#xff1a;静态壁纸是一种特殊的动态壁纸&#xff0c;它仅在…...

Linux内核与驱动面试经典“小”问题集锦(4)

接前一篇文章&#xff1a;Linux内核与驱动面试经典“小”问题集锦&#xff08;3&#xff09; 问题5 问&#xff1a;Linux内核中内存分配都有哪些方式&#xff1f;它们之间的使用场景都是什么&#xff1f; 备注&#xff1a;这个问题是笔者近期参加蔚来面试时遇到的一个问题。这…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...