草庐IT

fetch-size

全部标签

hadoop - 检查点在 HDFS 中是如何工作的?我想弄清楚 fs.checkpoint.period 和 fs.checkpoint.size

当它说时,辅助名称节点检查点每小时(fs.checkpoint.period以秒为单位)或如果编辑日志已达到64MB(fs.checkpoint.size以字节为单位)则更早?究竟是什么意思?据我了解,编辑日志存储在本地文件磁盘中。 最佳答案 HDFS元数据可以认为由两部分组成:基本文件系统表(存储在名为fsimage的文件中)和列出对基本表所做更改的编辑日志(存储在文件中称为edits)。检查点是协调fsimage与edits以生成新版本的fsimage的过程。这样做有两个好处:更新版本的fsimage和截断的编辑日志。fs.ch

hadoop - 错误消息 : "offset (0) + length (4) exceed the capacity of the array: 2" while fetching data from HBase

由于上述错误,我基于tomcat的RESTAPI应用程序无法处理请求。我在尝试从HBase检索数据时遇到错误。我使用RESTFul网络服务作为我的界面。我正在使用包含HBase0.98.6的CDH5.3.1。有谁知道如何解决这个问题?在此处输入代码错误详情:错误信息:“偏移量(0)+长度(4)超出数组的容量:2” 最佳答案 也许您需要更改一些架构类型规范?我得到这个错误,除了offset(0)+length(4)exceedthecapacityofthearray:1。这是因为缺少相关列的值,我假设1个字节表示空值。在Java中使

hadoop - Apache hive : LOAD DATA vs INSERT OVERWRITE OUTPUT FILE SIZE

我正在使用ApacheHive,我不明白为什么如果我使用INSERTOVERWRITE与LOAD加载数据,表的大小会加倍。问题说明如下:我创建了一个表项从item.dat加载数据(大约28MB)在Azure中发生的是文件item.dat将被移动到hive/warehouse并且当然大小保持不变现在,如果我创建另一个与item相同的表item2,然后使用以下命令将数据从item加载到item2:INSERTOVERWRITETABLEitem2SELECT*FROMitem表item2的大小是item的两倍(大约55MB)为什么会这样?有什么办法可以避免吗?附言。这只是为了说明问题。在实

java - dfs.block.size 用于本地 hadoop 作业?

我想运行一个hadoop单元测试,使用本地文件系统模式...我希望看到几个part-m-*文件被写入磁盘(而不是只有1个)。但是,由于它只是一个测试,我不想处理64M的数据(我相信默认大小是每个block~64megs)。在分布式模式下我们可以使用dfs.block.size我想知道是否有一种方法可以让我的本地文件系统写出小的part-m文件,也就是说,这样我的单元测试将用几个(尽管非常小)文件模拟大规模数据的内容。 最佳答案 假设您的输入格式可以处理可拆分文件(参见org.apache.hadoop.mapreduce.lib.i

hadoop - Oozie 和 Hive : FAILED: SemanticException Unable to fetch table <table_name>

我今天刚启动Oozie,我注意到在运行Hive操作时出现不一致的错误。当我运行完全相同的Oozie工作流时,有时它会成功,而有时它会因Hive操作的此错误而失败:FAILED:SemanticExceptionUnabletofetchtable1)这是什么原因?2)解决方法是什么?目前我只是再次运行Oozie作业直到成功,有时需要多次尝试。我正在使用ClouderaCDH4、MRv1。我是手动安装的,而不是使用ClouderaManager。我有一个三节点集群。Master节点包含NameNode、SecondaryNameNode、JobTracker、HMaster;此外,Mas

hadoop - Mesos 和 Hadoop : How to get the running job input data size?

我在Mesos0.14上运行Hadoop1.2.1。我的目标是记录输入数据大小、运行时间、cpu使用情况、内存使用情况等,以便稍后进行优化。除了数据大小之外,所有这些都是使用Sigar获得的。有什么方法可以获取正在运行的任何作业的输入数据大小?例如,当我运行hadoop示例的terasort时,我需要在作业实际运行之前获取teragen生成的数据大小。如果我正在运行Wordcountexample,我需要获取wordcount输入文件大小。我需要自动获取数据大小,因为我无法知道稍后将在该框架内运行什么作业。我正在使用Java编写一些mesos库代码。最好,我想在MesosExecuto

java - 当我在 mapreduce 框架中设置 Split size 大于实际 Block size 时会发生什么?

据我所知,一个mapper将分配给一个split。但是当我将Splitsize设置为大于实际Blocksize时会发生什么?例如:如果我设置Blocksize=128Mb和SplitSize=130Mb,在这些情况下将运行多少映射器。是一个映射器还是多个映射器? 最佳答案 如果InputSplit超过HDFSblock大小,则映射器最终会从多个block读取数据。在您的示例中,如果block大小=128MB且计算的拆分大小=130MB,将生成一个映射任务,该任务将从两个不同的block读取。这两个block究竟是如何被读取的,是HD

hadoop - 为什么我每隔一天收到 "Too many fetch-failures"

每当我们运行两个处理大约400GB数据的大型Pig作业时,我都会从一个或另一个任务跟踪器收到此错误。我们发现在杀死作业并让集群静默一段时间后,一切又恢复正常了。请提出真正的问题是什么? 最佳答案 解决办法,修改datanode节点的/etc/hosts文件。主办方简要格式:每行分为三部分:第一部分网络IP地址,第二部分主机名或域名,第三部分主机别名详细步骤如下:1、首先查看主机名:cat/proc/sys/内核/主机名会看到一个HOSTNAME属性,把IP后面的值改一下就OK了,然后退出。2、使用命令:主机名*。。。*星号替换为相应

hadoop - pig 与大表倾斜连接导致 "Split metadata size exceeded 10000000"

我们在一个小的(16M行)不同表和一个大的(6B行)倾斜表之间有一个pig连接。常规连接在2小时内完成(经过一些调整)。我们尝试使用skewed并能够将性能提高到20分钟。但是,当我们尝试更大的倾斜表(19B行)时,我们从SAMPLER作业中得到这条消息:Splitmetadatasizeexceeded10000000.Abortingjobjob_201305151351_21573[ScriptRunner]atorg.apache.hadoop.mapreduce.split.SplitMetaInfoReader.readSplitMetaInfo(SplitMetaInfo

hadoop - HDFS 中参数 "mapred.min.split.size"的行为

参数“mapred.min.split.size”改变了之前写入文件的block的大小?假设我在开始JOB时传递值为134217728(128MB)的参数“mapred.min.split.size”。关于发生的事情,正确的说法是什么?1-每个MAP处理相当于2个HDFSblock(假设每个block64MB);2-我的输入文件(以前包含HDFS)将有一个新的分区,以占用HDFS128M中的block; 最佳答案 splitsize的计算公式:-max(mapred.min.split.size,min(mapred.max.spl