自学大数据第17天~Hive安装与配置及常用命令

news2024/10/6 8:25:01

嗨咯,好几天没更新了,你以为我不知道吗?
这几天主要还是学习,学习如何再学习!

简述以下这几天都学习了什么~

  1. MongoDB的命令

  2. GaussDB(for Mongo)集群架构与社区版架构的对比
    社区版(副本集架构):
    mongos(路由) config(记录元数据) shard(负责计算和存储)
    GaussDB(for Mongo)存算分离架构:
    mongos config shard + 底层存储 ,这里shard只负责计算

  3. GaussDB怎么保证一致性的(2PC协议)

  4. GaussDB内存满了怎么办?

  5. Oplog就是一个中间人,类似于Mysql的binlog记录增删改的记录

  6. 巴拉巴拉巴拉

在这里插入图片描述

Hive的安装

下载Hive

这里选了最新的版本~3.1.3

下载结束后该配置环境了;

解压信息可以看到解压后的hive中有很多jar包
在这里插入图片描述
进入解压后的文件:
在这里插入图片描述

配置hive

在这里插入图片描述
根据提供的模板文件开始配置我们的hive

配置hive-env.sh

cp hive-env.sh.template  ./hive-env.sh

在这里插入图片描述

配置 hive-default.xml

cp hive-default.xml.template hive-default.xml

复制完毕后,暂且不需要修改,就放在这里就可以了;

配置hive-site.xml

#新建一个文件 hive-site.xml
vi  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://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <!--这里要注意5.0和8.0驱动的区别 -->
    <value>com.mysql.cj.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value>
    <description>password to use against metastore database</description>
  </property>
</configuration>

配置hive环境

在这里插入图片描述

检查hive配置是否成功
在这里插入图片描述
Hive通常是被数据仓库的一个组件出现的~Apache Hive是一个分布式,容错的数据仓库系统,可实现大规模和 便于使用 SQL 读取、写入和管理驻留在分布式存储中的 PB 级数据。

所以需要搭配数据库使用

检查一下在自己机器上有什么数据库,比如mysql ,postgresql,sqlserver and so on;

正好机器上有mysql社区版~8.0.27

下面就以mysql为例搭建一个数据仓库

下载mysql8.0.27的驱动jar包到hive 的lib目录下

去maven仓库搞一个~
在这里插入图片描述
然而该版本的驱动有漏洞,应该使用高版本无漏洞的吧(应该可以兼容的),不行咱再换对应版本的;

点击下载jar包~8.0.30

点击下载jar包~8.0.27

然后去hive-site.xml中配置数据库的连接要素:

登录mysql数据库查看数据库信息:
在这里插入图片描述
新开一个会话启动hive

在这之前要先启动hadoop)因为hive依赖于MapReduce作业

启动hadoop后,
在这里插入图片描述

启动hive

在这里插入图片描述
上图表示hive启动成功了,检查一下能否正常运行,那就先小试一下:

show databases ;

不出意外的话,意外出现了–报错了
在这里插入图片描述
大体意思就是不能够实例化元数据客户端

出错原因:以前曾经安装了Hive或MySQL,重新安装Hive和MySQL以后,导致版本、配置不一致。解决方法是,使用schematool工具。Hive现在包含一个用于 Hive Metastore 架构操控的脱机工具,名为 schematool.此工具可用于初始化当前 Hive 版本的 Metastore 架构。此外,其还可处理从较旧版本到新版本的架构升级。所以,解决上述错误,你可以在终端执行如下命令:

schematool -dbType mysql -initSchema

在这里插入图片描述

重新启动hive后重新测试:

在这里插入图片描述
这次正常了;

我们查看mysql数据库中标的信息:

在这里插入图片描述
可以看到库中多了多表的信息;

查看要准备导入数据的表结构:
describe

下面该学习一下hive一些命令了:

hive常用命令

在使用常用命令前,先看其数据类型吧:

hive中数据类型:

Hive支持基本数据类型和复杂类型, 基本数据类型主要有数值类型(INT、FLOAT、DOUBLE ) 、布尔型和字符串, 复杂类型有三种:ARRAY、MAP 和 STRUCT。

  • a.基本数据类型

TINYINT: 1个字节
SMALLINT: 2个字节
INT: 4个字节
BIGINT: 8个字节
BOOLEAN: TRUE/FALSE
FLOAT: 4个字节,单精度浮点型
DOUBLE: 8个字节,双精度浮点型
STRING 字符串

  • b.复杂数据类型

ARRAY: 有序字段
MAP: 无序字段
STRUCT: 一组命名的字段

hive基本命令

在这里插入图片描述
可以看到hivesql的命令跟sql92很像(简直一毛一样呀)

hivesql的一些其他命令不在演示,网上有很多教程,这里不再做搬运工了;

捡几个重点的搞一下:

向表中导入数据

首先准备数据,没有现成的,只能自己造了:

1 java
2 c++
3 html
4 golang
5 erlang

创建数据表用来存数据:

use hive;
create table  book(id int ,name string) ;

导入本地数据

load data local inpath '/usr/local/bigdata/apache-hive-3.1.2-bin/loaddata/book' overwrite into table book ;

出了些问题~导入的数据全是null
在这里插入图片描述
咋办?解决呗,导入的数据格式不对?
数据格式如下,间隔一个tab,每行一个换行,
在这里插入图片描述
查询后发现原来是创建表时没有指定换行符

新建一个表

create table books (id int ,name string )row format delimited fields terminated by '\t';

重新导入数据后查看数据:
在这里插入图片描述

从hdfs中导入数据

将数据上传到hdfs中
在这里插入图片描述
newbook中数据
在这里插入图片描述

向hive中导入newbook

在这里插入图片描述

  • 有local~表示从本地导入数据

  • 无local~表示从哪个hdfs中导入

  • 有overwrite~表示导入数据时将旧数据覆盖

  • 无overwrite~表示向表中追加数据

注意:

为了保证数据能正常导入,一般在建表时就要考虑数据之间的间隔:

几个案例sql

create table if not exists hive.student(id int,name string) 
row format delimited fields terminated by '\t';



create table if not exists hive.course(cid int,sid int) 
row format delimited fields terminated by '\t';

上面的表book不是数据为null吗,我们使用insert 命令插入数据:
在这里插入图片描述

插入数据

insert overwrite table book  select id  ,name  from books ;

执行过程中调用了MapReduce
在这里插入图片描述
所以对于非程序员或者我这个菜鸡而言不用学习编写Java MapReduce代码了;

子查询

略微一提
标准 SQL 的子查询支持嵌套的 select 子句,HiveQL 对子查询的支持很有限,只能在from 引导的子句中出现子查询。

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

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

相关文章

uni-app--》uni-app的生命周期讲解

&#x1f3cd;️作者简介&#xff1a;大家好&#xff0c;我是亦世凡华、渴望知识储备自己的一名在校大学生 &#x1f6f5;个人主页&#xff1a;亦世凡华、 &#x1f6fa;系列专栏&#xff1a;uni-app &#x1f6b2;座右铭&#xff1a;人生亦可燃烧&#xff0c;亦可腐败&#xf…

数据库的安全性

安全性 安全性保护手段 用户标识与鉴别自主存取控制强制存取控制视图审计和数据加密 数据库的安全性是指保护数据库防止因用户非法使用数据库造成数据泄露、更改或破坏 数据库安全保护分层 物理层人际层网络层操作系统层数据库系统层 物理层的安全性是指计算机系统所位于的节…

银行数字化转型导师坚鹏:银行数据治理和数据质量问题解决

银行数据治理和数据质量问题解决 课程背景&#xff1a; 很多银行存在以下问题&#xff1a; 不知道如何准确理解银保监会数据治理相关政策及要求&#xff1f; 不清楚如何有效解决数据治理及数据质量遇到的重要问题&#xff1f; 科技条线不清楚如何配合业务人员更好地提高数据…

模板方法设计模式(TemplateMethod)

文章目录抽象类语法使用说明注意事项模板方法设计模式代码示例应用抽象类 随着继承层次中一个个新子类的定义&#xff0c;类变得越来越具体&#xff0c;而父类则更一般&#xff0c;更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象&#xff0c;以…

Centos7安装Navicat15中文

1. ubuntu 下制作AppImage镜像 sudo apt-get install libcapstone-devsudo apt-get install cmake git clone https://github.com/keystone-engine/keystone.git cd keystone mkdir build cd build ../make-share.sh sudo make install sudo ldconfigsudo apt-get install rap…

【行为型模式】模板方法模式

文章目录优秀借鉴1、概述2、结构3、实现方式3.1、案例引入3.2、结构分析3.3、具体实现4、模板方法模式优缺点5、应用场景优秀借鉴 黑马程序员Java设计模式详解-模板方法模式概述 1、概述 模板方法模式(Template Method)是一种设计模式&#xff0c;它定义了一个算法的框架&am…

Nacos 2.2.2 发布,优化启动体验和鉴权提示

Nacos 社区近期发布了 2.2.0.1 和 2.2.1 版本&#xff0c;对默认鉴权插件做出了较大的改动&#xff0c;详情查看**风险说明 [ 1] **及 **2.2.1 发布 [ 2] **。由于 Nacos 默认控制台 ui 中默认依赖了 token.secret.key&#xff0c;所以在移除了 token.secret.key 的默认值后&am…

【ROS2指南-9】Bag的record和play操作

目标&#xff1a;记录在某个话题上发布的数据&#xff0c;以便您可以随时回放和检查它。 教程级别&#xff1a;初学者 时间&#xff1a; 10分钟 内容 背景 先决条件 任务 1 设置 2 选择一个主题 3 ros2包记录 4 ros2 包信息 5 ros2包玩 概括 下一步 相关内容 背景 r…

Android 性能优化的重要性~

随着移动设备和应用程序市场不断发展&#xff0c;Android应用程序变得越来越多&#xff0c;对于开发者来说&#xff0c;他们必须使自己的应用程序与其他应用程序相比更加高效和快速&#xff0c;以吸引用户和确保业务成功。而Android用户期望应用程序如同其他设备上的应用程序一…

PHP快速入门02-PHP语言基础

文章目录前言一、 数据类型1.1 String&#xff08;字符串&#xff09;1.2 Integer&#xff08;整型&#xff09;1.3 Float&#xff08;浮点型&#xff09;1.4 Boolean&#xff08;布尔型&#xff09;1.5 Array&#xff08;数组&#xff09;1.6 Object&#xff08;对象&#xff…

[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-5 通关详解 (附靶机搭建教程)

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

深入了解Hugging Face Transformers库:NLP的转换之力

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️&#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

29岁,普通功能测试,我是如何在一周内拿到5份Offer的?

我有个朋友&#xff0c;29岁&#xff0c;功能测试已经2年有余&#xff0c;关于他的职业发展历程&#xff0c;以后会跟大家分享&#xff0c;今天主要想把他跟我分享的面试经历和经验分享给大家&#xff0c;帮助一些迷茫中的朋友。 最近&#xff0c;大概面试了7&#xff0c;8家公…

Redis -List

Redis List 本章介绍redis 的List的数据结构 Redis列表是字符串值的链表。Redis列表经常用于&#xff1a; 1、实现堆栈和队列 2、为后台工作系统提供队列管理 例如&#xff1a; 第一种情况&#xff0c;将List视为一种先进先出的队列 Treat a list like a queue (first in, fi…

Linux系统安装MySQL

使用wget命令下载安装包&#xff0c;命令&#xff1a; ​ wget http://dev.MySQL.com/get/Downloads/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz​ 1、查看是否已经安装MySQL&#xff1a; 命令&#xff1a; rpm -qa|grep -i mysql 我的Linux是没有安装过的&…

rk3568点亮LCD(mipi)

rk3568 Android11/12 适配 mipi 屏 MIPI (Mobile Industry Processor Interface) 是2003年由ARM, Nokia, ST ,TI等公司成立的一个联盟&#xff0c;目的是把手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化&#xff0c;从而减少手机设计的复杂程度和增加设计灵活性…

【Java版oj】day27不用加减乘除做加法、三角形

目录 一、不用加减乘除做加法 &#xff08;1&#xff09;原题再现 &#xff08;2&#xff09;问题分析 &#xff08;3&#xff09;完整代码 二、三角形 &#xff08;1&#xff09;原题再现 &#xff08;2&#xff09;问题分析 &#xff08;3&#xff09;完整代码 一、不用…

Midjourney V5太炸裂:逼真到颤抖!“有图有真相”时代彻底过去 画画创作者 模特一键淘汰

** ** 文章目录1、Midjourney V51.1、许多人纷纷惊呼&#xff1a;人类画师别活了。1.2、通用模型2、midjourney是什么3、midjourney 的使用方式4、Midjourney新手入门描述词5、一些疑难杂症1、Midjourney V5 继GPT-4发布之后&#xff0c;Midjourney V5上线。网友纷纷试玩&…

java学习之局部内部类

目录 一、内部类简介 二、内部类的分类 三、局部内部类 第一点 第二点 第三点 第四点 第五点 第六点 第七点 一、内部类简介 类的五大成员&#xff1a;属性、方法、构造器、代码块、内部类 package com.hspedu.innerclass;public class InnerClass01 {public static…

2023 年嵌入式世界的3 大趋势分析

目录 大家好&#xff0c;本文讲解了嵌入式发展的3个大趋势&#xff0c;分享给大家。 趋势#1 – Visual Studio Code Integration 趋势#2 –支持“现代”软件流程 趋势 #3 – 在设计中利用 AI 和 ML 结论 大家好&#xff0c;本文讲解了嵌入式发展的3个大趋势&#xff0c;分享…