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/libvim 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.hqwc.cn/news/289236.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Axure中继器的基本使用

介绍中继器 在 Axure 中&#xff0c;中继器是一种交互设计元素&#xff0c;用于在不同页面之间传递数据或触发特定的事件。它可以帮助模拟真实的用户交互流程和页面之间的传递逻辑&#xff0c;继承关系用于描述两个元件之间的父子关系。通过使用继承关系&#xff0c;您可以创建…

BBS项目--登录

BBS阶段性测试总要求 django登录报错 Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。 原因分析&#xff1a;出现这种情况在Windows中很常见&#xff0c;就是端口被占用 解决措施&#xff1a;这时我们只需改一下端口便可以了 登录前端页面(HTML…

网络基础介绍

1.网线制作 1.1 网线制作需要的工具 网线 网线钳 水晶头 测试仪 ​编辑 1.2 网线的标准 1.3 网线的做法 2.集线器&交换机&路由器的介绍 3.OSI七层模型 4.路由器的设置 4.1 常见的路由器设置地址 4.2 常见的路由器账号密码 4.3 登录路由器 设置访客网…

Dynamsoft Barcode Reader 使用教程:QR码,PDF417和DataMatrix有什么区别?

Dynamsoft Barcode Reader SDK一款多功能的条码读取控件&#xff0c;只需要几行代码就可以将条码读取功能嵌入到Web或桌面应用程序。这可以节省数月的开发时间和成本。能支持多种图像文件格式以及从摄像机或扫描仪获取的DIB格式。使用Dynamsoft Barcode Reader SDK&#xff0c;…

网工内推 | 上市公司中级网工,思科、华为认证优先,有带薪年假

01 新晨科技 招聘岗位&#xff1a;中级网络工程师 职责描述&#xff1a; 1. 负责公司网络系统的规划、设计、实施、维护和优化&#xff1b; 2. 负责网络设备的选型、采购、安装、配置和调试&#xff1b; 3. 负责网络安全策略的制定和实施&#xff0c;保障公司网络安全&#xf…

简易实现 STL--list

实现 list 的主要思想及过程 首先&#xff0c;实现过程中的所有代码必须放在自己定义的命名空间中。 定义一个结点的结构体类模板&#xff0c;结点的数据类型就应该是模板类型 T&#xff0c;定义的 next指针和 prev指针都应该是模板指针类型&#xff0c;并且结构体类中药有构…

Codeforces Round 916 (Div. 3)(G未补)

目录 A. Problemsolving Log B. Preparing for the Contest C. Quests D. Three Activities E1.E2. Game with Marbles F. Programming Competition A. Problemsolving Log 题意&#xff1a;A任务需要一分钟完成&#xff0c;B任务需要两分钟完成&#xff0c;……以此类推…

【C++题目速刷】二分查找

【C题目速刷】二分查找 一、二分查找1、题目链接2、解题3、代码 二、在排序数组中查找元素的第一个和最后一个位置1、题目链接2、解题3、代码4、算法模板 三、x的平方根1、解题链接2、解题3、代码 四、搜索插入位置1、题目链接2、解题3、代码 五、山脉数组的峰顶索引1、题目链接…

令人惊叹的代码技巧

在编程世界中&#xff0c;有一些令人惊叹的代码技巧和巧妙的实现方式。以下是一些我见过的令人印象深刻的代码技巧&#xff1a; 函数式编程魔法&#xff1a; 使用函数式编程的一些特性&#xff0c;比如高阶函数、匿名函数和Lambda表达式&#xff0c;可以使代码更为简洁、易读。…

Apollo Planning——TASK之PathBoundsDecider

在modules/planning/conf/scenario/lane_follow_config.pb.txt配置文件中&#xff0c;我们可以看到LaneFollow所需要执行的所有task。 stage_config: {stage_type: LANE_FOLLOW_DEFAULT_STAGEenabled: truetask_type: LANE_CHANGE_DECIDERtask_type: PATH_REUSE_DECIDERtask_t…

【python】在线代码混淆方案及注意事项

▒ 目录 ▒ &#x1f6eb; 导读开发环境 1️⃣ 在线网站pyob混淆操作步骤编写测试代码混淆转pyc缺点中文路径问题&#xff1a;python: Cant reopen .pyc file 2️⃣ 反编译python文件格式对比uncompyle6 3️⃣ 其它方案cpythonpython-obfuscatorPyInstaller【不推荐】pyminifie…

补题与周总结:leetcode第 376 场周赛

文章目录 复盘与一周总结2967. 使数组成为等数数组的最小代价&#xff08;中位数贪心 回文数判断&#xff09;2968. 执行操作使频率分数最大&#xff08;中位数贪心 前缀和 滑窗&#xff09; 复盘与一周总结 wa穿了第3题&#xff0c;赛时其实想到了思路&#xff1a;中位数贪心…