我在伪分布式模式下运行Hadoop1.2.1,在同一个虚拟机上同时拥有名称节点和数据节点。数据节点有4个卷。我正在做一些关于在Hadoop中使用非常小的block大小(4k、8k等)的测试。复制因子设置为1。当将block大小设置为8k时,我可以使用以下方法将64MB文件复制到hdfs:bin/hadoopfs-putmy64mbfile.尽管在运行命令时我多次遇到以下异常:13/08/2910:50:47WARNhdfs.DFSClient:NotReplicatedYetExceptionsleeping/user/myuser/my64mbfileretriesleft413/0
我是Hadoop的新手,在这里我有以下问题:(1)据我了解,原始输入文件被分成几个block并分布在网络上。map功能是否总是在整个block上执行?是否可以对单个block中的数据执行多个映射函数?(2)有什么方法可以从映射函数中获知映射器当前正在处理原始输入文本的哪一部分?例如,我想为从输入文本的第一个block开始的每个block获取序列号之类的东西。(3)是否可以将输入文本拆分为每个block都有预定义的字数?如果可能,那么如何?如有任何帮助,我们将不胜感激。 最佳答案 据我了解,原始输入文件被分成几个block并分布在网络
假设存储在HDFS中时,block大小是默认的64MB。现在我将InputSplit大小更改为128MB。其中一个数据节点在本地只存储了1个信息block。JobTracker给它一个映射器。它如何在128MB大小的拆分上运行map()? 最佳答案 128MB文件,block大小为64MB-->默认值-->2个Map任务128MB文件,block大小为64MB-->最小分割大小128MB-->1个Map任务你可以这样做,但你会失去局部性。默认拆分算法坚持的原因block边界是这样的,即每个任务单独处理一个block,并且调度程序可以
我正在将一个500Mb或更大的视频文件存储在hdfs中。由于它大于block大小,它将被分发。我必须先收集或处理第一个数据block(这里是视频文件),因为它只包含序列头。我该怎么做,或者如何在hadoop中找到文件的第一个数据block? 最佳答案 如果你想读取第一个block,你可以从FileSystem中获取一个InputStream并读取字节直到它达到你预定的数量(例如block大小64mb将是64*1024*1024字节)。这是一个例子(虽然64mb是很多数据。如果你认为你需要的数据远在64mb之前,只需更改bytesLe
我有Hadoop2.7.1。并决定在一个数据节点上释放几个演出。我更改了该节点上的hdfs-site.xml(定义为dfs.datanode.du.reserved)并重新启动了datanode进程。Hadoop数据节点摘要页面开始显示节点可用空间降为零,但我仍然没有注意到任何数据移动。我能做些什么来将数据block重新定位到现在不受限制的另一个节点。 最佳答案 我找到了适合我的命令:$hadoop/bin/hdfsbalancer 关于hadoop-保留更改后如何重新分配数据block
众所周知,当一个文本文件从本地复制到HDFS时,该文件被分割成固定大小的128MB。例如,当我将一个256MB的文本文件复制到HDFS时,将有2个block(256/128)包含“拆分”文件。谁能告诉我Hadoop2.7.1源代码中的哪个java/jar文件具有将文件拆分为block的功能,以及哪个java/jar文件将block写入数据节点的目录.帮我追踪这段代码。我只找到了在FileInputFormat.java中找到的对block进行逻辑输入拆分的那个,这不是我需要的。我需要用于拆分物理文件的java文件。 最佳答案 将数据
我想知道block是如何创建的。它是在文件系统上默认创建64MBblock还是根据文件传输事件创建假设我已经设置了一个10节点集群设置。我在所有节点上安装hadoop。现在如何创建block。一旦我启动hdfs服务,该block就会在linux系统上创建。它是否创建了4kblock的物理64MBblock?(基本block大小)。或当我移动一个大小为128MB的文件时,将创建两个block。block创建是否在两个节点中并行发生?哪个组件会实际将文件拆分成block?我只是hadoop的初学者,因此提出这些问题以获得清晰的理解 最佳答案
我使用pySpark编写parquet文件。我想更改该文件的hdfsblock大小。我这样设置block大小,但它不起作用:sc._jsc.hadoopConfiguration().set("dfs.block.size","128m")这是否必须在启动pySpark作业之前设置?如果可以,怎么做。 最佳答案 尝试通过sc._jsc.hadoopConfiguration()和SparkContext设置它frompysparkimportSparkConf,SparkContextconf=(SparkConf().setMas
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭5年前。Improvethisquestion我想知道谁将为hadoop中的block创建blockID,无论是HDFS客户端还是名称节点。请告诉我。
我已经将一个文件放入HDFS,我想确切地知道它是如何分散在DFS中的(哪些数据block在哪些数据节点中)。尝试了fsck,但当我指定我放入DFS中的数据文件的名称时,出现“无效路径”错误。有什么想法吗? 最佳答案 尝试hdfsfsck/path/to/file-files-blocks-locations这将打印出文件每个block的位置。NamenodeWebUI也会提供这些信息。在Utilities-->Browsethefilesystem下,选择要查看block信息的文件。 关