Hive RCFile的高效存储结构
本文介绍了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单词统计

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











최근 몇 년 동안 데이터 웨어하우스는 기업 데이터 관리의 필수적인 부분이 되었습니다. 데이터 분석을 위해 데이터베이스를 직접 사용하면 간단한 쿼리 요구 사항을 충족할 수 있지만, 대규모 데이터 분석을 수행해야 하는 경우 단일 데이터베이스로는 더 이상 이러한 요구 사항을 충족할 수 없습니다. . Hive는 데이터 웨어하우스 분야에서 가장 널리 사용되는 오픈 소스 구성 요소 중 하나입니다. Hadoop 분산 컴퓨팅 엔진과 SQL 쿼리를 통합하고 대규모 데이터의 병렬 처리를 지원할 수 있습니다. 동시에 Go 언어에서는 다음을 사용합니다.

PHP는 거의 모든 산업 분야에서 널리 사용되는 서버 측 프로그래밍 언어입니다. 이 글에서는 빅데이터 처리에서 PHP의 특별한 역할을 살펴보겠습니다. 특정 상황에서 PHP는 ApacheHive와 협력하여 실시간 데이터 처리 및 분석을 달성할 수 있습니다. 먼저 Hive를 소개하겠습니다. Hive는 Hadoop 기반 데이터 웨어하우스 솔루션입니다. 구조화된 데이터를 SQL 쿼리에 매핑하고 쿼리를 MapReduce 작업으로 실행할 수 있습니다.

데이터 처리가 점점 더 중요해짐에 따라 빅데이터 분석이 점점 더 보편화되고 있습니다. 그러나 많은 기업에서는 비즈니스 분석 플랫폼에 많은 돈을 지출하고 싶어하지 않을 수 있습니다. 오픈 소스 솔루션은 이러한 회사에 실행 가능한 옵션을 제공합니다. 이번 글에서는 PHP를 사용하여 오픈소스 Hive 빅데이터 분석 플랫폼을 구현하는 방법에 대해 설명하겠습니다. Hive는 Hadoop의 대규모 데이터 세트를 SQL을 통해 쿼리하고 관리할 수 있는 Hadoop 기반 데이터 웨어하우스 시스템입니다. SQL과 유사한 HiveQL 언어를 사용하여 쿼리합니다.

Microsoft 관계자는 Google Chrome, ChromiumEdge, Discord 및 기타 여러 응용 프로그램이 Microsoft 내장 바이러스 백신 소프트웨어 "WindowsDefender"에 의해 "Behavior:Win32/Hive.ZY"로 표시되었다는 광범위한 보고를 확인했습니다. 거대 기술 기업은 성명을 통해 앞으로 몇 시간 안에 모든 사람에게 배포될 수정 사항을 작업 중이라고 확인했습니다. 그렇다면 "Behavior:Win32/Hive.ZY"는 정확히 무엇입니까? Microsoft의 보안 포털에 게시된 문서에 따르면 "Behavior:Win32/Hive.ZY"라고 표시된 모든 파일은

소프트웨어를 최신 상태로 유지하고 신뢰할 수 있는 소스에서만 파일을 다운로드하는 것이 표준 사이버 보안 관행이지만 최근 맬웨어 공격이 증가한 것을 고려할 때 이 분야에 대한 더 많은 교육이 필요하다는 것은 분명합니다. 이를 위해 Varonis 포렌식 팀은 Hive 랜섬웨어를 사용하는 공격자가 최신 일련의 공격에서 Microsoft Exchange Server를 표적으로 삼는 방법에 대한 몇 가지 지침을 제공했습니다. 모르시는 분들을 위해 설명하자면, Hive는 서비스형 랜섬웨어 모델을 따릅니다. Microsoft는 알려진 취약점에 대해 2021년 E를 목표로 하고 있지만,

CentOS7에 Hive를 설치하고 구성할 때 다음 단계를 수행할 수 있습니다. Java가 설치되어 있는지 확인합니다. 먼저 CentOS7에 Java가 설치되어 있는지 확인합니다. 다음 명령을 사용하여 Java가 설치되어 있는지 확인할 수 있습니다. java-version Java가 설치되어 있지 않은 경우 필요에 따라 적절한 Java 버전을 설치하십시오. Hive 다운로드: ApacheHive() 공식 웹사이트를 방문하여 최신 안정 버전의 Hive를 다운로드하세요. Hive 압축 패키지 압축 해제: 다음 명령을 사용하여 Hive 압축 패키지의 압축을 해제합니다. tarxvfzhive-x.x.x.tar.gz 이렇게 하면 Hive가 현재 디렉터리로 압축 해제됩니다. 환경 변수 구성: 터미널을 열고,

많은 Windows 11 및 10 사용자는 "동작: Win32/Hive.ZY" 위협이 감지되었다는 Windows Defender의 경고 알림을 보고 어려움을 겪고 있습니다. 보고서에 따르면 이 Windows Defender 경고는 사용자가 Google Chrome 또는 Chromium Edge, Whatsapp, Discord 및 Spotify와 같이 일반적으로 사용되는 일부 응용 프로그램을 열려고 할 때 트리거됩니다. PC에서 이 위협을 차단했더라도 다음에 영향을 받는 이 응용 프로그램을 열면 MicrosoftDefenderAntivi 메시지가 표시됩니다.

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