草庐IT

分区Partition

全部标签

hadoop - Hive:尝试创建动态分区时出现 fatal error

createtableMY_DATA0(session_idSTRING,useridBIGINT,date_timeSTRING,ipSTRING,URLSTRING,countrySTRING,stateSTRING,citySTRING)ROWFORMATDELIMITEDFIELDSTERMINATEDBY','LINESTERMINATEDBY'\n'STOREDASTEXTFILE;LOADDATAINPATH'/inputhive'OVERWRITEINTOTABLEMY_DATA0;createtablepart0(session_idSTRING,useridBIGI

hadoop - 通过分区控制 Impala 中的数据局部性

如果在表创建时理想的数据位置或布局已知,我想避免Impala节点不必要地通过网络从其他节点请求数据。这对于“非加性”操作很有帮助,其中分区中的所有记录无论如何都需要在同一位置(节点)(例如百分位数)。是否可以告诉Impala分区中的所有数据都应该始终位于任何HDFS副本的单个节点上?在Impala-SQL中,我不确定“PARTITIONEDBY”子句是否提供此功能。据我了解,Impala将其分区分块到HDFS上的单独文件中,但HDFS不保证相关文件的共同定位,默认情况下也不block(而是试图实现相反的目标)。找到一些关于Impala对HDFS开发的影响的信息,但不清楚这些是否已经实现

java - HBase 分区域负载均衡

我有一个5节点的HBase集群,主要有获取顺序数据的输入请求。为了优化存储,我在高负载区域上运行了手动区域拆分,但它并没有优化太多,因为它拆分了区域,但主要是在同一个区域服务器上。如何以这种方式控制区域分割r-1(k1tok2)onservers1,r-2(k2tok3)onservers2,r-3(k3tok4)onservers3,r-4(k4tok5)onservers4,r-5(k5tok6)onservers5,r-6(k6tok7)onservers1,即拆分后,没有连续的region去同一台服务器控制同一台服务器上的负载。 最佳答案

python - 我可以在分区的配置单元表上使用 mrjob python 库吗?

我有一个hadoop服务器/集群的用户访问权限,其中包含的数据仅存储在hive(avro)的分区表/文件中。我想知道我是否可以在这些表上使用pythonmrjob执行mapreduce?到目前为止,我一直在本地对存储在CDH5上的文本文件测试mrjob,开发的简易性给我留下了深刻的印象。经过一番研究,我发现有一个名为HCatalog的库,但据我所知,它不适用于python(仅适用于Java)。不幸的是,我没有太多时间学习Java,我想坚持使用Python。你知道在hive存储的数据上运行mrjob的方法吗?如果这是不可能的,有没有办法将python编写的mapreduce代码流式传输到

hadoop - 无法更改配置单元中的分区位置

我正在尝试更改我的外部配置单元表的分区位置。我尝试运行的命令:ALTERTALBEsl_uploadsPARTITION(hivetimestamp='2016-07-2615:00:00')SETLOCATION'/data/dev/event/uploads/hivetimestamp=2016-07-2615:00:00'我得到的错误:FAILED:ExecutionError,returncode1fromorg.apache.hadoop.hive.ql.exec.DDLTask.java.net.URISyntaxException:Illegalcharacterinpa

hadoop - 如何使用 Pig 将数据存储在 HDFS 上的多个分区文件中

我有一个pig作业,它分析大量日志文件并生成一组属性和一组具有这些属性的ID之间的关系。我想将这种关系存储在HDFS上,但我希望以一种对其他Hive/Pig/MapReduce作业友好的方式来操作数据或数据子集,而无需摄取完整数据我的Pig作业的输出,因为这是大量数据。例如,如果我的关系模式是这样的:relation:{group:(attr1:long,attr2:chararray,attr3:chararray),ids:{(id:chararray)}}我真的很想能够对这些数据进行分区,将其存储在如下所示的文件结构中:/results/attr1/attr2/attr3/fil

hadoop - Hive "add partition"并发

我们有一个用于处理原始日志文件数据的外部Hive表。这些文件按小时计算,并按日期和源主机名分区。目前,我们正在使用每小时触发几次的简单python脚本导入文件。该脚本根据需要在HDFS上创建子文件夹,从临时本地存储复制新文件并将任何新分区添加到Hive。今天,使用“ALTERTABLE...ADDPARTITION...”创建新分区。但是,如果另一个Hive查询正在该表上运行,它将被锁定,这意味着添加分区命令将失败(如果查询运行时间足够长),因为它需要独占锁。此方法的替代方法是使用“MSCKREPAIRTABLE”,出于某种原因,它不似乎在表上获取任何锁。但是,我的印象是不建议在生产环

hadoop - 用于文件写入的 Spark 分区非常慢

当使用Spark将文件写入HDFS时,这在不使用分区时相当快。相反,当我使用分区写入文件时,写入延迟增加了~24倍。同一个文件,不分区写入大约需要600ms。按Id分区写入(将生成恰好1.000个分区,因为文件中有1.000个id)大约需要14秒。你们有没有同样的经历,写一个分区文件需要很长时间?根本原因是什么,也许Spark需要为每个分区创建1.000个文件夹和文件?您知道如何加快这一步吗?valmyRdd=streamedRdd.map{case((id,metric,time),value)=>Record(id,metric,getEpoch(time),time,value)

hadoop - HDFS 与 HIVE 分区

这可能是一件简单的事情,但我正在努力寻找答案。当数据加载到HDFS时,其分布并加载到多个节点中。数据被分区和分布。对于HIVE,有一个单独的选项来对数据进行分区。我很确定,即使您没有提及PARTITION选项,在加载配置单元表时,数据也会被拆分并分发到集群上的不同节点。在这种情况下,此命令有什么额外好处。 最佳答案 总结评论和Hadoopv1-v2.x:逻辑分区,例如。与字符串中的日期或字段相关,如上面的评论中所写,只能在hive、hcat或在hadoop之上工作的另一个sql或并行引擎中使用支持分区的文件格式(Parquet、OR

Hadoop:如何使用上下文对象在减少步骤中找出partition_Id

在HadoopAPI版本中。0.20及更高版本引入了Context对象,而不是JobConf。我需要使用Context对象找出:当前Reducer的partition_id输出文件夹使用过时的JobConf,我可以通过以下方式找到当前Reducer的partition_id:publicvoidconfigure(JobConfconf){intcurrent_partition=conf.getInt("mapred.task.partition",-1);}我认为我需要在方法内部使用Context对象publicvoidsetup(Contextc)但是怎么办?输出文件夹名称呢?