【Hive】安装配置及导入Hdfs数据


知识目录

  • 一、写在前面💕
  • 二、Hive的安装与配置✨
    • 2.1 Hive简介
    • 2.2 上传与解压
    • 2.3 拷贝MySQL驱动
    • 2.4 hive-site.xml文件
    • 2.5 启动hive
  • 三、导入Hdfs数据到Hive✨
    • 3.1 修改Hadoop集群配置
    • 3.2 初始化
    • 3.3 创建表
    • 3.4 从Hdfs导入数据
  • 四、总结撒花😊

一、写在前面💕

大家好!我是初心,很高兴再次和大家见面。

今天跟大家分享的文章是 Hive的安装以及导入Hdfs的数据到Hive中 ,希望能帮助到大家!本篇文章收录于 初心 的 大数据 专栏。

🏠 个人主页:初心%个人主页
🧑 个人简介:大家好,我是初心,和大家共同努力
💕欢迎大家:这里是CSDN,我记录知识的地方,喜欢的话请三连,有问题请私信😘

写作背景:接着上篇我们说到将 Mysql 中的数据通过 Sqoop 导入到 Hdfs 中去,本次我们将实现将 Hdfs 中的数据导入到 Hive 中。

二、Hive的安装与配置✨

2.1 Hive简介

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,类似于RDBMS(如MySQL、Oracle等),并提供类似于SQL的查询功能。

  • 产生背景

在Hadoop中,可以简单的概括一下内容:

HDFS: 海量数据存储
MapReduce: 海量数据的分析与计算
Yarn: 集群资源的管理和作业调度

其中MapReduce处理大数据会 面临的问题 有:

MR开发难度大,学习成本高
HDFS文件没有字段名、数据类型,不方便进行数据的管理
使用MR的框架开发,项目周期长,成本高

  • Hive为了解决以上问题而产生。

简单总结:Hive是一个将SQL转换为MR任务的工具

  • 数据仓库相关概念

1. 是一个面向主题的、集成的、相对稳定的、反应历史变化的数据集合
2. 目的:构建面向分析的、集成的数据集合,为企业提供决策支持
3. 数据仓库本身不产生数据,数据来源于外部
4. 存储了大量数据

2.2 上传与解压

我们使用Xshell加Xftp将Hive的安装包上传到 /opt/software 目录下:

进入到该上传的目录:

cd /opt/software

解压Hive:

tar -xzvf apache-hive-3.1.2-bin.tar.gz -C /opt/module/

进入到module目录下:

cd /opt/module

重命名文件:

mv apache-hive-3.1.2-bin/ hive

2.3 拷贝MySQL驱动

我们这里使用的MySQL驱动是 mysql-connector-java-5.1.49.jar 与当前Hive版本相匹配。

同理将mysql-connector-java-5.1.49.jar上传,不过这里上传到 hive 的lib目录下。

这里大家肯定有疑问,为什么要拷贝MySQL驱动?

因为我们这里使用MySQL作为存储元数据的数据库,所以需要把连接MySQL的jar包放入或链接到$HIVE_HOME/lib目录下。如果你奇思妙想,换成其他数据库也是可以的。

2.4 hive-site.xml文件

进入到 hive 的conf目录:

cd /opt/module/hive/conf/

查看当前文件夹下内容会发现没有hive-site.xml文件,不要慌!这里我们选择新建即可:

vim hive-site.xml

将以下文件内容拷贝到文本编辑器中(因为还有要修改的地方,我会以 注释 的形式说明),修改好后再复制到 hive-site.xml 中去:

<configuration>
<!--jdbc连接url,将url中的主机名hadoop改成自己的主机名或者IP-->

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3307/hive?createDatabaseIfNotExist=true</value> 
<description>JDBC connect string for a JDBC metastore</description> 
</property> 

<!--jdbc驱动类的名字-->

<property> 
<name>javax.jdo.option.ConnectionDriverName</name> 
<value>com.mysql.jdbc.Driver</value> 
<description>Driver class name for a JDBC metastore</description> 
</property> 

<!--连接MySQL的用户名-->

<property> 
<name>javax.jdo.option.ConnectionUserName</name> 
<value>root</value> 
<description>username to use against metastore database</description> 
</property> 

<!--连接MySQL的密码(密码改成自己的数据库root用户密码)-->

<property> 
<name>javax.jdo.option.ConnectionPassword</name> 
<value>sky</value> 
<description>password to use against metastore database</description> 
</property>

<!--当参数为None时,任何登录的用户都拥有超级用户权限-->

<property>
    <name>hive.server2.authentication</name>
    <value>NONE</value>
</property>

<!--配置hiveserver2连接的主机(hadoop102改成自己的)-->

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

<!--配置hiveserver2连接的主机的端口号-->

<property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
</property>
</configuration>

2.5 启动hive

修改好配置文件后,我们就可以启动 Hive 了!

在启动 Hive 之前,我们还需要启动MySQL,这里我的MySQL安装在了 Docker 中。

  • 启动docker
sudo systemctl start docker
  • 查看MySQL的容器id
sudo docker ps -a

  • 启动MySQL
sudo docker start 85a041875a9e(刚才拷贝的id)

进入到hive安装目录下,执行以下命令初始化元数据库:

schematool -dbType mysql -initSchema
  • 启动Hive

启动HiveServer2:

$HIVE_HOME/bin/hiveserver2

启动Hive:

hive

三、导入Hdfs数据到Hive✨

3.1 修改Hadoop集群配置

  • 进入到Hadoop安装目录下
cd /opt/module/hadoop-3.1.3/etc/hadoop/
  • 修改core-site.xml文件
vim core-site.xml
  • 将以下内容添加进入,已经有的可以不用添加,需要修改的地方已经用注释的形式说明
<!-- 1.基本配置——hdfs -->
<!--指定NameNode的内部通讯地址-->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://hadoop102:8020</value>
  <description>version of this configuration file</description>
</property>
<!-- 指定Hadoop数据的存储目录-->
<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/module/hadoop-3.1.3/data</value>
  <description>A base for other temporary directories.</description>
</property>
<!-- 配置网页登录的静态用户是sky(换成自己的)-->
<property>
  <name>hadoop.http.staticuser.user</name>
  <value>sky</value>
</property>
<!--配置使用sky用户(换成自己的)登录的主机为任意主机-->
<property>
    <name>hadoop.proxyuser.sky.hosts</name>
    <value>*</value>
</property>
<!--配置使用sky用户(换成自己的)登录的群组为任意群组-->
<property>
    <name>hadoop.proxyuser.sky.groups</name>
    <value>*</value>
</property>

3.2 初始化

进入到hive目录:

cd /opt/module/hive

初始化元数据库:

schematool -dbType mysql -initSchema

3.3 创建表

create table order_by_province(dt string,
province_id string,
province_name string,
area_code string,
iso_code string,
order_count bigint,
order_amount decimal)
row format delimited 
fields terminated by '\t';

3.4 从Hdfs导入数据

使用Load命令从HDFS导入数据刀Hive:

load data inpath '/mysql/gmall_report/order_by_province/*' into table order_by_province;

四、总结撒花😊

本文主要讲解了Hive的安装配置及使用,个人感觉还不是很完善,仅供参考哈,有错误欢迎指出。😊

这就是今天要分享给大家的全部内容了,我们下期再见!😊

🏠 本文由初心原创,首发于CSDN博客, 博客主页:初心%🏠

🏠 我在CSDN等你哦!😍

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

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

相关文章

MySQL-索引详解(上)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️树高千尺&#xff0c;落叶归根人生不易&…

Qt(C++)绘制指针仪表盘显示当前温度

一、功能介绍 当前文章要实现的功能: 使用Qt绘制一个仪表盘,用来显示当前的温度,绘制刻度、绘制数字、绘制温度指针。仪表盘全程使用QPainter进行绘制,QPainter是Qt框架中非常重要的一个类,绘制功能的实现离不开它。如果想要使用Qt进行高质量的绘图或UI设计,必须掌握QP…

Django新手必看:如何创建应用和定义数据表。(详细讲解)

Django新手必看&#xff1a;如何创建应用和定义数据表。 1. Django创建应用1.1 创建应用1.2 应用的添加 2. Django ORM2.1 定义数据表2.2 定义项目数据表2.3 通用字段选项2.4 外键使用2.5 应用数据库迁移 &#x1f3d8;️&#x1f3d8;️个人简介&#xff1a;以山河作礼。 &…

学习HCIP的day.11

目录 十一、BGP的属性 1、权重属性 2、本地优先级 3、as-path 4、起源属性 5、MED --多出口的鉴别属性 十二、BGP选路规则 十三、BGP的社团属性 十四、BGP的在MA网络中的下一跳问题 五、BGP的认证 十一、BGP的属性 BGP协议在选路时&#xff0c;先对比属性&#xf…

Java(30天拿下---第一天)

Java开发&#xff08;30天拿下---第一天&#xff09; 一 hello world以及JDK,JRE,JVM二 转义字符三 注释四 代码规范五 DOS命令&#xff08;了解&#xff09;六 变量1.加号的使用2.数据类型整型浮点型字符类型布尔类型自动类型转换强制类型转换String类型 七 API文档 一 hello …

ASP.NET Core Web API入门之一:创建新项目

ASP.NET Core Web API入门之一&#xff1a;创建新项目 一、引言二、创建新项目三、加入Startup类&#xff0c;并替换Program.cs内容四、编辑Program.cs代码五、修改控制器的路由六、运行项目 一、引言 最近闲着&#xff0c;想着没真正从0-1开发过ASP.NET Core Web API的项目&a…

softmax之温度系数

1.数学表示 这是传统的softmax&#xff1a; q i e x p ( z i ) ∑ j e x p ( z j ) q_i \frac{exp(z_i)}{\sum_jexp(z_j)} qi​∑j​exp(zj​)exp(zi​)​ 或者写&#xff1a; q i e x p ( z i ) / 1.0 ∑ j e x p ( z j / 1.0 ) q_i \frac{exp(z_i)/1.0}{\sum_jexp(z_j/…

七、进程地址空间

一、环境变量 &#xff08;一&#xff09;概念 环境变量(environment variables)&#xff1a;系统当中用做特殊用途的系统变量。 如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪里&#xff0c;但是照样可…

vue3---模板引用 nextTick

目录 模板引用--ref 访问模板引用 v-for 中的模板引用 函数模板引用 组件上的 ref 简单理解Vue中的nextTick 示例 二、应用场景 三、nextTick源码浅析 实战 --- vue3实现编辑与查看功能 模板引用--ref 虽然 Vue 的声明性渲染模型为你抽象了大部分对 DOM 的直接操作&…

LeetCode - 15 三数之和

目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 15. 三数之和 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满…

Cmake工具的简单使用

引言 本篇文章讲述如何简单的使用cmake工具构建一个项目&#xff0c;帮助入门的c新手学会如何使用cmake. 我们在Clion新创建一个项目时&#xff0c;会发现&#xff0c;除了main.cpp文件之外&#xff0c;还存在一个build-debug目录和一个CMakelists.txt文件&#xff0c;如图: …

群晖 NAS 外网访问设置 - 腾讯 DNSPod

目录 ​编辑 一、使用DNSPod&#xff0c;实现DDNS&#xff08;动态域名&#xff09; 二、公共概念厘清 三、腾讯DNSPod上详细设置步骤 1. 打开DNSPod.cn网站并登录 2. 登录成功后&#xff0c;选择【我的域名】-> 【添加域名】 3. 添加群晖NAS需要二级域名&#xff08…

安装 Kafka

文章目录 1.选择操作系统2.配置 Java 环境3.安装 ZooKeeper4.安装 broker&#xff08;1&#xff09;安装 broker&#xff08;2&#xff09;验证是否安装正确 5.配置 broker&#xff08;1&#xff09;常规配置&#xff08;2&#xff09;主题的默认配置 6.配置 Kafka 集群&#x…

一种新型智能优化算法—鼠群优化(RSO)算法

目录 一、RSO理论基础 二、RSO数学模型 2.1 追逐猎物 2.2 攻击猎物 三、RSO流程图 四、运行结果 鼠群优化(Rat Swarm Optimizer&#xff0c;RSO)算法是由Dhiman G等人于2020年提出&#xff0c;主要启发于老鼠追逐和攻击猎物的种群行为。该优化算法具有结构简单&#xf…

【Spring源码解读三】IoC容器之AnnotationConfigApplication的refresh()刷新方法其二

invokeBeanFactoryPostProcessors() PriorityOrdered接口 Ordered接口 invokeBeanDefinitionRegistryPostProcessors() registerBeanPostProcessors() getBeanNamesForType() initMessageSource() initApplicationEventMulticaster() onRefresh() registerListeners()…

go语言学习——9

文章目录 goroutine概念goroutine调度模型 channelchannel介绍定义/声明channelchannel的关闭channel遍历channel其他细节 goroutine 前言&#xff1a;统计1~90000000数字中&#xff0c;哪些是素数&#xff1f; 使用循环&#xff0c;很慢使用并发或者并行的方式&#xff0c;将任…

【保姆级】如何创建一个Vue工程

如何创建一个Vue工程 文章目录 如何创建一个Vue工程1、下载安装Node.js2、配置环境变量3、npm 安装淘宝镜像4、安装Vue CliVue 安装失败原因 5、在线创建工程创建工程启动服务启动报错停止服务重启服务 1、下载安装Node.js Node.js是一个js运行环境&#xff0c;Vue工程需要建立…

机器学习实战六步法之数据收集方法(四)

要落地一个机器学习的项目&#xff0c;是有章可循的&#xff0c;通过这六个步骤&#xff0c;小白也能搞定机器学习。 看我闪电六连鞭&#xff01;&#x1f923; 数据收集 数据是机器学习的基础&#xff0c;没有数据一切都是空谈&#xff01;数据集的数据量和数据的质量往往决…

有哪些比较好的游戏图标推荐

游戏图标设计在游戏UI中占有非常重要的地位。例如&#xff0c;当我们看到一个游戏的启动图标时&#xff0c;很容易区分它是哪个游戏。设计游戏图标不仅是一个图形&#xff0c;也是一个标志。 本文将通过各种游戏图标设计素材分享游戏图标的类别和设计游戏图标的思考。 1. 游戏…

HTTPS 协议

哥几个来学 HTTPS 协议 啦 ~~ 目录 &#x1f332;一、HTTPS 是什么&#xff1f; &#x1f333;二、何为 “加密” &#x1f334;三、HTTPS 的工作过程 &#x1f366;1. 引入对称加密 &#x1f367;2. 引入非对称加密 &#x1f368;3.引入证书 &#x1f332;一、HTTPS 是什…