大数据平台搭建2024(二)

二:Hive安装

只在node01上操作

1 安装MySQL 8.0

最小化安装需要安装这个

yum install -y wget
1-1 下载MySQL的yum源
wget http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

检查是否安装成功

rpm -qpl mysql80-community-release-el7-7.noarch.rpm

请添加图片描述

1-2 用yum命令安装此rpm
yum -y install mysql80-community-release-el7-7.noarch.rpm
1-3 安装MySQL服务
yum install -y mysql-community-server

请添加图片描述

1-4 启动服务和检查
systemctl start mysqld

如果出现not found错误,依次执行以下命令再执行启动命令:

yum module disable mysql
yum -y install mysql-community-server
yum -y install mysql-community-server --nogpgcheck

请添加图片描述
三个命令都要执行一下,不管是否能执行成功

再次启动mysql

systemctl start mysqld

检查mysql服务是否成功启动
systemctl status mysqld
请添加图片描述

1-5 设置账号密码

查找默认密码 grep "password" /var/log/mysqld.log 记录下里面的密码
请添加图片描述

登录MySQL修改密码

mysql -uroot -p

输入上面记录的密码
请添加图片描述
怕出错也可以直接把密码跟在-p后面,但在实际应用中是有账号密码泄露的风险的
给root账号设置密码和登录权限 (密码要有大小写、数字、符号,至少8位)

alter user 'root'@'localhost' identified by 'Admin123...';
alter user 'root'@'localhost' identified with mysql_native_password by 'Admin123...';
alter user 'root'@'%' identified with mysql_native_password by 'Admin123...';
create user 'root'@'%' identified with mysql_native_password by 'Admin123...';
grant all privileges on *.* to 'root'@'%';
grant all privileges on *.* to 'root'@'localhost';
flush privileges;

注:第三条命令对因权限问题出错,先不管它,其他命令能成功执行即可
请添加图片描述

1-6 验证

退出mysql
exit;
使用新密码登录

mysql -uroot -pAdmin123...
use mysql;
select host,user from user;

请添加图片描述
退出exit;

2 安装Hive(仅在node01)

2-1 上传、解压
tar -zxvf apache-hive-2.3.7-bin.tar.gz -C /hadoop

在这里插入图片描述

2-2 配置环境变量
vi /etc/profile

加入

export HIVE_HOME=/hadoop/apache-hive-2.3.7-bin
export PATH=$PATH:$HIVE_HOME/bin

保存退出
在这里插入图片描述

source /etc/profile
2-3 在HDFS中创建Hive的工作文件夹

(需要启动hadoop即sh start-all.sh
chmod : u 用户 ,g 用户组,o 其他用户 -R 递归,

hadoop fs -mkdir -p /hive/tmp
hadoop fs -mkdir -p /hive/warehouse
hadoop fs -chmod g+w /hive/tmp
hadoop fs -chmod g+w /hive/warehouse
hadoop fs -chmod -R 777 /hive/tmp

在这里插入图片描述

在这里插入图片描述

2-4 修改配置

配置好的的文件在资源里

cd /hadoop/apache-hive-2.3.7-bin/conf

执行:

cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

修改hive-env.sh, 添加JAVA_HOME HADOOP_HOME

export JAVA_HOME=/usr/java/jdk1.8.0_161
export HADOOP_HOME=/hadoop/hadoop-2.7.7

修改hive-site.xml

<!-- jdbc配置 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/metastore?
serverTimezone=GMT%2B8&amp;createDatabaseIfNotExist=true&amp;characterEncoding=UTF8&amp;useSSL=false</value>
<description>
JDBC connect string for a JDBC metastore....
</description>
</property><property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>Username to use against metastore database</description>
</property><property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>Admin123...</value>
<description>password to use against metastore database</description>
</property><property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property><!--hive工作路径-->
<property>
<name>hive.exec.local.scratchdir</name>
<value>/usr/local/src/hive/tmp</value>
<description>Local scratch space for Hive jobs</description>
</property><property>
<name>hive.downloaded.resources.dir</name>
<value>/usr/local/src/hive/tmp/resources</value>
<description>Temporary local directory for added resources in the remote file system.
</description>
</property><property>
<name>hive.exec.scratchdir</name>
<value>/hive/tmp</value>
<description>HDFS root scratch dir for Hive jobs which gets created with write all (733)
permission. For each connecting user, an HDFS scratch dir:
${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.
</description>
</property><property>
<name>hive.metastore.warehouse.dir</name>
<value>/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>

在这里插入图片描述

2-5 初始化和启动

将mysql的jar放到hive的lib目录里面
在这里插入图片描述

cd /hadoop/apache-hive-2.3.7-bin/bin
./schematool -dbType mysql -initSchema

在这里插入图片描述

启动

./hive

在这里插入图片描述

3 Hive测试

3-1 创建数据库

create database bigdata;

3-2 切换数据库

use bigdata;

3-3 查看表

show tables;

3-4 创建内部表

hive的命令行上,输入;表示语句结束,回车表示换行。

create table if not exists student (
id int,
name string,
birthday timestamp
) row format delimited
fields terminated by '\t'
lines terminated by '\n'
stored as textfile
location '/hive/warehouse/student';

在这里插入图片描述

3-5 创建外部表
create external table if not exists student_external (
id int,
name string,
birthday timestamp
) row format delimited
fields terminated by '\t'
lines terminated by '\n'
stored as textfile
location '/hive/warehouse/external';
3-6 复制表结构
create table if not exists student_copy like student;
3-7 创建分区表
create table teacher_partition(
id string,
name string
) partitioned by (country string,city string);

可以在hive的命令行,手动修改
开启动态分区

set hive.exec.dynamic.partition=true;

每个节点动态分区的最大数量

set hive.exec.max.dynamic.partitions.pernode=1000;
3-8 创建桶表
create table teacher_buckets(
id string,
name string,
country string,
city string
)clustered by (id) into 4 buckets;

teacher_buckets的文件(或者分区)分为4个桶存放
在这里插入图片描述

3-9 修改表

重命名 rename to

alter table student_copy rename to student01;

重命名列 change column

alter table student01 change column id uid int;

增加列 add columns

alter table student01 add columns (grade string,class string);

删除、替换列 replace columns

alter table student01 replace columns (grade string,class string);

删除表

drop table student01;

在这里插入图片描述

3-10 装载数据
create table teacher(
id string,
name string,
country string,
city string
)row format delimited
fields terminated by '\t'
lines terminated by '\n'
stored as textfile;

从本地装载数据
load data local inpath ‘Linux的本地文件路径’ [overwrite] into table 表名;
overwrite:如果有overwrite,表示覆盖,不是追加数据
例如:
在这里插入图片描述
在这里插入图片描述

 load data local inpath '/root/data.txt' overwrite into table teacher;

新增数据

insert into teacher (id,name,country,city) values('5','zs','CN','CQ');

在这里插入图片描述

通过查询出的数据插入数据

create table if not exists teacher01 like teacher;
insert into teacher01 select * from teacher;

在这里插入图片描述

导出数据
insert overwrite local directory ‘本地路径’ select * from 表;

insert overwrite local directory '/hadoop/datax.txt' select * from teacher;

在这里插入图片描述

删除、更新、截断
delete 、update、truncate

truncate table teacher;

聚合函数

select country,count(*) from teacher group by country having count(*)>1;

在这里插入图片描述

4 配置JDBC链接

实现jdbc链接要执行hive,还要执行hiveserver2
修改对应的etc/hadoop/core-site.xml 文件参考

vi /hadoop/hadoop-2.7.7/etc/hadoop/core-site.xml

在里面添加配置:

<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>

在这里插入图片描述

链接Hive是需要开启hive与hiveserver2即,&代表后台允许

hive &
hiveserver2 &

5 打快照

关闭所有服务

sh stop-all.sh

在这里插入图片描述

内容:Hive环境配置成功(3个节点都打快照)
据说关机,再打快照,更省空间
请添加图片描述
感谢大家的支持,关注,评论,点赞!
再见!!!

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

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

相关文章

c++使用spdlog库打日记

打日记 打日志的本质就是多输出&#xff0c;c没有自带的日志库&#xff0c;只能使用第三方库实现&#xff0c;当然&#xff0c;直接cout输出也可以&#xff0c;但是一般日志库都进行了优化&#xff0c;比我们使用cout输出的效率更高&#xff0c;同时效果也更好&#xff0c;这里…

vue3【详解】 vue3 比 vue2 快的原因

使用 Proxy 实现响应式 vue3使用的 Proxy 在处理属性的读取和写入时&#xff0c;比vue2使用的defineProperty 有更好的性能&#xff08;速度加倍的同时&#xff0c;内存还能减半&#xff01;&#xff09; 更新类型标记 Patch Flag 在编译模板时&#xff08;将vue语法转换为js描…

基于Springboot的影城管理系统

基于SpringbootVue的影城管理系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页展示 电影信息 电影资讯 后台登录页 后台首页 用户管理 电影类型管理 放映…

基于TCC的分布式事务

优质博文&#xff1a;IT-BLOG-CN 一、分布式事务简介 分布式的架构中&#xff0c;分布式的事务是一个绕不过的挑战&#xff0c;微服务理念的流行让分布式的问题日益突出。 在公司内部&#xff0c; 笔者所接触的管理系统中实际上也存在着分布式事务。 这里假设有这三个系统&…

解线性方程组——直接解法:(Gauss)高斯消去法、列主元、全主元 | 北太天元

一、问题描述 对于线性方程组 A x b , A ( a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋮ a n 1 a n 2 ⋯ a n n ) , b ( b 1 b 2 ⋮ b n ) Axb,\quad A\begin{pmatrix} a_{11} & a_{12} &\cdots &a_{1n}\\ a_{21} & a_{22} &\cdots &a_{2n}\\…

win11家庭中文版安装docker遇到Hyper-V启用失败,如何解决??

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

PyQt程序:实现新版本的自动更新检测及下载(FTP服务器实现)

一、实现逻辑 本实例采用相对简单的逻辑实现,用户在客户端使用软件时点击“检测升级”按钮,连接至FTP服务器检索是否有新版本的.exe,如果有,下载最新的.exe安装升级。 本实例服务端待下载.exe所在目录结构 本实例客户端待更新.exe所在目录结构 二、搭建服务器 可以参考…

3. 无重复字符的最长子串/438. 找到字符串中所有字母异位词/560. 和为 K 的子数组

3. 无重复字符的最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。 思路&#xff1a;想象一下我们…

90天精通Psim仿真--经典实战教程--第10天 Simcode DSP28335 LED控制

PSIM (Power Simulation) 是一款电力电子和电机控制仿真软件,而DSP28335是德州仪器(TI)的一款数字信号处理器(DSP)。如果你想要在PSIM的SimCoder环境中为DSP28335生成LED闪烁的代码,遵循以下步骤: 打开PSIM并创建模型: 首先,在PSIM中创建一个电路模型,该模型应包括DS…

贪心(贪婪)算法

主要思想 贪心算法的思想主要可以概括为“总是做出当前看起来最优的选择”&#xff0c;也就是不从整体上进行考虑&#xff0c;所得到的答案是某种意义上的局部最优解&#xff0c;不一定是整体最优解。 贪心算法没有固定算法框架&#xff0c;算法设计的关键是贪心策略的选择。…

AI原生时代,操作系统为何是创新之源?

一直以来&#xff0c;操作系统都是软件行业皇冠上的明珠。 从上世纪40、50年代&#xff0c;汇编语言和汇编器实现软件管理硬件&#xff0c;操作系统的雏形出现&#xff1b;到60年代&#xff0c;高级编程语言和编译器诞生&#xff0c;开发者通过操作系统用更接近人的表达方式去…

方程豹春季品牌发布会:全家族矩阵献礼比亚迪

春意盎然的四月&#xff0c;深圳也迎来了中国新能源汽车领域的一场盛事。 4月16日&#xff0c;作为比亚迪旗下全球首个专业个性化汽车品牌&#xff0c;方程豹在深圳隆重举办春季发布会。 在这场以“方华”为主题的发布会上&#xff0c;方程豹汽车全家族矩阵首次集体亮相&#x…

【数据结构】单链表经典算法题的巧妙解题思路

目录 题目 1.移除链表元素 2.反转链表 3.链表的中间节点 4.合并两个有序链表 5.环形链表的约瑟夫问题 解析 题目1&#xff1a;创建新链表 题目2&#xff1a;巧用三个指针 题目3&#xff1a;快慢指针 题目4&#xff1a;哨兵位节点 题目5&#xff1a;环形链表 介绍完了…

美化博客文章(持续更新)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;游戏实现&#xff1a;贪吃蛇​​​​​​ &#x1f337;追光的人&#xff0c;终会万丈光芒 前言&#xff1a; 该文提供我的一些文章设计的一些方法 目录 1.应用超链接 1.应用超链接

mysql in查询优化

都说in查询比较慢&#xff0c;要改成子查询模式&#xff0c;ChatGPT大模型告诉了我&#xff0c;SQL中替换In查询的10种方法&#xff0c;太赞了&#xff0c;按照这个说的集中方法&#xff0c;验证一下。因为实际项目中确实存在in很多的情况。 查询执行的先后顺序对优化有必要&am…

【EI会议征稿】2024年先进机械电子、电气工程与自动化国际学术会议(ICAMEEA 2024)

2024 International Conference on Advanced Mechatronic, Electrical Engineering and Automation ●会议简介 2024年先进机械电子、电气工程与自动化国际学术会议&#xff08;ICAMEEA 2024&#xff09;将汇聚全球机械电子、电气工程与自动化领域的专家学者&#xff0c;共同…

计算机网络:CSMA/CA协议

计算机网络&#xff1a;CSMA/CA协议 CSMA/CA概述帧间间隔工作原理退避算法虚拟载波监听 CSMA/CA概述 讲解CSMA/CA之前&#xff0c;我们回顾一下CSMA/CD的三个特性&#xff1a; 多址接入MA&#xff1a;多个主机连接在一条总线上&#xff0c;竞争使用总线 载波监听CS&#xff1a…

web网站搭建实验

综合练习&#xff1a;请给openlab搭建web网站 网站需求&#xff1a; 1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料 和缴费网站&#xff0c;基于&#xff0c;www.openlab.com/data网站…

X-314智能合约:金融创新的强大引擎

&#x1f4a5;火爆到烫手的X-314智能合约&#x1f525; X-314智能合约是基于以太坊区块链开发的&#xff0c;具有高度可定制性和灵活性。 ave开单独板块&#xff1b;详细资料已经准备好&#xff1b;对web3感兴趣的大佬货&#xff1b;多交流多指导&#x1f91d; ​X-314智能合…

JUC(java.util.concurrent) 的常见类

Callable 接口 Callable 的用法 Callable 是一个 interface&#xff08;类似之前的 Runnable&#xff0c;用来描述一个任务&#xff0c;但是没有返回值&#xff09;也是描述一个任务的&#xff0c;有返回值。方便程序猿借助多线程的方式计算结果. 例如&#xff1a;创建线程…