草庐IT

平分分区

全部标签

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 - 用于文件写入的 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

sql - 在现有配置单元表上添加分区

我正在处理一个大的hive表(超过5000亿条记录)。处理速度太慢,我想加快速度。我认为通过添加分区,该过程可能会更有效率。谁能告诉我该怎么做?请注意,我的表已经存在。我的table:createtableT(nomstring,prenomstring,...datestring)按日期字段分区。谢谢 最佳答案 SEThive.exec.dynamic.partition=true;SEThive.exec.dynamic.partition.mode=nonstrict;INSERTOVERWRITETABLEtable_nam

hadoop - 如何(仅)按时间戳列的一部分对配置单元表进行分区?

假设我有一个Hive表,其中包含一个TIMESTAMP列,该列经常(几乎总是)包含在查询的WHERE子句中。通过TIMESTAMP字段对该表进行分区是有意义的;但是,为了保持合理的基数,按天进行分区(而不是按TIMESTAMP的最大分辨率)是有意义的。实现此目标的最佳方法是什么?我应该在上面创建一个额外的列(DATE)和分区吗?或者有没有办法在不创建重复列的情况下实现分区? 最佳答案 它不是一个新列,而是一个伪列,您应该重新创建您的表并添加分区规范,如下所示:createtabletable_name(idint,namestrin

hadoop - 将路径文件加载到分区表

我正在尝试通过运行以下命令将文件本地加载到Hive中:LOADDATAINPATH'/data/work/hive/staging/ExampleData.csv'INTOTABLE表名;这给了我错误:SemanticException[Error10062]:Needtospecifypartitioncolumnsbecausethedestinationtableispartitioned(state=42000,code=10062)AnanswerIfound建议创建一个中间表,然后让动态分区启动以加载到分区表中。我创建了一个匹配数据的表并将其截断:createtablete