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

news2024/11/24 10:58:27


知识目录

  • 一、写在前面💕
  • 二、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等你哦!😍

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

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

相关文章

【Leetcode】贪心 区间问题 | 用最小数量的箭引爆气球、无重叠区间、划分字母区间、合并区间

452 用最少数量的箭引爆气球 更像一个重叠区间问题&#xff0c;贪心策略&#xff1a;应该在重叠最多处射出。 按区间左端点递增序进行排序&#xff0c;左端点相同时&#xff0c;按右端点递增序排序。 现在欲射穿气球 i i i&#xff0c;当发现相邻的两个区间有重叠时&#xff…

[230604] 听力TPO66汇总·上篇| C1 L1 C2|10:20~12:00

目录​​​​​​​ Science Fiction And Sci-fi-C1 错题分析 C1-3 细节双选题 C1 精听练习 做题笔记 Financial Advice-C2 全对 C2 精听练习 Sleep-L1 错题分析 L1-4 细节题 L1-5 细节双选题 L1 精听练习 做题笔记 词汇&#xff1a;http://t.csdn.cn/Zhuws 两篇对…

编译型语言与解释型语言的区别

用比喻来明编译型语言和解释型语言的区别&#xff1a; 假设你要理解一本书&#xff08;源代码&#xff09;将转化为一篇演讲稿&#xff08;机器代码&#xff09;。 编译型语言类似于你将整本书翻译成一篇演讲稿。你需要在事先对整本书进行翻译&#xff0c;将其转化为一份完整…

chatgpt赋能python:Python如何使用while函数倒序输出数字?

Python如何使用while函数倒序输出数字&#xff1f; Python是一种高级编程语言&#xff0c;它易于学习、易于使用&#xff0c;这使得它成为了非常受欢迎的编程语言之一。Python在各种应用程序中都有着广泛的应用&#xff0c;从Web开发到数据分析&#xff0c;甚至是人工智能等领…

脑疾病患者福音,又一家脑机接口公司完成首次人体试验

近日&#xff0c;脑机接口公司Precision Neuroscience宣布完成其神经植入系统的首次人体临床试验&#xff0c;该公司设计的植入系统在1平方厘米的面积上有1024个微型电极&#xff0c;这些电极被嵌入到与大脑表面一致的柔性薄膜中。这种薄膜只有人类头发厚度的五分之一&#xff…

chatgpt赋能python:Python中如何倒着输出字符串

Python中如何倒着输出字符串 在Python编程中&#xff0c;字符串是一种不可避免的数据类型&#xff0c;我们往往需要对字符串进行各种操作。其中&#xff0c;倒着输出字符串是一项基本的操作&#xff0c;对于初学者来说&#xff0c;可能并不是很容易理解。本文将介绍如何使用Py…

【算法题001】面试题 01.01. 判定字符是否唯一

题目来源&#xff1a;《程序员面试金典&#xff08;第 6 版&#xff09;》 1、Problem: 面试题 01.01. 判定字符是否唯一 文章目录 面试题 01.01. 判定字符是否唯一一、题目描述二、解决方案&#xff08;一&#xff09;方案一1、解题思路2、解题方法3、复杂度4、代码实现 &…

二本4年Java经验,大佬五面阿里(定薪45K)

前段时间刚面试上岸&#xff0c;先后面试了各大小公司&#xff0c;拿了一些 offer&#xff0c;有阿里&#xff0c;滴滴&#xff0c;快手&#xff0c;达达&#xff0c;得物等公司。面试的公司大部分都能过&#xff0c;所以这里给大家分享下自己的经验&#xff0c;也给自己做个归…

地震勘探基础(十二)之地震偏移处理

地震偏移处理 地震数据常规处理主要包括地震反褶积&#xff0c;水平叠加和地震偏移成像三大类。地震反褶积通过压缩地震子波提高地震分辨率&#xff0c;水平叠加的目的是提高信噪比&#xff0c;地震偏移成像的目的是提高地震空间分辨率和地震保真度。 在20世纪50年代&#xf…

【1】Midjourney新手必读

Midjourney官网网站&#xff1a;https://www.midjourney.com/ 问题一&#xff1a;Midjourney是什么 Midjourney 是 AI 生成算图工具&#xff0c;输入文字就会自动产生图像&#xff0c;目前架设在Discord频道上。 问题二&#xff1a;Discord频道是什么 Discord是国外的一个社…

Matlab快速入门——数组

学习目标&#xff1a;学习关于数组的详细知识&#xff08;喜欢的别忘记点赞收藏呦&#xff09; clear all; A[] %空数组 B[5 6 5 4 1] %行向量 C[5,5,5,4,4] %行向量 D[3;3;3;3;5] %列向量 EC %对行向量转置得到列向量 clear all…

实验篇(7.2) 09. 通过安全隧道走对方宽带上网 (FortiClient-IPsec) ❀ 远程访问

【简介】要想所有的流量都走安全隧道&#xff0c;就需要禁用隧道分割。这样上网流量也会通过隧道到达远端防火墙&#xff0c;再通过远端防火墙的宽带接口去到互联网。我们来看看FortiClient客户端用IPsec VPN是如何实现的。 实验要求与环境 OldMei集团深圳总部防火墙有两条宽带…

006:vue中el-tree 添加右键菜单的方法

第006个 查看专栏目录: 按照VUE知识点 ------ 按照element UI知识点 echarts&#xff0c;openlayers&#xff0c;cesium&#xff0c;leaflet&#xff0c;mapbox&#xff0c;d3&#xff0c;canvas 免费交流社区 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏…

document.URL与document.documentURI

document.URL与document.documentURI document.URL document.URL 返回当前文档的 URL 地址 该属性的值和DOM Level 0 中的document.location.href 属性的值是相等的。然而 document.location.href 是可写的&#xff0c;document.URL 是只读的。 document.documentURI 也返回…

【Linux】动态库与静态库,如何打包库,如何使用第三方库

文章目录 回顾基础学会打包自己的库并使用静态库打包库第三方库的使用 动态库打包库第三方库的使用 动态库加载以及周边问题 回顾基础 这篇文章主要对动静态库进行进一步的学习&#xff0c;关于动静态库的一些基础知识&#xff0c;请点击这篇文章的链接&#xff1a;【Linux】初…

【Docker】如何实现Docker 命令自动补全

前言 Docker 命令可以使用 tab 键补全。在命令行输入 Docker 命令时&#xff0c;只需输入前几个字符&#xff0c;然后按 Tab 键即可自动补全为正确的命令或参数。 例如&#xff0c;在命令行输入 docker r&#xff0c;然后按 Tab 键&#xff0c;就会自动补全为 docker run 命令…

YOLOv7训练自定义数据集

使用YOLOv7做对比实验&#xff0c;需要重新部署一下YOLO环境&#xff0c;并将COCO格式数据集转换为YOLO格式 博主的COCO数据集是由WiderPerson数据集转换来的&#xff0c;并且做了一些处理。 环境 Ubuntu18.0 CUDA11.2 NVIDIA T4 项目部署 下载项目&#xff1a; git clone…

SSM-Spring+SpringMVC+MyBatis框架的水果商城网站

项目介绍 主要功能&#xff1a; 前端用户购物端&#xff1a; ①角色信息&#xff1a;用户注册、用户登录、个人中心 ②个人中心&#xff1a;基本信息、我的订单、商品收藏、修改密码 ③首页管理&#xff1a;公告、留言、折扣大促销、热门商品 ④商品详情&#xff1a;收藏、加入…

基于Fragstats做土地利用景观格局分析详细流程

随城市化进程加快&#xff0c;城市经济迅速发展&#xff0c;城市面积不断向外扩展&#xff0c;景观空间组分不断发生变化&#xff0c;主要表现为&#xff1a;生态斑块支离破碎&#xff0c;生物多样性降低&#xff0c;原始的乡村田野景观被现代化建设用地取代&#xff1b;交通网…

数据结构与算法之树结构

目录 为什么要使用树结构树结构基本概念树的种类树的存储与表示常见的一些树的应用场景为什么要使用树结构 线性结构中不论是数组还是链表,他们都存在着诟病;比如查找某个数必须从头开始查,消耗较多的时间。使用树结构,在插入和查找的性能上相对都会比线性结构要好 树结构…