mapreduce—如何在hadoop中划分集群上的数据

nfeuvbwi  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(241)

我有一个集群,有两个节点,即1个主节点和2个从节点(slave1,slave2),还有一个文本文件(input.txt 1gb)。hdfs的块大小为64mb。
我想对输入文件进行字数统计。
首先,我使用

hadoop dfs -copyFromLocal input.txt /

然后

hadoop jar Wordcount.jar Wordcount /input.txt /output

我的问题是
1) 上面的命令在集群上做wordcount是正确的还是错误的?
2) 当我复制input.txt文件时,它将存储的是从属1和从属2数据节点还是主节点?
3) 或者我必须先在slave1和slave2上复制input.txt来执行wordcount程序?

kqlmhetl

kqlmhetl1#

2) 当您将一个文件从本地复制到hdfs时,它将被划分为块,这些块将在可用的数据节点上进行平衡和复制(取决于复制因子等配置)。
3) 不,hadoop hdfs工具负责将数据分发到集群之外。因此,当只有两个节点时,两个节点都应该包含整个文件。

相关问题