- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如果我使用 hadoop fs -put 文件名将大小为 117MB 的文本文件上传到 HDFS,我可以看到一个数据节点包含一个大小为 64.98MB(默认文件拆分大小)的文件部分,另一个数据节点包含一个大小为 64.98MB 的文件部分48.59MB。
我的问题是这个拆分位置是否是以数据感知方式计算的(例如以某种方式识别文件是文本并因此在“\n”处拆分文件)。
我意识到 InputFileFormat 可用于告诉正在运行的作业如何以智能方式拆分文件,但由于我没有在 fs -put 命令中指定文件类型,我想知道是否(以及如何)在这种情况下将进行智能拆分。
艾莉
最佳答案
我认为你在这里混淆了两件事,以下两种类型的拆分是完全分开的:
而且,不,拆分位置不是以数据感知方式计算的。
现在,默认情况下,如果您使用的是 FileInputFormat
,那么这两种类型的拆分会重叠(因此是相同的)。
但是对于上面的第二点,您始终可以采用自定义的拆分方式(或者甚至根本不拆分,即让一个完整的文件转到一个映射器)。
您还可以独立于 InputFormat
拆分输入数据的方式更改 hdfs block 大小。
这里要注意的另一个重点是,虽然文件在存储在 HDFS 中时实际上是物理损坏的,但是为了分发给映射器的拆分,并没有实际的文件物理拆分,而只是逻辑上的拆分 split 。
以 here 为例:
Suppose we want to load a 110MB text file to hdfs. hdfs block size and Input split size is set to 64MB.
Number of mappers is based on number of Input splits not number of hdfs block splits.
When we set hdfs block to 64MB, it is exactly 67108864(64*1024*1024) bytes. I mean it doesn't matter the file will be split from middle of the line.
Now we have 2 input split (so two maps). Last line of first block and first line of second block is not meaningful. TextInputFormat is responsible for reading meaningful lines and giving them to map jobs. What TextInputFormat does is:
- In second block it will seek to second line which is a complete line and read from there and gives it to second mapper.
- First mapper will read until the end of first block and also it will process the (last incomplete line of first block + first incomplete line of second block).
阅读更多 here .
关于hadoop - fs -put(或 copyFromLocal)和数据类型感知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15904671/
我正在尝试通过 oozie shell 执行 -copyFromLocal。 hadoop fs -copyFromLocal '/usr/test/test1' '/user/hue/oozie/
sudo -u hdfs hadoop fs -copyFromLocal input.csv input.csv copyFromLocal: `input.csv': No such file o
嗨,尝试在Hadoop上执行-copyFromLocal命令时,出现以下错误。 任何人都可以通过建议解决此问题的解决方案来提供帮助吗? hadoop dfs -copyFromLocal /tmp/
我不是在询问如何在 hadoop 中为文件夹/文件设置复制因子。我知道以下命令对现有文件和文件夹完美无缺。 hadoop fs -setrep -R -w 3 我在问,如何设置复制因子,而不是默认值
我正在尝试将包含 1,048,578 个文件的目录复制到 hdfs 文件系统中,但是出现以下错误: Exception in thread "main" java.lang.OutOfMemoryEr
从临时目录移动 hadoop 中的文件时使用以下命令:- [Divya@localhost hadoop]$ bin/hadoop dfs -copyFromLocal /tmp/gutenberg
这个问题在这里已经有了答案: Difference between hadoop fs -put and hadoop fs -copyFromLocal (6 个答案) 关闭 6 年前。 是否可以
我尝试使用以下命令将一个文件从我的本地系统复制到 hdfs(单节点集群): hadoop fs -copyFromLocal /home/hduser/TestEmp.txt /test 它给我这样
我将一个 10Gig 文件从本地文件系统复制到 hdfs(通过使用 -copyFromLocal),它是分布在所有数据节点之间还是仅在名称节点上?我如何确定它已分发到所有数据节点上? 最佳答案 众所周
我只是想知道 hadoop 中的 copyToLocal 和 copyFromLocal 是如何工作的。他们使用 MapReduce 吗?我想要一个完整的架构 View 。谢谢。 最佳答案 此命令不使
我的问题是为什么我们需要指定目标。我放到hdfs中的文件不一定完全在本地机器上,所以在命令中指定dest有什么用。 当我通过命令 lie 运行命令然后执行 hadoop dfs -ls 时,我可以看到
我不知道这里发生了什么,但我正在尝试将一个简单文件从本地文件系统中的目录复制到为 hdfs 指定的目录。 在我的 hdfs-site.xml 中,我使用以下属性指定了 hdfs 的目录/home/va
我使用两个节点创建了一个 hadoop 集群 h01 : 主机 - ubuntu 桌面 15.04 h02:在我的主机上使用 vmware 的虚拟机 - ubuntu server 14.04 jps
我在CentOS7.0上安装了hadoop 2.5.1 我正在使用 3 台具有以下主机文件的计算机,与所有 3 台计算机相同 我没有使用 DNS。 XXX.XXX.XXX.65 mccb-com65
我将 Windows 8 与 cloudera-quickstart-vm-5.4.2-0 虚拟机一起使用。 我下载了一个文本文件 words.txt 到下载文件夹中。 我将目录更改为下载并使用 ha
如果我使用 hadoop fs -put 文件名将大小为 117MB 的文本文件上传到 HDFS,我可以看到一个数据节点包含一个大小为 64.98MB(默认文件拆分大小)的文件部分,另一个数据节点包含
我是 Java、Hadoop 等方面的新手。尝试将文件复制到 HDFS 时遇到问题。它说:“-copyFromLocal: java.net.UnknownHostException: quickst
作为我的 Java 映射器的一部分,我有一个命令在本地节点上执行一些代码并将本地输出文件复制到 hadoop fs。不幸的是,我得到以下输出: Error occurred during initia
我对 Hadoop 分布式文件系统的设置方式以及我的特定设置如何影响它感到有点困惑。我使用本指南进行设置 http://www.michael-noll.com/tutorials/running-h
我有一个本地 VM,上面安装了 Hortonworks Hadoop 和 hdfs。我从我的机器ssh'ed 进入虚拟机,现在我正尝试通过以下命令集将文件从我的本地文件系统复制到 hdfs: [roo
我是一名优秀的程序员,十分优秀!