Maison base de données tutoriel mysql Hive RCFile的高效存储结构

Hive RCFile的高效存储结构

Jun 07, 2016 pm 05:32 PM
hive

本文介绍了Facebook公司数据分析系统中的RCFile存储结构,该结构集行存储和列存储的优点于一身,在 MapReduce环境下的大规模数据

本文介绍了Facebook公司数据分析系统中的RCFile存储结构,该结构集行存储和列存储的优点于一身,在 MapReduce环境下的大规模数据分析中扮演重要角色。

Facebook曾在2010 ICDE(IEEE International Conference on Data Engineering)会议上介绍了数据仓库Hive。Hive存储海量数据在Hadoop系统中,提供了一套类数据库的数据存储和处理机制。它采用类 SQL语言对数据进行自动化管理和处理,经过语句解析和转换,最终生成基于Hadoop的MapReduce任务,通过执行这些任务完成数据处理。图1显 示了Hive数据仓库的系统结构。

图1 Hive数据仓库的系统结构

基于MapReduce的数据仓库在超大规模数据分析中扮演了重要角色,对于典型的Web服 务供应商,这些分析有助于它们快速理解动态的用户行为及变化的用户需求。数据存储结构是影响数据仓库性能的关键因素之一。Hadoop系统中常用的文件存 储格式有支持文本的TextFile和支持二进制的SequenceFile等,它们都属于行存储方式。Facebook工程师发表的RCFile: A Fast and Spaceefficient Data Placement Structure in MapReducebased Warehouse Systems一文,介绍了一种高效的数据存储结构——RCFile(Record Columnar File),并将其应用于Facebook的数据仓库Hive中。与传统数据库的数据存储结构相比,RCFile更有效地满足了基于MapReduce的 数据仓库的四个关键需求,即Fast data loading、Fast query processing、Highly efficient storage space utilization和Strong adaptivity to highly dynamic workload patterns。

数据仓库的需求

基于Facebook系统特征和用户数据的分析,在MapReduce计算环境下,数据仓库对于数据存储结构有四个关键需求。

Fast data loading

对于Facebook的产品数据仓库而言,快速加载数据(写数据)是非常关键的。每天大约有超过20TB的数据上传到Facebook的数据仓库, 由于数据加载期间网络和磁盘流量会干扰正常的查询执行,因此缩短数据加载时间是非常必要的。

Fast query processing

为了满足实时性的网站请求和支持高并发用户提交查询的大量读负载,查询响应时间是非常关键的,这要求底层存储结构能够随着查询数量的增加而保持高速 的查询处理。

Highly efficient storage space utilization

高速增长的用户活动总是需要可扩展的存储容量和计算能力,有限的磁盘空间需要合理管理海量数据的存储。实际上,该问题的解决方案就是最大化磁盘空间 利用率。

Strong adaptivity to highly dynamic workload patterns

同一份数据集会供给不同应用的用户,通过各种方式来分析。某些数据分析是例行过程,,按照某种固定模式周期性执行;而另一些则是从中间平台发起的查 询。大多数负载不遵循任何规则模式,这需要底层系统在存储空间有限的前提下,对数据处理中不可预知的动态数据具备高度的适应性,而不是专注于某种特殊的负 载模式。

MapReduce存储策略

要想设计并实现一种基于MapReduce数据仓库的高效数据存储结构,关键挑战是在MapReduce计算环境中满足上述四个需求。在传统数据库 系统中,三种数据存储结构被广泛研究,分别是行存储结构、列存储结构和PAX混合存储结构。上面这三种结构都有其自身特点,不过简单移植这些数据库导向的 存储结构到基于MapReduce的数据仓库系统并不能很好地满足所有需求。

行存储

如图2所示,基于Hadoop系统行存储结构的优点在于快速数据加载和动态负载的高适应能力,这是因为行存储保证了相同记录的所有域都在同一个集群 节点,即同一个HDFS块。不过,行存储的缺点也是显而易见的,例如它不能支持快速查询处理,因为当查询仅仅针对多列表中的少数几列时,它不能跳过不必要 的列读取;此外,由于混合着不同数据值的列,行存储不易获得一个极高的压缩比,即空间利用率不易大幅提高。尽管通过熵编码和利用列相关性能够获得一个较好 的压缩比,但是复杂数据存储实现会导致解压开销增大。

图2 HDFS块内行存储的例子

列存储

图3显示了在HDFS上按照列组存储表格的例子。在这个例子中,列A和列B存储在同一列组,而列C和列D分别存储在单独的列组。查询时列存储能够避 免读不必要的列,并且压缩一个列中的相似数据能够达到较高的压缩比。然而,由于元组重构的较高开销,它并不能提供基于Hadoop系统的快速查询处理。列 存储不能保证同一记录的所有域都存储在同一集群节点,例如图2的例子中,记录的4个域存储在位于不同节点的3个HDFS块中。因此,记录的重构将导致通过 集群节点网络的大量数据传输。尽管预先分组后,多个列在一起能够减少开销,但是对于高度动态的负载模式,它并不具备很好的适应性。除非所有列组根据可能的 查询预先创建,否则对于一个查询需要一个不可预知的列组合,一个记录的重构或许需要2个或多个列组。再者由于多个组之间的列交叠,列组可能会创建多余的列 数据存储,这导致存储利用率的降低。

图3 HDFS块内列存储的例子

更多详情见请继续阅读下一页的精彩内容

Hive 的详细介绍:请点这里
Hive 的下载地址:请点这里

相关阅读:

基于Hadoop集群的Hive安装

Hive内表和外表的区别

Hadoop + Hive + Map +reduce 集群安装部署

Hive本地独立模式安装

Hive学习之WordCount单词统计

linux

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Utilisez le langage Hive in Go pour mettre en œuvre un entrepôt de données efficace Utilisez le langage Hive in Go pour mettre en œuvre un entrepôt de données efficace Jun 15, 2023 pm 08:52 PM

Ces dernières années, les entrepôts de données sont devenus partie intégrante de la gestion des données d'entreprise. L'utilisation directe de la base de données pour l'analyse des données peut répondre à des besoins de requêtes simples, mais lorsque nous devons effectuer une analyse de données à grande échelle, une seule base de données ne peut plus répondre aux besoins. À l'heure actuelle, nous devons utiliser un entrepôt de données pour traiter des données massives. . Hive est l'un des composants open source les plus populaires dans le domaine des entrepôts de données. Il peut intégrer le moteur informatique distribué Hadoop et les requêtes SQL et prendre en charge le traitement parallèle de données massives. En même temps, en langage Go, utilisez

Premiers pas avec PHP : PHP et Hive Premiers pas avec PHP : PHP et Hive May 20, 2023 am 08:33 AM

PHP est un langage de programmation côté serveur largement utilisé dans presque tous les secteurs. Dans cet article, nous explorerons le rôle particulier de PHP dans le traitement du Big Data. Dans certaines circonstances, PHP peut collaborer avec ApacheHive pour réaliser un traitement et une analyse des données en temps réel. Tout d’abord, présentons Hive. Hive est une solution d'entrepôt de données basée sur Hadoop. Il peut mapper des données structurées dans des requêtes SQL et exécuter les requêtes en tant que tâches MapReduce.

PHP implémente la plateforme open source d'analyse Big Data Hive PHP implémente la plateforme open source d'analyse Big Data Hive Jun 18, 2023 pm 02:47 PM

À mesure que le traitement des données prend de plus en plus d’importance, l’analyse du Big Data devient de plus en plus courante. Cependant, de nombreuses entreprises ne souhaitent pas dépenser beaucoup d’argent dans une plateforme d’analyse commerciale. Les solutions open source offrent à ces entreprises une option viable. Dans cet article, nous verrons comment implémenter la plateforme open source d'analyse Big Data Hive à l'aide de PHP. Hive est un système d'entrepôt de données basé sur Hadoop qui peut interroger et gérer des ensembles de données à grande échelle sur Hadoop via SQL. Il utilise le langage HiveQL de type SQL pour interroger

Microsoft Exchange Server touché par le ransomware « windows.exe » de Hive Microsoft Exchange Server touché par le ransomware « windows.exe » de Hive Apr 16, 2023 pm 01:28 PM

Bien que maintenir les logiciels à jour et télécharger uniquement des fichiers à partir de sources fiables soient des pratiques standard en matière de cybersécurité, compte tenu de la récente augmentation des attaques de logiciels malveillants, il est clair qu'une éducation plus poussée est nécessaire dans ce domaine. À cette fin, l'équipe médico-légale de Varonis a fourni des conseils sur la manière dont les attaquants utilisant le ransomware Hive ciblent Microsoft Exchange Server dans leur dernière série d'attaques. Pour ceux qui ne le savent pas, Hive suit un modèle de ransomware-as-a-service. Bien que Microsoft cible E en 2021 pour les vulnérabilités connues,

Microsoft publie un correctif pour l'erreur Behavior:Win32/Hive.ZY dans Windows Defender Microsoft publie un correctif pour l'erreur Behavior:Win32/Hive.ZY dans Windows Defender Apr 28, 2023 pm 04:01 PM

Un responsable de Microsoft a confirmé de nombreuses informations selon lesquelles Google Chrome, ChromiumEdge, Discord et plusieurs autres applications étaient signalées comme « Behavior:Win32/Hive.ZY » par le logiciel antivirus intégré de Microsoft « WindowsDefender ». Le géant de la technologie a confirmé dans un communiqué qu'il travaillait sur un correctif qui sera déployé pour tout le monde dans les prochaines heures. Alors, qu’est-ce que « Behavior:Win32/Hive.ZY » exactement ? Selon un document publié sur le portail de sécurité de Microsoft, tout fichier marqué « Behavior:Win32/Hive.ZY » est

Tutoriel d'installation et de configuration de Centos7 Hive. Tutoriel d'installation et de configuration de Centos7 Hive. Feb 19, 2024 pm 02:21 PM

Lors de l'installation et de la configuration de Hive sur CentOS7, vous pouvez suivre ces étapes : Assurez-vous que Java est installé : Tout d'abord, assurez-vous que Java est installé sur CentOS7. Vous pouvez vérifier si Java est installé à l'aide de la commande suivante : java-version Si Java n'est pas installé, veuillez installer la version Java appropriée en fonction de vos besoins. Téléchargez Hive : Visitez le site officiel d'ApacheHive () et téléchargez la dernière version stable de Hive. Décompressez le package compressé Hive : utilisez la commande suivante pour décompresser le package compressé Hive : tarxvfzhive-x.x.x.tar.gz Cela décompressera Hive dans le répertoire actuel. Configurer les variables d'environnement : ouvrir le terminal,

Comment corriger le comportement de Windows Defender : alerte Win32/Hive.ZY Comment corriger le comportement de Windows Defender : alerte Win32/Hive.ZY May 06, 2023 am 08:04 AM

De nombreux utilisateurs de Windows 11 et 10 sont troublés par les notifications d'avertissement de Windows Defender indiquant que la menace « Comportement : Win32/Hive.ZY » a été détectée. Selon les rapports, cet avertissement ou alerte Windows Defender est déclenché lorsque les utilisateurs tentent d'ouvrir certaines applications couramment utilisées telles que Google Chrome ou Chromium Edge, Whatsapp, Discord et Spotify. Même si vous avez bloqué cette menace sur votre PC, elle apparaîtra avec un message MicrosoftDefenderAntivi la prochaine fois que vous ouvrirez cette application concernée.

Comment lire la base de données Hive en utilisant Python ? Comment lire la base de données Hive en utilisant Python ? May 09, 2023 pm 04:28 PM

实际业务读取hive数据库的代码importloggingimportpandasaspdfromimpala.dbapiimportconnectimportsqlalchemyfromsqlalchemy.ormimportsessionmakerimportosimporttimeimportosimportdatetimefromdateutil.relativedeltaimportrelativedeltafromtypingimportDict,Listimportloggingi

See all articles