黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门

简介: 黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门

1. Apache Hive 概述

  1. 分布式SQL计算定义
    以分布式的形式,执行SQL语句,进行数据统计分析
  2. Apache Hive功能
  1. 将SQL语句翻译成MapReduce程序,提供用户分布式SQL计算能力

2. 模拟实现Hive功能

  • 元数据管理
  • SQL解析器

3. Hive基础架构

  • 元数据管理
  • SQL解析器:完成SQL解析、执行优化、代码提交等功能
  • 用户接口:提供用户和Hive交互的功能

4. Hive部署

4.1 规划

4.2 步骤

  1. 安装MySQL数据库

  1. 配置Hadoop
    Hive的运行依赖于Hadoop
    同时涉及到HDFS文件系统的访问
    需设置hadoop用户允许代理其他用户

  2. 下载解压Hive
  • 切换到hadoop用户
su - hadoop
tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /export/server/
  • 设置软链接
ln -s /export/server/apache-hive-3.1.3-bin /export/server/hive
  1. 提供MySQL、Driver包
mv mysql-connector-java-5.1.34.jar /export/server/hive/lib/
  1. 配置Hive
  • 在Hive的conf目录内,新建hive-env.sh文件,填入以下环境变量内容:
export HADOOP_HOME=/export/server/hadoop
export HIVE_CONF_DIR=/export/server/hive/conf
export HIVE_AUX_JARS_PATH=/export/server/hive/lib
  • 在Hive的conf目录内,新建hive-site.xml文件,填入以下内容:

  1. 初始化元数据库
  • 在MySQL中新建数据库:hive
CREATE DATABASE hive CHARSET UTF8;
  • 执行元数据库初始化命令
cd /export/server/hive
bin/schematool -initSchema -dbType mysql -verbos
# 初始化成功后,会在MySQL的hive库中新建74张元数据管理的表。
  1. 启动Hive(使用Hadoop用户)
  • 创建一个hive的日志文件夹
mkdir /export/server/hive/logs
  • 启动元数据管理服务(必须启动,否则无法工作)
bin/hive --service metastore # 前台启动
nohup bin/hive --service metastore >> logs/metastore.log 2>&1 & # 后台启动
  • 启动客户端
bin/hive   # Hive Shell方式(可以直接写SQL)
bin/hive --service hiveserver2   # Hive ThriftServer方式(不可直接写SQL,需要外部客户端链接使用)

5. Hive初体验

略

6. Hive客户端

6.1 HiveServer & Beeline

  1. 启动
  • 在hive安装的服务器上,首先启动metastore服务,然后启动hiveserver2服务
#先启动metastore服务 然后启动hiveserver2服务
nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &
nohup bin/hive --service hiveserver2 >> logs/hiveserver2.log 2>&1 &
  1. beeline
  • 在node1上使用beeline客户端进行连接访问。需要注意hiveserver2服务启动之后需要稍等一会才可以对外提供服务。
  • Beeline是JDBC的客户端,通过JDBC协议和Hiveserver2服务进行通信,协议的地址是:jdbc:hive2://node1:10000
[root@node1 ~] #/export/server/hive/bin/beeline 
Beeline version 3.1.2 by Apache Hive
beeline> ! connect jdbc:hive2://node1:10000
Connecting to jdbc:hive2://node1:10000
Enter username for jdbc:hive2://node1:10000: root
Enter password for jdbc:hive2://node1:10000: 
Connected to: Apache Hive (version 3.1.2)
Driver: Hive JDBC (version 3.1.2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://node1:10000> 

6.2 DataGrip & DBeaver

略

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
存储 SQL 监控
数据中台架构解析:湖仓一体的实战设计
在数据量激增的数字化时代,企业面临数据分散、使用效率低等问题。数据中台作为统一管理与应用数据的核心平台,结合湖仓一体架构,打通数据壁垒,实现高效流转与分析。本文详解湖仓一体的设计与落地实践,助力企业构建统一、灵活的数据底座,驱动业务决策与创新。
|
存储 SQL 分布式计算
别让你的数据“裸奔”!大数据时代的数据隐私保护实战指南
别让你的数据“裸奔”!大数据时代的数据隐私保护实战指南
978 19
|
数据可视化
分布式电源接入电网进行潮流计算
分布式电源接入电网进行潮流计算
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
830 0
|
SQL 分布式计算 大数据
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
本文深入介绍 Hive 与大数据融合构建强大数据仓库的实战指南。涵盖 Hive 简介、优势、安装配置、数据处理、性能优化及安全管理等内容,并通过互联网广告和物流行业案例分析,展示其实际应用。具有专业性、可操作性和参考价值。
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
1366 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
存储 分布式计算 负载均衡
分布式计算模型和集群计算模型的区别
【10月更文挑战第18天】分布式计算模型和集群计算模型各有特点和优势,在实际应用中需要根据具体的需求和条件选择合适的计算架构模式,以达到最佳的计算效果和性能。
1030 162
|
存储 并行计算 算法
【前推回代法】含有分布式电源的三相不平衡配电网潮流计算【IEEE33节点】(Matlab代码实现)
【前推回代法】含有分布式电源的三相不平衡配电网潮流计算【IEEE33节点】(Matlab代码实现)
514 0
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
1671 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践