之前做实验的时候找资料,结果搜来搜去都找不到想要的,首先网上很多都是linux的资料,所以建议要做的朋友也尽量在linux上做。这里不得不吐槽一下lj百度,搜点东西啥都找不到,很多国外没有被墙的网站论坛都没有。。。最后还是求助google。
网上都是关于hadoop在Windows上的安装教程,对于运行第一个实例讲得特别少,所以我来补充一下。另外,尽量选择已经测试没有问题的版本,比如3.0以后的会出现一些以前2.x版本没有的坑,所以尽量选择测试没有问题的版本。
本文需要用到的文件:
https://github.com/MuhammadBilalYar/HADOOP-INSTALLATION-ON-WINDOW-10/blob/master/MapReduceClient.jar
https://github.com/MuhammadBilalYar/HADOOP-INSTALLATION-ON-WINDOW-10/blob/master/input_file.txt
这个程序就是统计文件中字符出现的次数。
对于hadoop的安装和环境配置就不多说了,网上都能找到相关教程,不过Windows的会少很多。另外有个坑,查看hadoop运行状态的ip地址换成了 http://localhost:9870/ 我也是在一个国外论坛看到的,之前傻乎乎的进50070那个,死活进不去,我还以为是我配置除了问题。好了,进入正题。
在确保hadoop安装配置正确之后,首先用管理员权限打开命令行,进入hadoop的安装目录的 /sbin目录下,执行以下 代码1 运行程序
start-all.cmd
如果出现错误的话,就先进入\hadoop-3.0.2\bin\ 目录下执行以下 代码2 (就是hadoop安装目录下的 bin 文件夹)
hadoop namenode -format //格式化hdfs
再执行 代码1 ,如果还是不行,就看看hadoop目录下的\etc\hadoop\data\dfs目录下的两个文件夹里面有没有文件,有的话就删掉(emm我是这么做的,其他方法不了解)
上面两个文件夹datanode和namenode里面有文件就删掉。然后执行上面的 代码2 格式化hdfs,再执行上面的 代码1 运行程序。(这里为了方便可以一开始就先执行 hadoop namenode -format 格式化,然后执行代码1)
执行以下命令新建文件夹
hadoop fs -mkdir /input_dir
上传文件到新建的文件夹(文件目录改成自己的)
hadoop fs -put C:/input_file.txt /input_dir
查看文件是否成功上传
hadoop fs -ls /input_dir/
如果成功就可以看到多了个文件
也可以看看文件内容
hadoop dfs -cat /input_dir/input_file.txt
可以看到文件里面是很多数字
之后就运行程序统计数字出现的次数,并把结果输出(注意文件目录改成自己的)
hadoop jar C:/MapReduceClient.jar wordcount /input_dir /output_dir
没有报错的话就可以查看结果了
hadoop dfs -cat /output_dir/*
可以看到统计出的数字出现次数。到此hadoop在Windows上的第一个实例就完成了。
参考资料:
https://github.com/MuhammadBilalYar/Hadoop-On-Window/wiki/How-to-Run-Hadoop-wordcount-MapReduce-Example-on-Windows-10