Hive入门+部署

 看黑马视频做的笔记 


目录

概念

1.基本概述

2.基础架构

总架构

部署

1.安装MySQL

2.配置Hadoop   

3.下载解压Hive

4.下载MySQL Driver包

注意!

5.配置Hive

6.初始化元数据库

7.启动Hive(使用Hadoop用户)

 实例

查看HDFS上表中存储的内容

 在mysql中查看表的相关信息

 在WEB上查看MapReduce

 总结


概念

1.基本概述

        数据的统计分析(编程语言(JAVA或Python)与SQL)

        SQL做统计很方便、MapReduce支持程序开发(Java、Python等)但不支持SQL开发

        所以有了Hive:Apache Hive是一款分布式SQL计算的工具,其主要功能是:·将SQL语句翻译成MapReduce程序运行

        基于Hive为用户提供了分布式SQL计算的能力:写的是SQL、执行的是MapReduce

2.基础架构

        Apache Hive其2大主要组件就是:SQL解析器以及元数据存储

总架构

部署

        部署在node1上,只需要部署在一台服务器即可,但他可以提交分布式运行的MapReduce程序运行。

1.安装MySQL

root用户进行下操作

# 更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

# 安装Mysql yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm

# yum安装Mysql
yum -y install mysql-community-server

# 启动Mysql设置开机启动
systemctl start mysqld
systemctl enable mysqld

# 检查Mysql服务状态
systemctl status mysqld

# 第一次启动mysql,会在日志文件中生成root用户的一个随机密码,使用下面命令查看该密码
grep 'temporary password' /var/log/mysqld.log

复制该密码

#登录mysql:
mysql -u root -p

#输入复制的密码
Enter password:

 
# 修改root用户密码
# 如果你想设置简单密码,需要降低Mysql的密码安全级别
set global validate_password_policy=LOW; # 密码安全级别低
set global validate_password_length=4;	 # 密码长度最低4位即可

# 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样)
alter user 'root'@'localhost' identitied by '123456';

grant all privileges on *.* to root@"%" identified by '123456' with grant option;
#刷新权限  
flush privileges;

exit;
#登录验证
mysql -uroot -p

2.配置Hadoop   

        Hive的运行依赖于HadoopHDFSMapReduceYARN都依赖)同时涉及到HDFS文件系统的访问,所以需要配置Hadoop的代理用户。即设置hadoop用户允许代理(模拟)其它用户

        添加配置文件到Hadoop的core-site.xml,并分发到其它节点,且重启HDFS集群

hadoop用户下操作

vim  /export/server/hadoop/etc/hadoop/core-site.xml 

添加:
<property>
  <name>hadoop.proxyuser.hadoop.hosts</name>
  <value>*</value>
  </property>

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


#分发
scp core-site.xml node2:`pwd`/
scp core-site.xml node3:`pwd`/

3.下载解压Hive

hadoop用户下操作

#在线下载Hive安装包:
wget http://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz

#解压到node1服务器的:/export/server/内
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

4.下载MySQL Driver

cd /export/server/hive/lib/

#在线下载
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar

注意!

hive的lib下面与guava版本与hadoop的目录share/hadoop/common/lib版本不一样后面会报错

#删除hive的lib下面的guava-19.0.jar
rm -r /export/server/hive/lib/guava-19.0.jar

拷贝hadoop下面的guava-27.0.jar到hive的lib下面
cp -r /export/server/hadoop/share/hadoop/common/lib/guava-27.0.jar  /export/server/hive/lib/

5.配置Hive

mv /export/server/hive/conf/

将conf里面的模板重命名
mv hive-env.sh.template 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

vim hive-site.xml

添加以下内容:

<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://node1:3306/hive?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>root</value>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
  </property>

  <property>
    <name>hive.server2.thrift.bind.host</name>
    <value>node1</value>
  </property>

  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://node1:9083</value>
  </property>

  <property>
    <name>hive.metastore.event.db.notification.api.auth</name>
    <value>false</value>
  </property>

</configuration>

6.初始化元数据库

mysql -uroot -p

在MySQL中新建数据库:hive
CREATE DATABASE hive CHARSET UTF8;
exit


执行元数据库初始化命令:
cd /export/server/hive
bin/schematool -initSchema -dbType mysql -verbos

# 初始化成功后,会在MySQL的hive库中新建74张元数据管理的表。
检查以下是否成功
mysql -uroot -p
use hive
show tables;

7.启动Hive(使用Hadoop用户)

确保Hive文件夹所属为hadoop用户

创建一个hive的日志文件夹: 
mkdir /export/server/hive/logs

启动元数据管理服务(必须启动,否则无法工作)二选一
前台启动:bin/hive --service metastore 
后台启动:nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &


启动客户端(启动前要先启动HDFS和Yarn集群)
Hive Shell方式(可以直接写SQL): bin/hive

 成功页面

 实例

#进入hive
create table test(id int, name string, gender string);

insert into test values(1,'zhangsan', 'male'),(2, "lisi", "male"),(3, "wanger",'female');

SELECT gender, COUNT(*) AS cnt FROM test GROUP BY gender;

 结果:

查看HDFS上表中存储的内容

 在mysql中查看表的相关信息

 元数据的路径

 在WEB上查看MapReduce

 总结

1. Hive写的是SQL,但跑的是MapReduce

2.HIve元数据管理中mysql存的是元数据及其相关信息

2.Hive处理的数据看起来处理的是表,实际上处理的是HDFS里面的文本文件,他将SQL语句翻译成MapReduce,对文件进行MapReduce分布式计算,再以表格的形式返回结果

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis内存策略

1.Redis中Key的过期策略 问题1&#xff1a;Redis是如何知道一个key是否过期呢&#xff1f; Redis会利用两个字典分别记录key-value对&#xff08;dict&#xff09;以及key-ttl对&#xff08;expires&#xff09;。 1.1 立即删除 在设置键的过期时间时&#xff0c;会创建一个回…

JVM垃圾收集器三色标记算法

垃圾收集算法 分代收集理论 当前虚拟机的垃圾收集都采用分代收集算法&#xff0c;这种算法没有什么新的思想&#xff0c;只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代&#xff0c;这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。 比…

RK3568平台 PWM Backlight控制背光亮度

一.PWM基本概念 以单片机为例&#xff0c;我们知道&#xff0c;单片机的IO口输出的是数字信号&#xff0c;IO口只能输出高电平和低电平。 假设高电平为5V 低电平则为0V 那么我们要输出不同的模拟电压&#xff0c;就要用到PWM&#xff0c;通过改变IO口输出的方波的占空比从而获…

【小沐学Unity3d】3ds Max 减面工具汇总

文章目录 1、简介2、“优化”修改器3、“专业优化”修改器4、“多分辨率”修改器5、Polygon Cruncher5.1 工具简介5.2 下载安装5.3 使用测试 6、Simplyon6.1 工具简介6.2 下载安装6.3 使用测试 7、FAQ7.1 在3dmax里面显示点数和面数 结语 1、简介 有几个 3ds Max 修改器可帮助您…

C#上位机与欧姆龙PLC的通信03----创建项目工程

1、创建仿真PLC 这是一款CP1H-X40DR-A的PLC&#xff0c;呆会后面创建工程的时候需要与这个类型的PLC类型一致&#xff0c;否则程序下载不到PLC上。 2、创建虚拟串口 首先安装&#xff0c;这个用来创建虚拟串口来模拟真实的串口&#xff0c;也就是上位机上有那种COM口&#xf…

map|动态规划|单调栈|LeetCode975:奇偶跳

作者推荐 【贪心算法】【中位贪心】.执行操作使频率分数最大 涉及知识点 单调栈 动态规划 map 题目 给定一个整数数组 A&#xff0c;你可以从某一起始索引出发&#xff0c;跳跃一定次数。在你跳跃的过程中&#xff0c;第 1、3、5… 次跳跃称为奇数跳跃&#xff0c;而第 2、…

文件传输软件SecureFX mac支持多种协议

SecureFX mac是一款文件传输客户端&#xff0c;可在 Mac 操作系统上使用。它由 VanDyke Software 公司开发&#xff0c;旨在为用户提供安全、可靠、高效的文件传输服务。 SecureFX 支持多种协议&#xff0c;包括 SFTP、SCP、FTP、FTP over SSL/TLS 和 HTTP/S。它使用强大的加密…

Android 13 - Media框架(24)- OMXNodeInstance(一)

为了了解 ACodec 是如何与 OpenMAX 组件进行 buffer 流转的&#xff0c;我们有必要先来学习 OMXNodeInstance&#xff0c;在前面的章节中&#xff0c;我们已经了解了 media.codec 进程包含的内容&#xff0c;以及 OpenMAX 框架中的一些内容。这一节我们将来学习 OMXNode 与 med…

泛微OA C# 调用 WebAPI功能实现

泛微OA C# 调用 WebAPI功能实现 OA 在线文档地址1. 创建流程字段参数 mainData 简单说明字段表明细表2. 接口封装2.1 接口初始化2.2 接口注册2.3 获取Token2.4 拼装 Headers2.5 常用工作流方法2.5.1 创建2.5.2 删除2.5.3 撤回2.5.4 退回3. 接口调用OA 在线文档地址 Token认证 …

Qt前端技术:2.QSS

border-style&#xff1a;后边是两个参数的话第一个参数改变上下的style 第二个参数改变左右的style 如果后边是三个参数的话第一个参数改变上边的style第二个参数改变左右的style&#xff0c;第三个参数改变的下边的style 如果后边是四个参数的话对应的顺序为上&#xff0c;右…

ros2机器人常规控制流程

The joint_state_publisher reads the robot_description parameter from the parameter server, finds all of the non-fixed joints and publishes a JointState message with all those joints defined.也就是说如果我们不需要控制机器人运动&#xff0c;只需要一个节点就可…

HarmonyOS概述

HarmonyOS概述 HarmonyOS系统架构 内核层—系统服务层—框架层—应用层 内核层&#xff1a; 内核子系统: HarmonyOS采用多内核设计&#xff0c;支持针对不同资源受限设备 &#xff0c;选用适合的OS内核&#xff0c;为上层提供基础操作系统能力。驱动子系统: 硬件驱动框架(H…

AI百模大战:引领行业变革与开启人才黄金时代

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux学习 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 技术进步&#xff1a;AI的飞速发展 1. 深度学习的多领域应用 2. 自然语言处理的语境理解提升 3. 计算机视觉的实时处理能力提高 4…

清风数学建模学习笔记-斯皮尔曼相关系数

内容&#xff1a;斯皮尔曼相关系数 一.原理&#xff1a; 二.算法&#xff1a; 1.MATLAB: 2.SPSS&#xff1a; 分析-相关-双变量相关-勾选标注显著性相关性 3. 相关性系数的选择&#xff1a;

【vCenter Converter】安装 VMware vCenter Converter Standalone

目录 3.2 开始安装 (具体步骤) 关联博文参考资料 3.2 开始安装 (具体步骤) 点击安装程序后&#xff0c;进入安装导向。 终端用户协议。 接受终端用户协议。 指定安装位置。 指定安装类型&#xff0c;默认本地安装即可。 加入VMware用户体验计划。 准备安装。 安装中。 安装完成…

Open5GSUeRANSim2:对安装在同一个VM上的OPEN5GS和UERANSIM进行配置和抓取wireshark报文

参考链接&#xff1a; Configuring SCTP & NGAP with UERANSIM and Open5GS on a Single VM for the Open5GS & UERANSIM Series https://www.youtube.com/watch?vINgEX5L5fkE&listPLZqpS76PykwIoqMdUt6noAor7eJw83bbp&index5 Configuring RRC with UERANSI…

Python 运维(一):Python 包管理器 pip 的使用指南

大家好&#xff0c;我是水滴~~ 本文将介绍了 Python 的包管理器 pip 的基本使用、常用命令、帮助信息&#xff0c;以及一些常见问题。文章内容包含大量的示例代码&#xff0c;希望能够帮助新手同学快速入门。 《Python入门核心技术》专栏总目录・点这里 文章目录 1. 包管理器1…

Axure基础

软件&#xff1a; 简单交互动效 动态面板 显示和隐藏 表单元件 表格设计 内联框架 导航菜单 元件交互样式 滚动屏幕与弹幕

JAVA线上事故:递归导致的OOM

最近因为人员离职&#xff0c;接手一个项目&#xff0c;是xxljob的客户端&#xff0c;部署在k8s上&#xff0c;在排查线上工单时&#xff0c;发现了一个问题&#xff1a; 在管理界面上&#xff0c;我惊讶的发现&#xff0c;三个月的时间&#xff0c;2个Pod&#xff0c;每个都重…

代码随想录-刷题第三十三天

122. 买卖股票的最佳时机II 题目链接&#xff1a;122. 买卖股票的最佳时机 II 思路&#xff1a;题目中利润是可以分解的。 加入第0天买入&#xff0c;第三天卖出&#xff0c;利润为price[3] - price[0]。其利润可以分解成(prices[3] - prices[2]) (prices[2] - prices[1]) …
最新文章