前言:html
毕业两年了,以前的工做一直没有接触过大数据的东西,对hadoop等比较陌生,因此最近开始学习了。对于我这样第一次学的人,过程仍是充满了不少疑惑和不解的,不过我采起的策略是仍是先让环境跑起来,而后在能用的基础上在多想一想为何。java
经过这三个礼拜(基本上就是周六周日,其余时间都在加班啊T T)的探索,我目前主要完成的是:node
1.在Linux环境中伪分布式部署hadoop(SSH免登录),运行WordCount实例成功。 http://www.cnblogs.com/PurpleDream/p/4009070.html linux
2.本身打包hadoop在eclipse中的插件。 http://www.cnblogs.com/PurpleDream/p/4014751.htmlweb
3.在eclipse中访问hadoop运行WordCount成功。 http://www.cnblogs.com/PurpleDream/p/4021191.html apache
因此我下边会分三次记录下个人过程,为本身之后查阅方便,要是能帮助到其余人,天然是更好了!浏览器
===============================================================长长的分割线====================================================================服务器
正文:eclipse
个人部署环境是以前在阿里云购买的Linux云服务器(你们用本身的linux环境,或者搭个VM虚拟机也是能够滴),系统是CentOS6.X,以前须要本身安装好JDK,我安装的是1.6的,注意这个后边在安装完hadoop后,也须要给Hadoop配置JAVA_HOME,否则会报错。分布式
在安装hadoop以前,咱们须要先配置SSH免登录,若是不配置的话,咱们后边在启动hadoop时,都将须要输入密码,到时会很麻烦,这个网上有不少资料,也能够参考个人另一篇博客:http://www.cnblogs.com/PurpleDream/p/4012328.html 。注意,个人基本与网上步骤一致,这个也是我当初参考网上的步骤,在执行的时候根据本身的状况稍加修改,就能够了。
安装hadoop首先是下载hadoop,因为我参考的《hadoop实战》这本书,因此为了更接近书中的内容,同时也考虑到高版本的hadoop涉及的东西会更多,不利于我这样的初学者学习,因此我选择hadoop-1.0.1这个版本。下边的网址中是完整的hadoop版本的下载列表,也能够根据本身的须要去下载:http://archive.apache.org/dist/hadoop/core/。
我下载的是hadoop-1.0.1.tar.gz,经过SSH工具上传到linux服务器的目录中(个人是:/myself_setted/hadoop),而后利用解压缩命令“tar -zxvf hadoop-1.0.1.tar.gz”解压到当前目录。
进入解压缩后的目录(个人是:/myself_setted/hadoop/hadoop-1.0.1),进入conf文件夹,进行配置:
1.首先打开hadoop-env.sh文件,修改配置文件以下:export JAVA_HOME=/usr/java/jdk1.6.0_35 注意,此处的jdk路径是以前在安装JDK时配置的路径,不要写错,若是配置有误,后边在启动hadoop时,会报找不到java的错误。
2.而后在打开core-site.xml文件,这里配置的是HDFS的地址及段口红,配置以下:
<configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
3.再打开hdfs-site.xml文件,配置的备份方式默认是3,在咱们这种伪分布式部署方式中,须要将其配置为1
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4.最后是MapReduce的配置文件,打开mapred-site.xml,配置JobTracker的地址和端口
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
经过上边的四步,咱们已经完成了基本的配置工做,在启动hadoop前,咱们还须要格式化hadoop,咱们须要将目录切换到解压缩后的根目录(个人是:/myself_setted/hadoop/hadoop-1.0.1),依次执行如下命令:
1.bin/hadoop namenode -format
2.bin/hadoop datanode -format
3.bin/start-all.sh
经过上边的三步,咱们能够认为咱们的hadoop已经启动,可是咱们还须要验证启动是否有问题,验证的方法比较多,我就说说我用的(如下的验证方法是并列的关系,不是前后继承关系):
1.打开浏览器,分别输入网址http://localhost:50030(MapReduce的web页面);http://localhost:50070(HDFS的web页面)。因为个人是云服务器,因此我本身的在查看的时候,localhost替换为服务器的公网IP
2.在linux环境下,输入JPS,查看关于hadoop的进程是否完整,完整事例以下(进程号不定哈):
4113 TaskTracker 4006 JobTracker 26640 Jps 3680 NameNode 3911 SecondaryNameNode 3788 DataNode
固然若是上边的验证基本没有问题,我相信你已经接近成功了,下边咱们将具体执行一个“做业”,来验证咱们的环境。咱们运行的例子就是hadoop中的hello word程序,即WordCount,顾名思义就是计算单词的出现次数,步骤以下:
1.在以上的hadoop启动的状况下,咱们首先在hadoop-1.0.1的根目录(个人是:/myself_setted/hadoop/hadoop-1.0.1),创建一个文件夹叫test,而后咱们再test文件夹(/myself_setted/hadoop/hadoop-1.0.1/test)中简历一个a.txt的文件,内容如
下(注意,此步骤中创建的文件夹的位置以及文件夹中文件的名字和内容,你能够随意设定路径和内容,主要你在下边的2和3三步中上传文件到HDFS上时,必定要把路径写正确):
aa bb cc ee aa ee ff
2.在hdfs中创建一个输入文件夹: bin/hadoop fs -mkdir /input。注意我执行此命令时所在的目录是hadoop-1.0.1的根目录(个人是:/myself_setted/hadoop/hadoop-1.0.1)
3.将a.txt放入到2中hdfs的输入文件夹中:bin/hadoop fs -put test/a.txt /input。注意我执行此命令时所在的目录是hadoop-1.0.1的根目录(个人是:/myself_setted/hadoop/hadoop-1.0.1)
4.这时若是咱们在执行bin/hadoop fs -ls /input这个命令时,若是以前的步骤正确的话,咱们将看到列出了一个a.txt的文件。注意我执行此命令时所在的目录是hadoop-1.0.1的根目录((个人是:/myself_setted/hadoop/hadoop-1.0.1)
5.通过上边的4步,咱们下边还有最后一个命令,那就是执行做业。咱们看下hadoop-1.0.1的根目录(个人是:/myself_setted/hadoop/hadoop-1.0.1,有一个hadoop-examples-1.0.1.jar这个jar包,这里面打包了一些hadoop自带的例子,咱们要运行的WordCount方法就是这个包中,执行命令以下:bin/hadoop jar hadoop-examples-1.0.1.jar wordcount /input /output,
6.根据提示,若是出现map 100% reduce 100%等字样,咱们就能够经过bin/hadoop fs -ls /output命令查看/output文件夹中统计结果了。