我有一个集群,有两个节点,即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程序?
1条答案
按热度按时间kqlmhetl1#
2) 当您将一个文件从本地复制到hdfs时,它将被划分为块,这些块将在可用的数据节点上进行平衡和复制(取决于复制因子等配置)。
3) 不,hadoop hdfs工具负责将数据分发到集群之外。因此,当只有两个节点时,两个节点都应该包含整个文件。