zoukankan      html  css  js  c++  java
  • Windows7中在VMware下安装Ubuntu并部署Hadoop1.2.1分布式环境 (转载自cumtheima)

    本文是完全转载自 cumtheima 的这篇文章:http://gaoxianwei.iteye.com/blog/2026942 ,由于本人是Hadoop初学者,所以会在本文中添加 cumtheima 在他那篇文章中没有说明白的地方(字体颜色为蓝色 即:我所添加的内容)。 

    Windows7中在VMware下安装Ubuntu并部署Hadoop1.2.1分布式环境

     

    友情提醒:大家最好通读一遍过后,在理解的基础上安装步骤一步一步设置,因为后面的步骤会对前面的步骤有所启示。

    一、所需环境与软件

    1. 操作系统:Windows 7 64位或Windows 8 64

    2. 内存:4G以上

    3. VMware Workstation 10VMware-workstation-full-10.0.0-1295980.exe

    4. VMware Tools:通过VMware来安装

    5. Ubuntu12.04ubuntu-12.04.4-desktop-i386.iso

    6. SSH:通过linux命令来安装

    7. JDK1.7jdk-7u51-linux-i586.tar.gz

    8. Hadoop1.2.1hadoop-1.2.1.tar.gz

    备注:这里是在VMware上建立三台虚拟机(Ubuntu201Ubuntu202Ubuntu203),并都安装Ubuntu系统,用来部署hadoop分布式集群(Ubuntu201masters节点,Ubuntu202Ubuntu203slaves节点)

    二、安装VMware Workstation 10

    下载“VMware-workstation-full-10.0.0-1295980.exe”,并找到序列号,一直点击“下一步”就可以安装了,非常简单。安装成功以后的界面如(1)所示。


     

    (1)

    三、在VMware上安装ubuntu

    1. 打开“VMware”,点击“主页”上的“创建新的虚拟机”图标,如(2)所示。



     

    (2)

    2. 出现如(3)所示页面,选择“自定义(高级)”配置,点击“下一步”。



     

    (3)

    3. 出现如(4)所示页面,默认选择不变,点击“下一步”。


    (4)

    4. 出现如(5)所示页面,选择“稍后安装操作系统”,点击“下一步”。


    (5)

    5. 出现如(6)所示页面,“客户机操作系统”选择“Linux”,“版本”选择“Ubuntu(根据Ubuntu的版本选择UbuntuUbuntu 64),点击“下一步”。


    (6)

    6. 出现如(7)所示页面,“虚拟机名称”随意填写,比如我的三台虚拟机名称分别为:ubuntu201ubuntu202ubuntu203,“位置”选择放在有空闲60G空间的磁盘里,点击“下一步”。


    (7)

    7. 出现如(8)所示页面,“处理器数量”和“每个处理器的核心数量”要根据你的电脑配置进行选择,点击“下一步”。



    (8)

    8. 出现如(9)所示页面,虚拟机内存推荐1G2G,点击“下一步”。(如果单纯的为部署hadoop分布式环境并且内存在6G以下,个人觉得512MB就可以,否则电脑运行会很卡;如果内存配置在6G或8G,个人认为1G最合适;内存配置在8G以上,那就按需分配)


    (9)

    9. 出现如(10)所示页面,选择“使用桥接网络”,点击“下一步”。


    (10)

        10. 出现如(11)所示页面,默认选择,或选择推荐的,点击“下一步”。


    (11)

             11. 出现如(12)所示页面,默认选择,或选择推荐的,点击“下一步”。


    (12)

             12. 出现如(13)所示页面,选择“创建新虚拟磁盘”,点击“下一步”。



    (13)

        13. 出现如(14)所示页面,“最大磁盘大小”选择20G30G,并选择“将虚拟磁盘拆分成多个文件”,点击“下一步”。


    (14)

        14. 出现如(15)所示页面,默认名称,点击“下一步”。


    (15)

           15. 出现如(16)所示页面,默认,点击“完成”。


    (16)

        16. 出现如(17)所示页面,点击“CD/DVD(SATA)”,出现“虚拟机设置”弹出框,再次选择“CD/DVD(SATA)”,在右侧的“设备状态”中“启动当前连接”前面的打上对勾,下面的“连接”选择“使用ISO映像文件”,并选择要安装的“ubuntu-12.04.4-desktop-i386.iso”的路径,点击“确定”。


    (17)

          17. 出现如(18)所示页面,点击“开启此虚拟机”。


    (18)

         18. 稍等片刻,首先出现如(19)所示页面,选择“中文(简体)”,然后点击“安装Ubuntu”。


    (19)

        19. 稍等片刻,就会出现如(20)所示页面,二个复选框都不选,点击“继续”。


    (20)

        20. 稍等片刻,就会出现如(21)所示页面,选择“清除整个磁盘并安装Ubuntu”,点击“继续”。

    备注:你也可以选择“其他选项”,自己分配空间,比较麻烦。这里的“清除整个磁盘并安装Ubuntu”,是清除虚拟机给你分配的20G30G的空间,不会格式化你的盘符和盘符中其它数据。一般虚拟机安装都选择这个。


    (21)

    21. 稍等片刻,就会出现如(22)所示页面,默认选择,点击“现在安装”。


    (22)

        22. 稍等片刻,会出现如(23)所示页面,输入shanghai并选择,点击“继续。


    (23)

        23. 会出现如(24)所示页面,选择键盘布局为“汉语”,点击“继续”。



    (24)

        24. 出现如(25)所示页面,填写信息,三台机器用户名一样,点击“继续”。



    (25)

        25. 出现如(26)所示页面,这个安装过程大约15分钟左右。


    (26)

        26. 安装完成以后,出现如(27)所示页面,点击“现在重启”。


    (27)

    27. 重启后会进入如(28)所示页面,说明Ubuntu201安装成功。


    (28)

    备注:

    (1). 在上面第26(即图27)的时候,点击“现在重启”后界面中有段信息,需要你按下“Enter”键的,如果长时间没有按下“Enter”键,会出现(29)所示界面,这个时候只要关闭“Ubuntu201”这个页面,从新点击“开启此虚拟机”就可以。不影响的。


    (29)

    (2). 其它二台虚拟机Ubuntu202Ubuntu203都按照以上步骤安装。

    四、安装VMware Tools(要重启才能生效)

    VMWare Tools是VMware自动的一种增强工具,可以实现在主机和虚拟机之前文件共享、复制、移动和自由拖拽的功能(不再需要按Ctrl+Alt),且虚拟机屏幕也可以实现全屏化。

        1. 在首次进入Ubuntu系统前,需要把“CD/DVD(SATA)”改为“自动检测”,如(图30)所示操作。


    (图30)

        2. 点击“开启此虚拟机”,后进入Ubuntu系统,如(图31)所示,选择菜单“虚拟机”下面的“安装VMware Tools”


    (图31)

        3. 稍等片刻,会出现如(图32)所示界面。


    (图32)

        4. 拖动如(图33)所示在桌面。


    (图33)

        5. 使用“tar -zxvf VMwareTools-9.6.0-1294478.tar.gz”命令解压文件,如(图34)所示。


    (图34)

      6. 如(图35)所示,进入“vmware-tools-distrib”目录,输入“./vmware-install.pl”命令进行安装。安装过程中,根据提示(回车、或者输入yesno),并输入相应的内容。这样就可以安装成功,重启虚拟机后会生效。

    比如:“”什么也没有,按键 “回车”;

    [yes]   输入yes

    [no]    输入no

    备注:特别注意yesnoYNyn等大小写问题。下面会严格区分


    (35)

    五、查看虚拟机的IP地址

    点击右上角网络图标,弹出一下拉菜单,点击“编辑连接”,修改IP信息。(这里需要填写DNS服务器,在自己电脑网络连接属性中,可以看到的两个DNS服务器IP地址,直接copy上去,这样可以保证ubuntu的网络连接成功)



    (36)

    六、修改hosts文件

    1. 需要在" /etc/hosts "文件中添加集群中所有机器的IP与主机名,使用“Ctrl+Alt+T”快捷键打开终端,输入“sudo gedit /etc/hosts”,如(37)所示。


    (37)

           2. 把三台机器的IP都编辑进入,如(38)所示。

    如:

    192.168.1.111    ubuntu201

    192.168.1.112    ubuntu203

    192.168.1.113    ubuntu203

    (经测试:这里的主机名不能包含下划线"_"和点".",譬如:主机名为 ubuntu_12.04_01,这个就会导致在后面hadoop启动命令

    start-all.sh 执行后,Namenode,JobTracker等无法启动,查看log报错为:Does not contain a valid host:port authority: hdfs://ubuntu_12.04_01:9000。这点切记啊!我为此付出了差不多一个星期的代价!类似这样的主机名是可以的:ubuntu-1204-01 )

     


    (38)

    3.重新启动,或者在终端中输入“source /etc/hosts”后生效。(或者执行:  . /etc/hosts

    七、关闭防火墙

    1. 防火墙会屏蔽一些端口号,如(39)所示,要关闭iptables,selinux等防火墙。其它版本的Linux也是一样的。


    (图39)

    2. iptablesUbuntun内置的服务,不知道怎么关闭,索性实现

    sudo apt-get remove iptables命令把iptables删除。如(40)所示。


    (图40)

    3. Ubuntu版本中没有selinux服务,其它版本的Linux可能会有的。

    八、SSH配置无密码验证配置

    1. Ubuntu中没有SSH,3个ubuntu系统都通过“sudo apt-get install ssh安装SSH。根据提示选择“回车、yesnoYNyn”既可以安装。

    2.使用“ssh-keygen -t rsa”生成密钥对,根据提示选择“回车、yesnoYNyn”,这里一路回车,如果出现如(41)界面,说明安装成功。


    (41)

    3.使每台机器的公钥都拷贝到authorized_keys中,并放在每台机器上。

    (1). master机器(ubuntu201)上,执行(要用命令 cd /home/hadoop/.ssh/ 切换到该目录才能执行下面的命令,下同。)

        cp id_rsa.pub  authorized_keys

    (2). 在另外ubuntu202机器上,执行:

    scp id_rsa.pub  ubuntu201:/home/hadoop/.ssh/202.pub

    (3). 在另外ubuntu203机器上,执行:

    scp id_rsa.pub  ubuntu201:/home/hadoop/.ssh/203.pub

    (4). 这样在master机器(ubuntu201)上就有以下文件:

    202.pub   203.pub    authorized_keys   id_rsa    id_rsa.pub

        (5). 202.pub203.pub二个文件追加到authorized_keys文件中,执行以下命名:

       cat 202.pub >> authorized_keys

       cat 203.pub >> authorized_keys

    (6). 删除 202.pub   203.pub

    (7). authorized_keys远程复制到另外二台机器,执行以下命令:

     scp authorized_keys  ubuntu202:/home/hadoop/.ssh

     scp authorized_keys  ubuntu203:/home/hadoop/.ssh

    (8). ubuntu201机器使用“ssh ubuntu201,ssh ubuntu202,ssh ubuntu203”命令测试一下,第一次连接的时候需要输入密码,以后就不需要密码了。

    注意:三台ubuntu机器都需要安装下面的JDK和Hadoop,slaves节点的配置都是一样的,和master的一样。

         所以有两种方法:一是三台机器分别安装,分别配置;二是master安装成功之后直接将相应的文件夹复制到slaves机器上去。根据需要选择。

    九、安装JDK

    1. opt下新建tools目录,并把“jdk-7u51-linux-i586.tar.gz”解压到/opt/tools下,使用命令“sudo mv jdk1.7.0_51 /opt/tools/jdk1.7.0_51”,解压执行命令:“sudo tar -zxvf  jdk-7u51-linux-i586.tar.gz   ,如(4243)所示。


    (42)


    (43)

    2. 配置JDK环境变量

    使用“sudo gedit /etc/profile”命令打开,环境配置文件,在最后添加下面内容,如(44)所示。

    export JAVA_HOME=/opt/tools/jdk1.7.0_51

    export JRE_HOME=${JAVA_HOME}/jre

    export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib:${CLASSPATH}

    export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${PATH}


    (44)

      3. 执行以下命令使配置文件生效,如(45)所示。

    source /etc/profile


    (45)

      4. 使用javac java命令验证JDK安装是否成功(验证命令: java -version)

    十、Hadoop分布式安装

    1. 把“hadoop-1.2.1.tar.gz”文件解压(命令:sudo tar -zxvf hadoop-1.2.1.tar.gz),并使用命令“sudo mv hadoop-1.2.1 /opt/hadoop-1.2.1”把hadoop-1.2.1移动到opt目录下,如(46)所示。


    (46)

    2. 配置Hadoop环境变量

    使用“sudo gedit /etc/profile”命令打开,环境文件,在最后添加下面内容

             export HADOOP_HOME=/opt/hadoop-1.2.1

             export PATH=${PATH}:${HADOOP_HOME}/bin

    执行以下命令使配置文件生效: source /etc/profile

     

    3. 修改“conf/hadoop-env.sh”文件,修改java环境变量,如(47)所示。

    export JAVA_HOME=/opt/tools/jdk1.7.0_51


    (47)

    4. 修改“conf/core-site.xml”文件,如下内容,如(48)所示。

    <property>

    <name>fs.default.name</name>

    <value>hdfs://ubuntu201:9000</value>

    </property>

    <property>

    <name>hadoop.tmp.dir</name> 

    <value>/opt/hadoop-1.2.1/tmp</value>

    </property>



    (48)

    5. 在“conf/core-site.xml”文件中,hadoop.tmp.dir=/opt/hadoop-1.2.1/tmp,这里要新建tmp文件夹,并设置权限,如(49)所示。

    命令如下:

    sudo mkdir tmp

    sudo chmod 777 tmp


    (图49

    6. 修改“conf/hdfs-site.xml”文件,如下内容,如(50)所示。

    <property>  

    <name>dfs.name.dir</name>

    <value>/opt/hadoop-1.2.1/name</value>   

    </property>

    <property> 

    <name>dfs.data.dir</name>

    <value>/opt/hadoop-1.2.1/data</value>

    </property>

    <property> 

    <name>dfs.replication</name>

    <value>2</value>

    </property>


    (50)

    备注:

    (1).  dfs.data.dir=/opt/hadoop-1.2.1/name

          dfs.data.dir=/opt/hadoop-1.2.1/data

    这里的namedata文件夹不能提前建立,否则会出问题,可能的错误是DataNode启动不了。

       (2).  dfs.replication = 2

            是副本数,不能大于从服务器(slaves)的个数。

    7. 修改“conf/mapred-site.xml”文件,如下内容,如(51)所示。

    <property> 

    <name>mapred.job.tracker</name> 

    <value>ubuntu201:9001</value> 

    </property>

    <property>

    <name>mapred.local.dir</name>

     <value>/opt/hadoop-1.2.1/var</value>

    </property>


    (51)

    备注:(1). 对于mapred.local.dir=/opt/hadoop-1.2.1/var

          这里的var文件夹要提前建立,否则会出错。

             (2). 使用以下命令新建var目录和赋权限。

    sudo mkdir var

    sudo chmod 777 var

    8. 修改“conf/masters”文件,如下内容,如(52)所示。


    (图52

    9. 修改“conf/slaves”文件,如下内容,如(53)所示。


    (53)

    10. Hadoop分布式环境安装完毕。

     

    11. 这里可以使用以下命令查看hadoop版本等信息: hadoop version 。

    十一、Hadoop的启动和验证

    1. 在master机器中,使用以下命令格式化分布式文件系统。

    hadoop namenode -format

    出现有“has been successfully formatted”字样的,说明格式化成功。 

    2. 在master机器中启动hadoop守护进程。

    start-all.sh

    备注:使用 stop-all.sh 命令停止hadoop守护进程。

    Start成功会在控制台打印一些日志信息如(图54)所示。


    (图54)

    3. 在master机器中使用jps查看进程信息如(图55)所示。(就本文的配置来说,master机器jps后必须要有 4 个进程才说明是成功的)


    (图55)

    4. 在slaves机器中使用jps查看进程信息如(图56)所示。(就本文的配置来说,slaves机器jps后必须要有 3 个进程才说明是成功的)


    (图56)

    5. 出现(图55)和(图56)所示信息,说明hadoop分布式集群安装成功了。

    十二、Hadoop WebUI访问

    1. 访问 http://192.168.1.111:50070 可以查看Hadoop集群的节点数、NameNode及整个分布式系统的状态等。

    2. 访问 http://192.168.1.111:50030 可以查看JobTracker的运行状态,如Job运行的速度、Map个数、Reduce个数等。

    十三、hadoop集群测试

    我们来运行hadoop-examples-1.2.1.jar里面自带的WorkCount程序,作用是统计单词的个数。

    1. Ubuntu201的桌面上创建一个test.txt文件,里面的内容如下(20),如(57)所示。

    hello world

    。。。

    hello world


    (57)

    2. HDFS系统里创建一个input文件夹,使用命令如下,如(58)所示。

    hadoop fs -mkdir input

    或  hadoop fs -mkdir /user/hadoop/input

    备注:因为在hdfs下建立input文件夹,默认是在 /user/hadoop/下的(下面在运行案例的时候会体会到,那时要使用全路径)


    (58)

    3. 把创建好的test.txt上传到HDFS系统的input文件夹下,如(59)所示。

    hadoop fs -put /home/hadoop/桌面/test.txt input

    或 hadoop fs -put /home/hadoop/桌面/test.txt /user/hadoop/input


    (59)

    4. 我们可以验证下test.txt是不是在input里,执行命令如下,如(60)所示。

    hadoop fs -ls input


    (60)

    5. 运行hadoop-examples-1.2.1.jar,执行命令如下,执行过程如(61)所示。

    hadoop jar hadoop-examples-1.2.1.jar wordcount /user/hadoop/input/test.txt /user/hadoop/output

    备注:这里的input/test.txt要是全路径。


    (61)

    6. 运行结果后,如(62)所示,说明运行成功。


    (62)

    7. 使用如下命令来查看运行的结果,如(63)所示。

    hadoop fs -ls output

    hadoop fs -text /user/hadoop/output/part-r-00000


    (63)

    8. OK!如果出现如(63)所示页面,说明hadoop三个节点的集群测试成功。

     

     

    备注:

      在部署hadoop集群过程中,如果出现错误,可以查看 %HADOOP_HOME%/logs 下面的日志文件,是很好的方法。

      

    再次声明:本文转载自 http://gaoxianwei.iteye.com/blog/2026942 。

     

     

  • 相关阅读:
    面向对象之魔术方法
    装饰器和单例模式练习
    装饰器练习
    扩展数据类型练习
    Vlan的 tag 和 untagged
    【转】OSI 七层模型和TCP/IP模型及对应协议(详解)
    性能测试的相关概念和指标。
    Python接口自动化之数据驱动
    Python接口自动化之登录接口测试
    Python接口自动化之unittest单元测试
  • 原文地址:https://www.cnblogs.com/brig/p/3619244.html
Copyright © 2011-2022 走看看