草庐IT

partitioning

全部标签

performance - 用于优化 Hadoop 应用程序可伸缩性的工具?

我正在与我的一个团队合作开发一个小型应用程序,该应用程序需要大量输入(一天的日志文件)并在几个(现在是4个,将来可能是10个)map-reduce步骤(Hadoop&Java).现在我已经完成了这个应用程序的部分POC,并在4个旧桌面(我的Hadoop测试集群)上运行它。我注意到的是,如果您进行“错误”的分区,则水平缩放特性会被破坏得面目全非。我发现比较单个节点(比如20分钟)和所有4个节点上的测试运行只会导致50%的加速(大约10分钟),而我预计会有75%(或至少>70%)的加速(大约5或6分钟)。使map-reduce水平缩放的一般原则是确保分区尽可能独立。我发现在我的例子中,我对

hadoop - Hive 中的许多分区

对于“id”列,我有大约200,000个不同的值,我将它用作动态分区Hive表之一的分区键。现在分区已创建,当我尝试查询时(我使用了简单的Select*查询),它总是返回以下错误:FAILED:SemanticExceptionorg.apache.hadoop.hive.ql.metadata.HiveException:org.apache.thrift.transport.TTransportException:java.net.SocketTimeoutException:Readtimedout谁能告诉我为什么? 最佳答案

hadoop - java.io.NotSerializableException : org. apache.spark.InterruptibleIterator 在 spark java 中执行 mapPartition() 时

我正在尝试对示例数据执行简单的SparkRDD转换mapPartition()。但在这个过程中,我得到了java.io.NotSerializableException:org.apache.spark.InterruptibleIterator异常。这是我的异常(exception):java.io.NotSerializableException:org.apache.spark.InterruptibleIteratorSerializationstack:-objectnotserializable(class:org.apache.spark.InterruptibleIte

hadoop - 如何在使用 alter drop partition 命令从托管表中删除分区时跳过垃圾箱

在使用以下命令从Hive的托管表中删除分区时,有什么方法可以跳过回收站吗?ALTERTABLEDROPPARITION()类似于我们使用hadoopfs命令删除文件时所做的事情hadoopfs-rmr-skipTrash 最佳答案 试试这套。SEThive.warehouse.data.skiptrash=true; 关于hadoop-如何在使用alterdroppartition命令从托管表中删除分区时跳过垃圾箱,我们在StackOverflow上找到一个类似的问题:

hadoop - 从 MapReduce 作业向 Hive 添加分区

我是Hive和MapReduce的新手,非常感谢您的回答并提供正确的方法。我在hive中定义了一个外部表logs,在日期和源服务器上分区,外部位置在hdfs/data/logs/上。我有一个MapReduce作业,它获取这些日志文件并将它们拆分并存储在上述文件夹下。喜欢"/data/logs/dt=2012-10-01/server01/""/data/logs/dt=2012-10-01/server02/"......在MapReduce作业中,我想将分区添加到Hive中的表日志中。我知道这两种方法altertable命令--太多的altertable命令添加动态分区对于方法二,我

hadoop - 按现有字段分区 Hive 表?

我可以在插入现有字段时对Hive表进行分区吗?我有一个10GB的文件,其中包含一个日期字段和一个小时字段。我可以将这个文件加载到一个表中,然后插入覆盖到另一个使用这些字段作为分区的分区表中吗?像下面这样的东西会起作用吗?INSERTOVERWRITETABLEtealeaf_eventPARTITION(dt=evt.datestring,hour=evt.hour)SELECT*FROMstaging_eventevt;谢谢!特拉维斯 最佳答案 我刚刚遇到这个问题,试图回答同样的问题,它很有帮助,但还不够完整。简短的回答是肯定的,

hadoop - mapreduce split和spark partition的区别

我想问一下,在使用Hadoop/MapReduce和Spark时,数据分区是否有任何显着差异?它们都在HDFS(TextInputFormat)上工作,因此理论上应该是相同的。是否存在数据分区程序可能不同的情况?任何见解都会对我的研究非常有帮助。谢谢 最佳答案 IsanysignificantdifferenceindatapartitioningwhenworkingwithHadoop/mapreduceandSpark?Spark支持所有hadoopI/O格式,因为它使用相同的HadoopInputFormatAPI以及它自己

hadoop - Hive 1.1.0 将表分区类型从 int 更改为 string

我有一个表,它有一个int类型的分区,但我想将其转换为字符串。但是,我不知道该怎么做。表的描述是:Col1timestampCol2stringCol3stringCol4stringPart_colint#Partitioninformation#col_namedata_typecommentPart_colint我创建的分区是Part_col=0,Part_col=1,...,Part_col=23我想将它们更改为Part_col='0'等我在配置单元中运行这个命令:sethive.exec.dynamic.partitions=true;Altertabletbl_namepa

hadoop - 分区! hadoop是怎么做到的?使用哈希函数?默认功能是什么?

分区是确定哪个reducer实例将接收哪些中间键和值的过程。每个映射器必须为其所有输出(键、值)对确定哪个缩减器将接收它们。有必要对于任何键,无论哪个映射器实例生成它,目标分区都是相同的问题:hadoop是怎么做到的?使用哈希函数?默认功能是什么? 最佳答案 Hadoop中的默认分区器是HashPartitioner,它有一个名为getPartition的方法。它采用key.hashCode()&Integer.MAX_VALUE并使用reduce任务的数量找到模数。例如,如果有10个reduce任务,getPartition将为所

scala - Apache Spark : Get number of records per partition

我想检查一下我们如何获取有关每个分区的信息,例如总号。以yarn集群部署方式提交Spark作业时,驱动端各分区的记录数,以便在控制台进行日志或打印。 最佳答案 我会使用内置函数。它应该尽可能高效:importorg.apache.spark.sql.functions.spark_partition_iddf.groupBy(spark_partition_id).count 关于scala-ApacheSpark:Getnumberofrecordsperpartition,我们在St