Hadoop4 利用VMware搭建本身的hadoop集群

前言:html

      前段时间本身学习如何部署伪分布式模式的hadoop环境,以前因为工做比较忙,学习的进度停滞了一段时间,因此今天抽出时间把最近学习的成果和你们分享一下。java

      本文要介绍的是如何利用VMware搭建本身的hadoop的集群。若是你们想了解伪分布式的你们以及eclipse中的hadoop编程,能够参考我以前的三篇文章。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.html apache

      3.在eclipse中访问hadoop运行WordCount成功。 http://www.cnblogs.com/PurpleDream/p/4021191.html 编程

 

===============================================================长长的分割线====================================================================浏览器

正文:bash

  在以前的hadoop文章中,我主要是介绍了本身初次学习hadoop的过程当中是如何将hadoop伪分布式模式部署到linux环境中的,如何本身编译一个hadoop的eclipse插件,以及如何在eclipse中搭建hadoop编程环境。若是你们有须要的话,能够点击我在前言中列出的前前三篇文章的连接。网络

      闲话少说,言归正传,本次的目的是利用VMware搭建一个属于本身的hadoop集群。本次咱们选择的是VMware10,具体的安装步骤你们能够到网上搜索,资源不少。eclipse

      若是你们再安装过程当中,遇到了我没有提到的错误,能够先参考文章底部列出的三个问题,看看解决方案是否是在其中,若是不在的话,再自行上网搜索。

      第一步,肯定目标:

      master  192.168.224.100  CentOS

      slave1   192.168.224.201  CentOS

      slave2   192.168.224.202 CentOS

      其中master为nameNode和jobTracker节点,slave1和slave2为dataNode和taskTracker节点。

 

      第二步,配置虚拟网络,在VMware工具栏中点击“编辑”,而后选择“虚拟网络编辑器”,在弹出框中设置选项;而后点击“NAT设置”,也按照图片设置,详细参照以下图:

       

      

     

      第三步,确认VMware服务都已经启动,这个很重要,否则对你后边的操做颇有影响的,以下图:

          

 

      第四步,在VMware中创建一个CentOS6.5虚拟机,详情能够参考个人另外一篇文章:http://www.cnblogs.com/PurpleDream/p/4263465.html

 

      第五步,通过第四步咱们的第一个master虚拟机已经创建好了,下面针对这台虚拟机,进行网络、主机等配置,详细步骤以下:

      (1).关掉SELINUX:vi /etc/selinux/config ,设置SELINUX=disabled,保存退出,以下图:

       

 

      (2).关闭防火墙:/sbin/service iptables stop;chkconfig --level 35 iptables off ;执行完毕后,调用 service iptables status,查看防火墙的状态,以下图:

       

      (3).修改IP地址为静态地址:vi /etc/sysconfig/network-scripts/ifcfg-eth0,将其内容改成以下图所示,注意HWADDR那一行,你所建立的虚拟机的值极可能与之不一样, 保持原值,不要修改它。

       

      (4).修改主机名称: vi /etc/sysconfig/network,以下图:

         

      (5).修改hosts映射:vi /etc/hosts,这里咱们也将slave1和slave2的主机ip映射关系添加上,方便后边使用,以下图:

         

      (6).执行service network restart,从新启动网络,这一步是必须的,请注意。

  

      第七步,安装putty工具,能够在百度上直接搜索,下载解压到本身的目录便可,咱们会用到目录中的pscp.exe。

      

      第八步,安装JDK,详细步骤以下:

      (1).我从网上下载的是jdk-6u45-linux-i586.bin,放到了个人以下目录是D:\SettingUp\ITSettingUp\Java\JDK\JDK1.6(linux32),注意此目录你们能够根据本身的情     况自行选择,这里我把本身的目录粘出来,是为了后边方便说明pscp的上传。

      (2).打开cmd,定位到putty的解压目录,调用以下命令,若是提示输入密码,就输入虚拟机中root账户的密码。对于下边的命令,咱们使用的是pscp命令,两个参数:第一个参数是本地的jdk路径,后边的参数是咱们的虚拟机路径,这里我提早在虚拟机上创建了两个父子文件夹:/myself_settings/jdk1.6

      pscp D:\SettingUp\ITSettingUp\Java\JDK\JDK1.6(linux32)\jdk-6u45-linux-i586.bin root@192.168.224.100:/myself_settings/jdk1.6

      (3).进入虚拟机jdk的所在目录/myself_settings/jdk1.6,执行命令: ./jdk-6u45-linux-i586.bin,等待安装完成。

      (4).修改环境变量:vi ~/.bash_profile,在最后添加,以下图所示:

       

      (5).输入命令 source ~/.bash_profile 使配置生效,以后能够执行 java -version 判断jdk是否已经配置成功

      

      第九步,安装hadoop,详细步骤以下:

      (1).下载hadoop,我从网上下载的是hadoop-1.0.1.tar.gz。放在了个人本机:D:\SettingUp\ITSettingUp\Hadoop\hadoop-1.0

      (2).打开cmd,定位到putty的解压目录,调用以下命令,若是提示输入密码,就输入虚拟机中root账户的密码。

      pscp D:\SettingUp\ITSettingUp\Hadoop\hadoop-1.0\hadoop-1.0.1.tar.gz root@192.168.224.100:/myself_settings/hadoop1.0

      (3).进入虚拟机hadoop所在的目录/myself_settings/hadoop1.0,调用命令: tar -xzvf hadoop-1.0.1.tar.gz  将文件解压缩。

      (4).进入(3)中解压缩后的目录后,进入到conf文件夹中进行配置,使用命令: vi hadoop-env.sh ,将JAVA_HOME一行的注释去掉,并改成以下设置:

       

      (5).添加环境变量 vi ~/.bash_profile ,以下图:

       

      (6).打开conf文件: vi core-site.xml, 进行编辑,以下图:

       

      (7).打开conf文件: vi hdfs-site.xml, 进行编辑,以下图:

       

      (8).打开conf文件: vi mapred-site.xml, 进行编辑,以下图:

       

      (9).打开conf文件: vi masters, 进行编辑,以下图:

       

      (10).打开conf文件: vi slaves, 进行编辑,以下图:

       

          

      第十步,通过上述步骤,第一个虚拟机已经配置完毕了,下边咱们要克隆两个虚拟机出来,做为slave1和slave2,详细步骤以下:

      (1).在VMware左侧的虚拟机列表中选中第一个虚拟机,右键选择“管理”,在“管理”的面板中选择“克隆”,依次选择“下一步  ===》  虚拟机中的当前状态,下一步 ===》 建立完整克隆,下一步 ===》 设置虚拟机名称和安装目录 ===》 点击完成”,而后分别在这两个虚拟机继续作以下操做。

      (2).执行:rm -f /etc/udev/rules.d/70-persistent-net.rules

      (3).执行 reboot 重启虚拟机

      (4).执行 vi /etc/sysconfig/networking/devices/ifcfg-eth0 将其中的 HWADDR修改成新虚拟机的网卡地址,具体查看虚拟机网卡地址的方式为: 选中虚拟机,邮件选择“设置”,在弹出的面板中按照下图所示进行设置,以下图:

       

      (5).一样将(4)文件中将IPADDR改成192.168.224.201(对于slave1)或192.168.224.202(对于slave2)。

      (6).修改slave1和slave2的/etc/sysconfig/network文件,将主机名改成slave1或者slave2

      (7).两台虚拟机执行 service network restart 重启网络

    

      第十一步,通过上述步骤,三台虚拟机已经基本配置完毕,可是还有一个重要的步骤,那就是ssh免登录的配置,这块我当时出了问题,因此这里再详细的说明一下:

      备注:因为我第一次搭建的时候这里出了问题,因此此处当时没有来得及作记录,如今为了演示,我从新搭建了两个虚拟机,分别是TestOne和TestTwo,我这里要作的就是从TestOne免登录到TestTwo。你们以此类推,与咱们这个文章中要作的master免登录 到slave1和slave2是同样的。

      (1).首先在TestOne虚拟机中,经过 cd ~/.ssh 进入~/.ssh目录,会看到有一个known_hosts文件,

      (2).在~/.ssh文件夹中,输入 ssh-keygen -t dsa ,而后会让你输入密钥存储文件的名称,我输入的是id_dsa。前边这两部能够参考下边的图片,注意图片中用红色矩形框圈中的部分:

       

      (3).在~/.ssh文件夹中输入 cat id_dsa.pub >> authorized_keys,以下图所示:

       

      (4).在~/.ssh文件夹中,将刚才生成的密钥拷贝到TestTwo机器上,输入命令: scp authorized_keys TestTwo:~/.ssh ,过程当中须要输入TestTwo的密码,详细参考下图,注意图中用红色矩形框圈中的部分:

        

      (5).通过上述4步,输入 ssh TestTwo,应该不须要再输入TestTwo的登陆密码,就能够从TestOne直接登陆到TestTwo了。

   

      第十二步,至此,虚拟机的配置所有完毕,咱们依次执行hadoop namenode -format 、 hadoop datanode -format ,而后在hadoop的安装目录下,进入bin目录,执行以下命令: ./start-all.sh .  而后能够在宿主机中打开浏览器,查看 192.168.224.100:50070 的内容,若是正常显示,就说明启动正常了。注意,这里也能够分别在master和slaves输入jps命令验证是否启动成功,以下图:

      

      

 

      通过上边的十二步,我相信属于你本身的hadoop集群已经你们成功了,后边你能够参考我文章开头列出的文章,在eclipse中添加本身的DFS Location,指向咱们的集群。在上述这个过程当中,你有可能遇到一些问题,能够参考下边我列出的文章:

      1.在eclipse中访问hadoop集群时出现 org.apache.hadoop.security.AccessControlException: Permission denied: user=DrWho, access=WRITE 这个错误,参考以下:

         解决方案:http://www.cnblogs.com/acmy/archive/2011/10/28/2227901.html

      2.启动hadoop时有这样的提示  Warning: $HADOOP_HOME is deprecated.  这个不会影响使用,若是想解决的话,参考以下:

         解决方案:http://chenzhou123520.iteye.com/blog/1826002

      3. 若是在设置完网络,调用service network restart时,出现Device eth0 does not seem to be present这个问题,参考以下:

         解决方案:从新打开vi /etc/sysconfig/network-scripts/ifcfg-eth0,将其中的DEVICE的值改成eth1或者别的,而后重启网络,应该就不会报错了。

相关文章
相关标签/搜索