如何在Hadoop中运行wordCount示例?

如何在Hadoop中运行wordCount示例?,hadoop,Hadoop,我尝试在hadoop中运行以下示例: 但是,我不理解正在使用的命令,特别是如何创建输入文件,将其上载到HDFS,然后运行单词计数示例 我正在尝试以下命令: bin/hadoop fs -put inputFolder/inputFile inputHDFS/ 不管它怎么说 put: File inputFolder/inputFile does not exist 我在hadoop文件夹中有这个文件夹,它是“bin”之前的文件夹,那么为什么会发生这种情况呢 谢谢:)希望这不会过分: 假设您已

我尝试在hadoop中运行以下示例:

但是,我不理解正在使用的命令,特别是如何创建输入文件,将其上载到HDFS,然后运行单词计数示例

我正在尝试以下命令:

bin/hadoop fs -put inputFolder/inputFile inputHDFS/
不管它怎么说

put: File inputFolder/inputFile does not exist
我在hadoop文件夹中有这个文件夹,它是“bin”之前的文件夹,那么为什么会发生这种情况呢

谢谢:)

希望这不会过分: 假设您已经(在本地、分布式或伪分布式中),您必须确保hadoop的bin和其他misc参数在您的路径中。在linux/mac中,只需将以下内容添加到一个shell文件(
~/.bashrc
~/.zshrc
~/.bash_profile
,等等),这取决于您的设置和首选项):

然后运行
exec$SHELL
或重新加载终端。要验证hadoop是否正在运行,请键入
hadoop版本
,查看是否未引发任何错误。假设您按照有关如何设置单节点群集的说明,并使用
start all.sh
命令启动hadoop服务,那么您应该可以:

  • 在伪dist模式下,文件系统假装为HDFS。因此,只需像使用任何其他linux命令一样引用任何路径,如
    cat
    grep
    。这对于测试很有用,您不必复制任何内容

  • 在实际运行HDFS时,我使用
    copyFromLocal
    命令(我发现它可以正常工作):

在这里,我假设您在属于集群的机器上执行复制。请注意,如果hadoopuser与unix用户名相同,则可以删除
/user/hadoopuser/
部分-隐式假定它在HDFS用户目录中执行所有操作。另外,如果您正在使用客户端计算机在集群上运行命令(您也可以这样做!),请知道您需要在
hadoop fs
之后立即使用
-conf
标志传递集群的配置,例如:

# assumes your username is the same as the one on HDFS, as explained earlier
$ hadoop fs -conf ~/conf/hadoop-cluster.xml -copyFromLocal ~/data/testfile.txt data/ 
对于输入文件,可以使用包含文本的任何文件。我使用了一些随机文件从数据库

最后,要运行wordcount示例(在hadoop发行版中作为jar提供),只需运行以下命令:

$hadoop jar/path/to/hadoop-*-examples.jar wordcount/user/hadoopuser/data//user/hadoopuser/output/wc

这将读取
data/
文件夹中的所有内容(可以有一个或多个文件),并将所有内容写入
output/wc
文件夹-全部在HDFS上。如果您在pseudo dist中运行它,则无需复制任何内容—只需将其指向正确的输入和输出目录即可。确保
wc
目录不存在,否则您的作业将崩溃(无法写入现有目录)。以获得更好的字数细分

同样,所有这些都假设您成功地完成了设置阶段(这不是一个小壮举)


希望这不是太混乱-祝你好运

很抱歉,目录
inputFolder
中没有名为
inputFolder
的文件,或者没有名为
inputFolder
的目录。做
ls inputFolder
来向自己证明这一点。你是对的,这就是问题所在。我必须指定所有路径,以便从/home/user/etc解决它。。。那么inputHDFS是正确的。。谢谢
  $ hadoop fs -copyFromLocal ~/data/testfile.txt /user/hadoopuser/data/
# assumes your username is the same as the one on HDFS, as explained earlier
$ hadoop fs -conf ~/conf/hadoop-cluster.xml -copyFromLocal ~/data/testfile.txt data/