VM12+CentOS6.5+hadoop2.7.3 搭建hadoop完全分布式集群

参考: http://blog.csdn.net/gamer_gyt/article/details/51991893


一:安装VM 12.x

     下载地址:链接:http://pan.baidu.com/s/1c2KA3gW密码:3r67

二:安装CentOS6.5 +每台机器都要做的事

     这里采用3台机器,其对应的IP和主机分别如下(他们的用户名都是master)

主机名 ip 对应的角色
master1 192.168.48.130 NameNode
slave1 192.168.48.131 Datanode1
slave2 192.168.48.132 Datanode2

     这里我们可以采用安装一台虚拟机,然后进行克隆的方法,克隆出五台机器,然后修改对应的ip地址和用户名,VM安装虚拟机有三种网络连接方式,分别是桥接,NAT,仅主机模式,这里采用默认设置,即使用NAT,NAT模式下实用的是Vmnet8

2.1 安装vmware tools:

参考: http://www.178linux.com/25489

1、点击VMware菜单虚拟机选中安装VMware-tools

    注:虚拟机桌面会生成VMwaretools DVD安装光盘


blob.png

2、查看虚拟机设置ISO映像文件是否是VMwaretoolsDVDLinux.iso映像的文件:

+另外注意在设备状态上勾选 已连接。

blob.png

3、centos系统中 open terminal (打开终端)挂在VMwaretoolsDVD镜像:

blob.png

4、执行cd 命令进入到/mnt目录并copy(拷贝)VMwareTools-10.0.0-2977863.tar.gz/tmp目录:

blob.png

5、执行cd命令进入/tmp目录并使用tar解压VMwareTools-10.0.0-2977863.tar.gz 至当前目录下


blob.png


6、解压缩完成之后使用ls查看/tmp目录下是否存在vmware-tools-distrib 这个目录:

blob.png

7、执行cd命令进入vmware-tools-distrib目录下,查看是否有vmware-install.pl这个常规文件:


blob.png

8、在当前目录VMware-tools-distrib下执行./VMware-install.pl安装VMwaretools:之后一路回车就ok了。


blob.png


9、至此VMwaretools安装完成,谢谢!


2.2 安装jdk1.7

 参考: http://blog.csdn.net/xinxin19881112/article/details/46816385

Linux CentOS 6.6安装JDK1.7

目录

1、下载JDK

2、卸载JDK

3、安装JDK

3.1.rpm后缀格式JDK安装方式

3.2.tar.gz后缀格式JDK安装方式

4、验证安装


1、下载JDK(略)

2、卸载JDK

查看系统是否已安装JDK。一般的linux都默认使用了开源的openJDK。显示JDK版本信息,已经安装JDK,否则没有安装。命令行:

[plain]  view plain  copy
  1. java -version  

[root@localhost Desktop]# java -version

java version "1.7.0_79"

Java(TM) SE Runtime Environment (build 1.7.0_79-b15)

Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

 

查找名字包含javajdk的已安装程序。查找到了,已经安装JDK,否则没有安装。命令行:

[plain]  view plain  copy
  1. rpm -qa | grep java  
  2. rpm -qa | grep jdk  

[root@localhost Desktop]# rpm -qa | grep java

[root@localhost Desktop]# rpm -qa | grep jdk

jdk-1.7.0_79-fcs.x86_64

 

已安装JDK,卸载系统上JDK,+卸载分为单个卸载和批量卸载,建议批量卸载

单个卸载程序,使用rpm -e xxx命令。命令行:

[plain]  view plain  copy
  1. rpm -e jdk-1.7.0_79-fcs.x86_64  

[root@localhost Desktop]# rpm -e jdk-1.7.0_79-fcs.x86_64

批量卸载所有名字包含jdk的已安装程序。命令行:

[plain]  view plain  copy
  1. rpm -qa | grep jdk | xargs rpm -e --nodeps  

[root@localhost Desktop]# rpm -qa | grep jdk | xargs rpm -e --nodeps

批量卸载所有名字包含java的已安装程序。命令行:

[plain]  view plain  copy
  1. rpm -qa | grep java | xargs rpm -e --nodeps  

[root@localhost Desktop]# rpm -qa | grep java | xargs rpm -e --nodeps

 

卸载后,查看JDK版本,已无信息,卸载成功。命令行:

[plain]  view plain  copy
  1. java -version  

[root@localhost Desktop]# java -version

bash: /usr/bin/java: No such file or directory

 

3、安装JDK

3.1.tar.gz后缀格式JDK安装方式

安装jdk-7u79-linux-x64.tar.gz

/usr目录下新建java文件夹,命令行:

[plain]  view plain  copy
  1. mkdir /usr/java  

[root@localhost Desktop]# mkdir /usr/java

 

进入JDK压缩包所在目录,将压缩包复制到java文件夹中。复制文件用cp xxx命令,复制文件夹用cp -r xxx命令行:

[plain]  view plain  copy
  1. cp jdk-7u79-linux-x64.gz /usr/java  

[root@localhost Desktop]# cp jdk-7u79-linux-x64.gz /usr/java

 

然后返回到根目录,再进入java目录,命令行:

[plain]  view plain  copy
  1. cd /  
  2. cd /usr/java  

[root@localhost Desktop]# cd /

[root@localhost Desktop]# cd /usr/java

 

压缩包解压,命令行:

[plain]  view plain  copy
  1. tar xvf jdk-7u79-linux-x64.gz  

[root@localhost Desktop]# tar xvf jdk-7u79-linux-x64.gz

 

删除压缩包,输入yes确认删除。命令行:

[plain]  view plain  copy
  1. rm jdk-7u79-linux-x64.gz  

[root@localhost java]# rm jdk-7u79-linux-x64.gz

rm: remove regular file `jdk-7u79-linux-x64.gz'? yes

 +选择以下两种方式之一,建议3.1.1

3.1.1 设置对所有用户有效方式:修改/etc/profile文件设置系统变量,设置jdk环境变量,该方式对所有用户有效。

使用VI编辑,输入命令,回车确认。命令行:

[plain]  view plain  copy
  1. vi /etc/profile  

[root@localhost Desktop]# vi /etc/profile

 

打开之后在文件末尾添加下面配置。通过鼠标滑轮滚动到文件末尾,上下左右方向键控制光标输入位置。

[plain]  view plain  copy
  1. export JAVA_HOME=/usr/java/jdk1.7.0_79  
  2. export JRE_HOME=$JAVA_HOME/jre  
  3. export PATH=$PATH:$JAVA_HOME/bin  
  4. export CLASSPATH=./:$JAVA_HOME/lib:$JRE_HOME/lib

 

配置好后,按Esc退出,按Shift加英文冒号shift + :  然后输入wq,按Enter回车键确认。取消编辑按Ctrl+z

使profile配置生效。命令行:

[plain]  view plain  copy
  1. source /etc/profile  

[root@localhost Desktop]# source /etc/profile

 

3.1.2 设置对当前用户有效方式:修改.bashrc文件设置用户变量,设置jdk环境变量,该方式仅对当前用户有效,对其它用户无效,其它用户没有运行java命令的权限。命令行:

[plain]  view plain  copy
  1. vi ~/.bashrc  

[root@localhost Desktop]# vi ~/.bashrc

bashrc文件中添加下面配置。Insert键进入编辑状态。

[plain]  view plain  copy
  1. export JAVA_HOME=/usr/java/jdk1.7.0_79  
  2. export JRE_HOME=$JAVA_HOME/jre  
  3. export PATH=$PATH:$JAVA_HOME/bin  
  4. export CLASSPATH=./:$JAVA_HOME/lib:$JRE_HOME/lib  

 

使bashrc配置生效。命令行:

[plain]  view plain  copy
  1. source ~/.bashrc  

[root@localhost Desktop]# source ~/.bashrc

配置好后,按Esc退出,按Shift加英文冒号shift + :  然后输入wq,按Enter回车键确认。取消编辑按Ctrl+z

 

设置对某个用户有效:如果要使JDK对某个用户有效,某个用户具有运行java命令的权限,修改该用户的.bashrc文件。

例如:ROOT用户给dodobook2用户名运行java命令的权限。

[plain]  view plain  copy
  1. vi /home/dodobook2/.bashrc  

[root@LinuxServer root]# vi /home/dodobook2/.bashrc

bashrc文件中添加下面配置。Insert键进入编辑状态。

[plain]  view plain  copy
  1. export JAVA_HOME=/usr/java/jdk1.7.0_79  
  2. export JRE_HOME=$JAVA_HOME/jre  
  3. export PATH=$PATH:$JAVA_HOME/bin  
  4. export CLASSPATH=./:$JAVA_HOME/lib:$JAVA_HOME/jre/lib  

如果当前登录用户是dodobook2,使用vi ~/.bashrc命令编辑修改。

[plain]  view plain  copy
  1. vi ~/.bashrc  

[dodobook2@localhost Desktop]# vi ~/.bashrc

 

使用echo $JAVA_HOMEecho $CLASSPATHecho $PATH查看环境变量配置。

[plain]  view plain  copy
  1. echo $JAVA_HOME  
  2. echo $CLASSPATH  
  3. echo $PATH  

[root@localhost Desktop]# echo $JAVA_HOME

/usr/java/jdk1.7.0_79

[root@localhost Desktop]# echo $CLASSPATH

./:/usr/java/jdk1.7.0_79/lib:/usr/java/jdk1.7.0_79/jre/lib

[root@localhost Desktop]# echo $PATH

/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/java/jdk1.7.0_79/bin:/root/bin:/usr/java/jdk1.7.0_79/bin

 

 

4、验证安装

安装完成后,查看JDK版本。命令行:

[plain]  view plain  copy
  1. java -version  

[root@localhost Desktop]# java -version

java version "1.7.0_79"

Java(TM) SE Runtime Environment (build 1.7.0_79-b15)

Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

 

测试下javac命令是否可用。命令行:

[plain]  view plain  copy
  1. javac  

[root@localhost Desktop]# javac

Usage: javac  

where possible options include:

  -g                         Generate all debugging info

  -g:none                    Generate no debugging info

  -g:{lines,vars,source}     Generate only some debugging info

  -nowarn                    Generate no warnings

  -verbose                   Output messages about what the compiler is doing

  -deprecation               Output source locations where deprecated APIs are used

  -classpath           Specify where to find user class files and annotation processors

  -cp                  Specify where to find user class files and annotation processors

  -sourcepath          Specify where to find input source files

  -bootclasspath       Override location of bootstrap class files

  -extdirs             Override location of installed extensions

  -endorseddirs        Override location of endorsed standards path

  -proc:{none,only}          Control whether annotation processing and/or compilation is done.

  -processor [,,...] Names of the annotation processors to run; bypasses default discovery process

  -processorpath       Specify where to find annotation processors

  -d              Specify where to place generated class files

  -s              Specify where to place generated source files

  -implicit:{none,class}     Specify whether or not to generate class files for implicitly referenced files

  -encoding        Specify character encoding used by source files

  -source           Provide source compatibility with specified release

  -target           Generate class files for specific VM version

  -version                   Version information

  -help                      Print a synopsis of standard options

  -Akey[=value]              Options to pass to annotation processors

  -X                         Print a synopsis of nonstandard options

  -J                   Pass  directly to the runtime system

  -Werror                    Terminate compilation if warnings occur

  @                Read options and filenames from file

 

 

还可以写段代码测试下。用VI编辑java代码测试JDK是否能正常编译。按Insert键进入编辑状态。命令行:

[plain]  view plain  copy
  1. vi test.java  
[plain]  view plain  copy
  1. class test  
  2. {  
  3.    public static void main(String[]args)  
  4.    {  
  5.       System.out.println("Hello World!");  
  6.    }  
  7. }  

[root@localhost Desktop]# vi test.java

class test

{

   public static void main(String[]args)

   {

      System.out.println("Hello World!");

   }

}

 

写好后,按Esc退出,按Shift加英文冒号shift + :  然后输入wq,按Enter回车键确认。

编译运行。命令行:

[plain]  view plain  copy
  1. javac test.java  
[plain]  view plain  copy
  1. java test  

[root@localhost Desktop]# javac test.java

[root@localhost Desktop]# java test

Hello World!


2.3:每台机器上关闭防火墙和selinux

         永久关闭防火墙:chkconfig --level 35 iptables off

         永久关闭selinux:

               vim /etc/selinux/config

               找到SELINUX 行修改成为:SELINUX=disabled:


2.4 修改IP地址(+本步骤在克隆后机器上回头需要修改部分3):

     1:查看本机ip

           我的电脑ip地址为:192.168.69.30

           Vmnet8的ipv4地址为:192.168.48.1

    3:打开虚拟机终端

     3.1 修改本机ip  

      输入:sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0

        修改后的信息如下,需要修改的地方有红线标示出来了:

        

        eth0--->eth1

        dhcp--->static

        HWADDR  MAC地址修改为本虚拟机的mac地址,mac地址查看 命令: ip addr,选择eth1那个

        

        ,+但是如果ip addr 和ifconfig都不能显示出eth1的ip,那么需要vi /etc/sysconfig/network-scripts/ifcfg-eth0  设置ONBOOT=yes(这个要是yes)

之后便可以查看ip了    

    3.2修改主机名和对应IP

        1 : 编辑hosts文件

             sudo vim /etc/hosts

            添加   192.168.48.129  master 

  

           注意: 执行完之后source/etc/hosts,  同时修改每台机器上的/etc/sysconfig/network  中hostname对应的用户名(此步骤一定要注意,否则容易找不到主机名)

        2:便捷network文件

              sudo vim /etc/sysconfig/network

              修改HOSTNAME为master

              重启生效

三:安装hadoop集群

    1:配置SSH免密码登录

         进入~/.ssh目录

         每台机器执行:ssh-keygen -t rsa,一路回车

         生成两个文件,一个私钥,一个公钥,在master1中执行:cp id_rsa.pub authorized_keys

         a:本机无密钥登录

               修改authorized_keys权限:chmod 644 authorized_keys

               此时重启ssh服务:sudo service sshd restart

               ssh master1

               yes!!!

         b:master与其他节点无密钥登录         

           从master中把authorized_keys分发到各个结点上(会提示输入密码,输入thinkgamer即可):

           scp /home/master/.ssh/authorized_keys slave1:/home/master/.ssh

           scp /home/master/.ssh/authorized_keys slave2:/home/master/.ssh 

           然后在各个节点对authorized_keys执行(一定要执行该步,否则会报错):chmod 644 authorized_keys

          测试如下(第一次ssh时会提示输入yes/no,输入yes即可):

           

    2:解压hadoop到指定目录(我这里使用的是/opt/目录)

        tar -zxvf hadoop-2.7.0.tar.gz /opt/hadoop-2.7.0

        重命名文件:mv /opt/hadoop-2.7.0 /opt/hadoop

    7:修改配置文件

          hadoop-env.sh:   

[html]  view plain  copy   在CODE上查看代码片
  1. export JAVA_HOME=/opt/java
  2. 并加入下面这句告诉hadoop配置文件在哪里
  3. export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop/  
  •   

          core-site.xml:

[html]  view plain  copy   在CODE上查看代码片
  1. <configuration>  
  2.   <property>  
  3.     <name>fs.default.namename>  
  4.     <value>hdfs://master1:9000value>  
  5.   property>  
  6.   <property>  
  7.     <name>hadoop.tmp.dirname>  
  8.     <value>/opt/hadoop/tmpvalue>  
  9.   property>  
  10. configuration>  

            hdfs-site.xml:

[html]  view plain  copy   在CODE上查看代码片
  1. <configuration>  
  2.   <property>  
  3.     <name>dfs.replicationname>  
  4.     <value>2value>  
  5.   property>  
  6.   <property>  
  7.     <name>dfs.namenode.name.dirname>  
  8.     <value>file:/opt/hadoop/dfs/namevalue>  
  9.   property>  
  10.   <property>  
  11.     <name>dfs.datanode.data.dirname>  
  12.     <value>file:/opt/hadoop/dfs/datavalue>  
  13.   property>  
  14. configuration>  
         mapred-site.xml(本身没有该文件 复制mapred-site.xml.template一份
[html]  view plain  copy   在CODE上查看代码片
  1. <configuration>  
  2.   <property>  
  3.     <name>mapreduce.framework.namename>  
  4.     <value>yarnvalue>  
  5.   property>  
  6.   <property>  
  7.     <name>mapreduce.jobhistory.addressname>  
  8.     <value>Master:10020value>  
  9.   property>  
  10.   <property>  
  11.     <name>mapreduce.jobhistory.webapp.addressname>  
  12.     <value>Master:19888value>  
  13.   property>  
  14. configuration>  
         yarn-site.xml:
[html]  view plain  copy   在CODE上查看代码片
  1. <configuration>  
  2.   
  3.   
  4.   <property>  
  5.     <name>yarn.nodemanager.aux-servicesname>  
  6.     <value>mapreduce_shufflevalue>  
  7.   property>  
  8.   <property>  
  9.     <name>yarn.nodemanager.aux-services.mapreduce.shuffle.classname>  
  10.     <value>org.apache.hadoop.mapred.ShuffleHandlervalue>  
  11.   property>  
  12.   <property>  
  13.     <name>yarn.resourcemanager.addressname>  
  14.     <value>master1:8032value>  
  15.   property>  
  16.   <property>  
  17.     <name>yarn.resourcemanager.scheduler.addressname>  
  18.     <value>master1:8030value>  
  19.   property>  
  20.   <property>  
  21.     <name>yarn.resourcemanager.resource-tracker.addressname>  
  22.     <value>master1:8031value>  
  23.   property>  
  24.   <property>  
  25.     <name>yarn.resourcemanager.admin.addressname>  
  26.     <value>master1:8033value>  
  27.   property>  
  28.   <property>  
  29.     <name>yarn.resourcemanager.webapp.addressname>  
  30.     <value>master1:8088value>  
  31.   property>  
  32. configuration>  

    8:编辑slaves文件

        清空加入从节点的名字

        slave1

        slave2

    9:将hadoop分发到各个节点(因为权限问题,先将该文件夹分发到各个节点的/home/master目录下,再进入各个节点将文件夹移到/opt下)

         scp -r /opt/hadoop slave1:/home/master/hadoop ,进入该节点执行:sudo mv hadoop /opt/

         scp -r /opt/hadoop slave2:/home/master/hadoop ,进入该节点执行:sudo mv hadoop /opt/

    10:在master节点格式化hdfs,+并启动

           bin/hdfs namenode -format

           

          看见status 0表示安装成功


启动:在hadoop目录下执行sbin/start-all.sh

四:web页面查看

    1:http://192.168.48.130:8088/

 

    2:http://192.168.48.130:50070/




你可能感兴趣的:(爬虫)