设为首页 收藏本站
查看: 800|回复: 0

[经验分享] Hadoop on Windows With Eclipse(伪分布式)

[复制链接]

尚未签到

发表于 2016-12-10 11:37:39 | 显示全部楼层 |阅读模式
  http://blog.csdn.net/elvis_dataguru/article/details/8962168

1介绍


Hadoop是一个强大的架构,用于自动并行化的计算任务。不幸的是某些编程对于它是个挑战。Hadoop程序让人难以理解和调试。有一种方法可以在开发人员的机器上本地运行一个简化版的Hadoop集群使之更容易一些。本教程描述如何设置这样一个集群运Windows平台上。它还描述了如何使用Eclipse集成这个集群,一个主要的Java开发环境。


2.安装前的准备


在我们开始之前,要确保以下组件安装在了你的机器上。
l  Java 1.7.0_17
l  Eclipse-SDK-4.2.2
注:本教程测试环境是Hadoop1.0.4版本,如果你使用的是其他版本可以酌情去安装
    为了确保不出现问题,建议都使用最新版本,我这两个版本都是最新下载的。


2.1 安装Cygwin


  安装完预安装软件后,下一步就是安装Cygwin环境。Cygwin是一个组从Unix上移植到Windows的包。因为Hadoop都是写在Unix平台上的,所以用Cygwin提供Hadoop的运行环境。
  安装cygwin环境有以下步骤:
1)        首先从http://www.cygwin.com网站下载所需的安装文件
2)        点击下载文件,你会看到如下的截图-本教程版本为1.7.17-1版本
DSC0000.jpg
CygwinInstaller
3) 当你看到上面的截图的时候,点击下一步按钮你会看到屏幕上有选择包的界面。要确保你选择了net category里的”openssh”。这个包是确保Hadoop集群正常运作和Eclipse的插件。
DSC0001.jpg

 
4)你选择完这些包后,点击下一步,完成安装。


3.设置环境变量


  下一步是设置路径环境变量,以至于Eclipse IDE可以访问Cygwin命令。
  设置环境变量需要以下步骤:
1)  我的计算机右键->属性
2)当你看到这个属性对话框,点击环境变量按钮如下所示
DSC0002.jpg

 
  3)当环境变量对话框出现时,单击路径变量位于系统变量栏,然后单击Edit按钮。
DSC0003.jpg

 
  4)当编辑对话框在Path末尾添加以下文本


[html] view plaincopy
 






  • $ ;d:\cygwin\bin;d:\cygwin\usr\sbin  





     注:这个路径要根据你cygwin安装到那个目录
  5)OK!!!


4 设置SSH守护进程


   两个Hadoop的脚本和Eclipse的插件需要无密码的SSH来操作。本节描述了在Cygwin环境如何设置。


4.1 配置ssh


 Xp下:
  1)打开Cygwin命令
  2)执行如下命令


[plain] view plaincopy
 






  • $ ssh-host-config  





  3) when asked “Shouldprivilege separation be used”, answer yes.
 4) When asked “new local account 'sshd'”, answer yes.
5) When asked “(Say "no" if it is already installed as a service)”,answeryes.
6) When asked Enter”the valueof CYGWIN for the daemon”, enter ntsec.
 7)When asked “Do you want to use a differentname?”,answeryes.
8)输入密码
 9)下面是一个示例会话的命令。
DSC0004.jpg

DSC0005.jpg

 


4.2 开启ssh服务


第一种方法:直接输入命令


[plain] view plaincopy
 






  • $ net start sshd 或者 cygrunsrv –S sshd  





第二种方法:图形化操作
  1)在你的桌面或者开始菜单里找到”我的计算机”,然后鼠标右键选择管理。
  2)在左边的面板展开服务和应用程序,然后选择服务选项。
  3)找到CYGWIN sshd 选项,然后鼠标右键
  4)在菜单栏点击开启。
DSC0006.jpg

 
Win7下比较麻烦:
如果win7也按照跟xp一样的安装,就算你运行cygwin以管理员权限运行,到最后估计一样会报错,反正我这是这样子的,服务可以起来,但在最终密钥什么的都配置完成后执行会报:
Elvis@Elvis-PC ~
$ssh localhost
connection closed by ::1
后来针对这个问题我找了N多资料,主要是E文,难为我了,其中有官网的FQA里的文章还有很多国外的博客吧!具体连接我也搞乱了,就不贴出来了,根据几篇资料方法总结如下:
1)  如果你安装了SSH(估计很多都安装了然后发现有错误),可以按以下命令卸载:

[html] view plaincopy
 






  • <pre name="code" class="plain">$net stop sshd  
  • $ cygrunsrv-R sshd  
  • $net user sshd /DELETE  # See note below  
  • $ rm-R /etc/ssh*  
  • $mkpasswd -cl > /etc/passwd  
  • $mkgroup --local > /etc/group</pre>  
  • <pre></pre>  
  • <pre></pre>  





2)  决定一个用来运行sshd进程的用户,相信使用win7的同学肯定都至少会有一个非Administror用户,我的环境现在就是平时都使用Elvis用户具有管理员权限。而下一步需要执行的命令是必须要Administrator才有权利执行的,而管理员用户一般都是被禁的,具体怎么开启请看我博客里的一篇帖子:
http://blog.csdn.net/elvis_dataguru/article/details/8739987
3)        使用管理员用户执行以下命令来查看用户现在所具有权限(或者说叫许可?)


[plain] view plaincopy
 






  • $ editrights -l -u Elvis  





4)        估计大家上述命令执行后肯定没有我们现在所需要的权限,执行以下命令来增加吧!



[plain] view plaincopy
 






  • $ editrights.exe -a SeAssignPrimaryTokenPrivilege -u Elvis  
  • $ editrights.exe -a SeCreateTokenPrivilege -u Elvis  
  • $ editrights.exe -a SeTcbPrivilege -u Elvis  
  • $ editrights.exe -a SeServiceLogonRight -u Elvis  






  5)做完这些后,可以注销进入Elvis用户下继续操作,而后面的操作动作与前面xp下安装过程一样了,就不在详述了。


4.3 建立权限密钥


  Eclipse插件和Hadoop的脚本都需要通过权限密钥ssh权限来执行而不用密码了。以下步骤就是描述怎么建立权限密钥。
1)  打开cygwin终端
2)  执行以下命令生成密钥


[plain] view plaincopy
 






  • $ ssh-keygen  





3)      当提示输入文件名等直接ENTER接受默认值
4)      命令完成后生成密钥,输入以下命令到.ssh目录


[plain] view plaincopy
 






  • $ cd ~/.ssh  





5)      执行以下命令查看密钥是否真的生成


[plain] view plaincopy
 






  • $ ls -l  





      你应该能看到两个文件id_rsa.pub和id_rsa,看生成日期是最近生成的。这些文件中包含权限密钥。
6)      执行以下命令注册到新的authorization_keys文件中。


[plain] view plaincopy
 






  • $ cat id_rsa.pub >> authorized_keys  





7)      现在输入以下命令验证密钥是否正确


[plain] view plaincopy
 






  • $ ssh lcoalhost  





因为它是一个新的ssh安装,你将会被警告,主机无法确认你是否真的想连接。输入YES并且按ENTER。你会看到Cygwin在一次执行,那意味着你成功连接了。
  8)现在再次执行下面命令:


[plain] view plaincopy
 






  • $ ssh lcoalhost  





  DSC0007.jpg

DSC0008.jpg

 
Setting upauthorization keys


5.下载,复制和解压Hadoop


   1)下载hadoop 1.0.4并且放到你指定的文件夹里比如我的放在了D:\java。
   2)打开Cygwin
   3)执行以下命令
 

[plain] view plaincopy
 






  • $ cd  



 
4)执行下面命令直接在windows上以窗口形式打开home目录


[plain] view plaincopy
 






  • $ explorer .  





 
DSC0009.jpg

5)        把hadoop安装文件copy到你的Home目录下。


6. 解压Hadoop安装包


   解压安装包有以下步骤:
1)  打开一个新的Cygwin
2)  执行以下命令
 

[plain] view plaincopy
 






  • $ tar –zvxf hadoop-1.0.4.tar.gz  



 
 3) 解压完后,执行以下命令
 

[plain] view plaincopy
 






  • $ ls -l  



 
     这个命令列出home目录下的内容。你应该能看一个新生成的文件hadoop-1.0.4
4)下一步执行以下命令:


[plain] view plaincopy
 






  • $ cd hadoop-1.0.4  
  • $ ls -l  





如果你与下面相似的信息,就说明你解压成功了,可以进行下一步
DSC00010.jpg  



7. 配置Hadoop


  1)开启一个Cygwin窗口并且执行以下命令:
 

[plain] view plaincopy
 






  • $ cd hadoop-1.0.4  
  • $ cd conf  
  • $ explorer .  



 
  2) 最后一个命令打开了Explorer窗体进入到conf文件夹
  3)配置hadoop-env.sh文件
 

[plain] view plaincopy
 






  • export JAVA_HOME=/cygdrive/c/Progra~1/Java/jdk1.7.0_02  


     知识补充:   注:因为我的Java安装目录Program Files有空格,所以用缩写成Progra~1
 
  4)然后使用编辑软甲打开,我就用UE了,也可以使用eclipse来打开,主要是编辑core-site.xml、mapred-site.xml和hdfs-site.xml
  5)在3个文件中<configuration>和</configuration>里插入以下内容
    

  core-site.xml
  <configuration>
  <property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:9000</value>  
  </property>
  </configuration>
  mapred-site.xml
  <configuration>
  <property>
  <name>mapred.job.tracker</name>
  <value>localhost:9001</value>
  </property>
  </configuration>
  hdfs-site.xml
  <property>      
  <name>dfs.http.address</name>
  <value>localhost:50070</value>
  </property>
  <property>      
  <name>dfs.name.dir</name>
  <value>/usr/local/hadoop/namenode</value>
  </property>
  <property>      
  <name>dfs.data.dir</name>
  <value>/usr/local/hadoop/data</value>
  </property>
  <property>
  <name>dfs.replication</name>
  <value>1</value>   
  注:在目录/usr/local目录下创建一个hadoop文件夹,这个是根据你前面配置中制定的namenode和datanode而定。
  还有就是localhost最好直接写成ip地址,我写的是电脑本机的ip:10.60.115.150



8.格式化namenode


  1)打开Cygwin,执行以下命令



[plain] view plaincopy
 






  • $ cd hadoop-1.0.4  
  • $ mkdir logs  
  • $ bin/hadoop namenode -format  






  2) 最后一个命令产生的输出
  DSC00011.jpg

现在文件系统已经创建,可以继续下一步工作。


9.安装Hadoop插件


 1)通过以下命令,打开eclipse-plugin文件夹
 

[plain] view plaincopy
 






  • $ cd hadoop-1.0.4  
  • $ cd contrib.  
  • $ cd eclipse-plugin  
  • $ explorer .  



 
   2) 然后把里面的hadoop-x.x.x-eclipse-plugin.jar拷贝到eclipse安装包里的plugin目录里
注:但本次教程的hadoop-1.0.4里面没有,所以我从网上找到了这个jar直接拷贝到eclipse内plugin目录里
3)  启动eclipse
4) 打开Window->OpenPerspective->other->Map/Reduce
然后在打开Window->Show View->Other 搜索mapreduce视图
5)如图IDE
DSC00012.jpg

 
6)        配置Hadoop的安装目录
DSC00013.jpg

 
现在Hadoop安装和配置完了,还有eclipse的插件,下一步拿一个小Project测试下。


10.测试集群



10.1开启本地hadoop集群


1)开启5个Cygwin,然后分别执行以下命令:



[plain] view plaincopy
 






  • Window1:  
  • $ cd hadoop-1.0.4  
  • $ bin/hadoop namenode  
  • Window2:  
  • $ bin/hadoop secondarynamenode  
  • Window3:  
  • $bin/hadoop jobtracker  
  • Window4:  
  • $bin/hadoop datanode  
  • Window5:  
  • $bin/hadoop tasktracker  
  • 或者:直接输入以下命令  
  • $bin/start-all.sh  






这个时候进群起来了,进行下一步。
注:这个时候前3个窗口可能是一直卡在某个地方,这个是正常现象无需担心,也可以在后面加上”&”使进程在后台运行,不在详述,感兴趣的同学可以自行查阅Linux关于”&”的用法


10.2 在Eclipse建立本地Hadoop


1)在切换到Map /Reduce的角度来看,选择Map / Reduce位置选项卡下面的Eclipse环境。然后单击空白空间右键选项卡并选择“新Hadoop位置....“从上下文菜单。您应该会看到一个对话框所示类似。
DSC00014.jpg

 
3)  填入项目,以下所示:
Location Name – localhost   --当然这个自己可以随便起名
Map/Reduce Master     --一定要与mapred-site.xml里面一致
Host –10.60.115.150
Port – 9001    
DFS Master
Check "Use M/R Master Host"  --要与core-site.xml里一致
Port -- 9000
User name – Elvis
然后点击完成。
4) 然后你会看到IDE
DSC00015.jpg

 
5)  可以通过eclipse直接copyfromlocal数据。
6)  到这里,在Win下的Hadoop伪分布式集群构建完毕了+Eclipse的配置


10.3 hello测试


  用Hadoop自带的WordCount实例可以统计一批文本文件中各单词出现的次数。
1)  首先先做以下动作



[plain] view plaincopy
 






  • $ mkdir input  
  • $ cd input  
  • $ echo “hello world” > test1.txt  
  • $ echo “hello hadoop”> test2.txt  
  • $ cat test1.txt #可以使用这个命令查看文件内容  
  • $ bin/hadoop dfs –put ../input in  
  • $ bin/hadoop dfs –ls in  
  • $ bin/hadoop jar hadoop-examples-1.0.4.jar wordcount in out  
  • $ bin/hadoop dfs –cat out/*  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-312366-1-1.html 上篇帖子: Hadoop的那些事儿(转自:http://www.searchtb.com/2010/11/talk-about-hadoop.html) 下篇帖子: Hadoop 分布式文件存储系统HDFS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表