CentOS下搭建Hadoop-1.2.1集群(一):搭建Hadoop集群

来源:互联网 发布:java实战开发经典 视频 编辑:程序博客网 时间:2024/05/16 06:48

一、搭建环境(前提条件)

     系统:CentOS6.5 64bit

     软件环境:JDK1.6.0_45  ,安装教程见我的另一篇文章CentOS6.5下安装jdk1.6

     其他:sshd免密码登录环境  请参考此文章  http://chwshuang.iteye.com/admin/blogs/2015040

     下载软件包:

      hadoop-1.2.1.tar.gz   下载地址 http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz

      zookeeper-3.4.6.tar.gz   下载地址 http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

      hbase-0.94.17.tar.gz   下载地址  http://mirrors.cnnic.cn/apache/hbase/hbase-0.94.17/hbase-0.94.17.tar.gz

      服务器列表:

服务器别名服务器地址服务器说明myhadoop1192.168.1.111主NameNode服务器myhadoop2192.168.1.112从Datanode服务器myhadoop3192.168.1.113从Datanode服务器

 

二、搭建流程


    1. 添加用户 -- (以root用户在每台服务器上执行)

       (1)执行添加用户命令

         useradd -d /home/myhadoop -s /bin/bash -m myhadoop

       (2)执行如下命令,为用户“myhadoop”设置密码。

         passwd myhadoop
       (3)您需要根据系统的提示输入两次密码“1234QWER”,然后通过以下命令进入主目录  

      

Java代码  收藏代码
  1. [root@hadoop1 ~]# useradd -d /home/myhadoop -s /bin/bash -m myhadoop  
  2. [root@hadoop1 ~]# passwd myhadoop  
  3. Changing password for user myhadoop.  
  4. New password:   
  5. BAD PASSWORD: it is too simplistic/systematic  
  6. Retype new password:   
  7. passwd: all authentication tokens updated successfully.  
  8. [root@hadoop1 ~]#   

 

 

 

    2. 修改主机名称    -- hostname添加集群服务器别名IP关系  -- (以root用户在每台服务器上执行)

        需要修改3个地方,如果只修改hostname 指令这一处,重启电脑后还是会变回来。/etc/hosts主机文件, 这个地方修改是给DNS解析用的,单独修改也不行。只有三个地方同时修改才能算修改完成。修改完成后重启服务器

 

       【1】 hostname 指令中修改。

 

                直接输入hostname查看主机名是不是hadoop,如果不是,输入“hostname myhadoop1” 再输入 “hostname” 进行验证

 

               

Java代码  收藏代码
  1. [root@hadoop1 ~]# hostname  
  2. hadoop1  
  3. [root@hadoop1 ~]# hostname myhadoop1  
  4. [root@hadoop1 ~]# hostname  
  5. myhadoop1  
  6. [root@hadoop1 ~]#   

 

 

 

       【2】使用 vim /etc/sysconfig/network 修改网络配置中主机名,将修改 HOSTNAME=myhadoop1, 如果是192.168.1.112就改为HOSTNAME=myhadoop2

 

              

Java代码  收藏代码
  1. [root@hadoop1 ~]# vim /etc/sysconfig/network  
  2.   
  3. NETWORKING=yes  
  4. NETWORKING_IPV6=no  
  5. HOSTNAME=myhadoop1  

 

 

 

       【3】使用 vim /etc/hosts 修改主机文件中本机名称,修改192.168.1.101后面的名称为 myhadoop1。其他以此类推。

Java代码  收藏代码
  1. [root@hadoop1 ~]# vim /etc/hosts  
  2.   
  3. 127.0.0.1       localhost  
  4. 192.168.1.111   myhadoop1  
  5. 192.168.1.112   myhadoop2  
  6. 192.168.1.113   myhadoop3  
  7. #::1            localhost6.localdomain6 localhost6  

    

      【4】重启服务器

            以root 用户登录后,输入 reboot

 

    3. 安装

         安装前需要配置,在配置时,只需要配置111这一台服务器,配置完成后,把111配置好的hadoop目录拷贝到其他服务器就可以了。

      【1】 安装包解压、配置  -- (以刚刚创建的myhadoop用户登录服务器)

            (1) wget 下载

              在/home/myhadoop目录输入以下命令下载: 

               wget http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz

               wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

               wget http://mirrors.cnnic.cn/apache/hbase/hbase-0.94.17/hbase-0.94.17.tar.gz

            (2)如个使用第一种方式发现速度很慢,可以使用其他方式下载,然后上传到服务器

              将hadoop-1.2.1.tar.gz、zookeeper-3.4.6.tar.gz、hbase-0.94.17.tar.gz安装包拷贝到/home/myhadoop目录下

            (3)授权

                如果是root用户下载的就需要使用以下方式进行授权

              

Java代码  收藏代码
  1. [root@myhadoop1 myhadoop]# ll           --- 先查看刚刚下载的文件权限  
  2. total 136864  
  3. -rw-rw--w-. 1 root root 63851630 Jul 23  2013 hadoop-1.2.1.tar.gz  
  4. -rw-rw--w-. 1 root root 58592781 Feb 26 09:31 hbase-0.94.17.tar.gz  
  5. -rw-rw--w-. 1 root root 17699306 Feb 20 20:04 zookeeper-3.4.6.tar.gz  
  6. [root@myhadoop1 myhadoop]# chown myhadoop.myhadoop *              ---将文件的所有者和组设置为myhadoop  
  7. [root@myhadoop1 myhadoop]# ll  
  8. total 136864  
  9. -rw-rw--w-. 1 myhadoop myhadoop 63851630 Jul 23  2013 hadoop-1.2.1.tar.gz  
  10. -rw-rw--w-. 1 myhadoop myhadoop 58592781 Feb 26 09:31 hbase-0.94.17.tar.gz  
  11. -rw-rw--w-. 1 myhadoop myhadoop 17699306 Feb 20 20:04 zookeeper-3.4.6.tar.gz  
  12. [root@myhadoop1 myhadoop]# chmod 775 *            --- 将文件的读写、执行权限打开  
  13. [root@myhadoop1 myhadoop]# ll    
  14. total 136864  
  15. -rwxrwxr-x. 1 myhadoop myhadoop 63851630 Jul 23  2013 hadoop-1.2.1.tar.gz  
  16. -rwxrwxr-x. 1 myhadoop myhadoop 58592781 Feb 26 09:31 hbase-0.94.17.tar.gz  
  17. -rwxrwxr-x. 1 myhadoop myhadoop 17699306 Feb 20 20:04 zookeeper-3.4.6.tar.gz  
  18. [root@myhadoop1 myhadoop]#   

            (4)以myhadoop用户登录,解压压缩包

Java代码  收藏代码
  1. [root@myhadoop1 myhadoop]# su myhadoop  -- root用户切换到myhadoop用户  
  2. [myhadoop@myhadoop1 ~]$ ls  
  3. hadoop-1.2.1.tar.gz  hbase-0.94.17.tar.gz  zookeeper-3.4.6.tar.gz  
  4. [myhadoop@myhadoop1 ~]$ tar -xzf hadoop-1.2.1.tar.gz      --- 解压  
  5. [myhadoop@myhadoop1 ~]$ tar -xzf hbase-0.94.17.tar.gz   
  6. [myhadoop@myhadoop1 ~]$ tar -xzf zookeeper-3.4.6.tar.gz   
  7. [myhadoop@myhadoop1 ~]$ ll  
  8. total 136876  
  9. drwxr-xr-x. 15 myhadoop myhadoop     4096 Jul 23  2013 hadoop-1.2.1  
  10. -rwxrwxr-x.  1 myhadoop myhadoop 63851630 Jul 23  2013 hadoop-1.2.1.tar.gz  
  11. drwxr-xr-x. 10 myhadoop myhadoop     4096 Feb 19 07:42 hbase-0.94.17  
  12. -rwxrwxr-x.  1 myhadoop myhadoop 58592781 Feb 26 09:31 hbase-0.94.17.tar.gz  
  13. drwxr-xr-x. 10 myhadoop myhadoop     4096 Feb 20 18:58 zookeeper-3.4.6  
  14. -rwxrwxr-x.  1 myhadoop myhadoop 17699306 Feb 20 20:04 zookeeper-3.4.6.tar.gz  
  15. [myhadoop@myhadoop1 ~]$   

          (5) 设置环境变量   -- 以root 用户设置

           

Java代码  收藏代码
  1. [myhadoop@myhadoop1 ~]$ exit   --- 如果是root用户登录到myhadoop用户,直接退出就到root用户下了  
  2. exit  
  3. [root@myhadoop1 myhadoop]# vim /etc/profile     --- 要修改的环境配置文件  
  4.   
  5. ## -------------------JAVA HADOOP PATH------------------------##    
  6. JAVA_HOME=/usr/java/jdk1.6.0_45  
  7. HADOOP_HOME=/home/myhadoop/hadoop-1.2.1  
  8. PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin  
  9.   
  10. export JAVA_HOME PATH HADOOP_HOME  
  11. export HADOOP_HOME_WARN_SUPPRESS=1      --- 此配置是用来解决hadoop启动警告  
  12.   
  13. ##----------------------- hbase ------------------------------##  
  14. export HBASE_HOME=/home/myhadoop/hbase-0.94.17  
  15. export PATH=$PATH:$HBASE_HOME/bin  
  16.   
  17. ##------------------------ zookeeper -------------------------##  
  18. ZK_HOME=/home/myhadoop/zookeeper-3.4.6  
  19. PATH=$ZK_HOME/bin:$PATH  
  20. export PATH ZK_HOME  
  21.   
  22.   
  23. [root@myhadoop1 myhadoop]# source /etc/profile   --- 让配置立即生效  

 

      【2】 安装hadoop

               需要配置hadoop-env.sh、core-site.xml

              (1)配置  --  修改启动文件 hadoop-1.2.1/conf/hadoop-env.sh

Java代码  收藏代码
  1. [root@myhadoop1 myhadoop]# su myhadoop   --- 以myhadoop用户进行配置  
  2. [myhadoop@myhadoop1 ~]$ ls  
  3. hadoop-1.2.1  hadoop-1.2.1.tar.gz  hbase-0.94.17  hbase-0.94.17.tar.gz  zookeeper-3.4.6  zookeeper-3.4.6.tar.gz  
  4. [myhadoop@myhadoop1 ~]$ vim hadoop-1.2.1/conf/hadoop-env.sh   
  5.   
  6. # The java implementation to use.  Required.  
  7. export JAVA_HOME=/usr/java/jdk1.6.0_45  

              (2) 配置主配置文件  hadoop-1.2.1/conf/core-site.xml

Java代码  收藏代码
  1. [myhadoop@myhadoop1 ~]$ vim hadoop-1.2.1/conf/core-site.xml   
  2.   
  3. <?xml version="1.0"?>  
  4. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  5. <!-- Put site-specific property overrides in this file. -->  
  6. <configuration>  
  7.   <property>   
  8.     <name>fs.default.name</name>  
  9.     <value>hdfs://192.168.1.111:9000</value>  
  10.   </property>  
  11. </configuration>  

 

              (3)修改hdfs配置文件hadoop-1.2.1/conf/hdfs-site.xml

Java代码  收藏代码
  1. [myhadoop@myhadoop1 ~]$ vim hadoop-1.2.1/conf/hdfs-site.xml   
  2.   
  3. <?xml version="1.0"?>  
  4. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  5. <!-- Put site-specific property overrides in this file. -->  
  6. <configuration>  
  7.   <property>  
  8.     <name>dfs.replication</name>  
  9.     <value>3</value>   <!-- 表示3个从服务器  -->  
  10.   </property>  
  11. </configuration>  

 

              (4)配置任务调度服务配置hadoop-1.2.1/conf/mapred-site.xml

Java代码  收藏代码
  1. [myhadoop@myhadoop1 ~]$ vim hadoop-1.2.1/conf/mapred-site.xml   
  2.   
  3. <?xml version="1.0"?>  
  4. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  5. <!-- Put site-specific property overrides in this file. -->  
  6. <configuration>  
  7.   <property>  
  8.     <name>mapred.job.tracker</name>  
  9.     <value>192.168.1.111:9001</value> <!-- 配置到主服务器9001端口 -->  
  10.   </property>  
  11. </configuration>  

 

              (5)配置主服务器地址 hadoop-1.2.1/conf/masters

Java代码  收藏代码
  1. [myhadoop@myhadoop1 ~]$ vim hadoop-1.2.1/conf/masters   
  2.   
  3. 192.168.1.111  

 

              (6)配置从服务器地址hadoop-1.2.1/conf/slaves

 

Java代码  收藏代码
  1. [myhadoop@myhadoop1 ~]$ vim hadoop-1.2.1/conf/slaves   
  2.   
  3. 192.168.1.111  
  4. 192.168.1.112  
  5. 192.168.1.113  

    

              (7)格式化节点服务器   -- 注意:如果执行过程出现ERROR信息必须解决后重新格式化

Java代码  收藏代码
  1. [myhadoop@myhadoop1 ~]$ cd hadoop-1.2.1/bin/   --- 进入bin执行文件目录  
  2. [myhadoop@myhadoop1 bin]$ hadoop namenode -format    --- 执行节点格式化  
  3. 14/03/27 10:46:39 INFO namenode.NameNode: STARTUP_MSG:   
  4. /************************************************************ 
  5. STARTUP_MSG: Starting NameNode 
  6. STARTUP_MSG:   host = myhadoop1/192.168.1.111 
  7. STARTUP_MSG:   args = [-format] 
  8. STARTUP_MSG:   version = 1.2.1 
  9. STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152; compiled by 'mattf' on Mon Jul 22 15:23:09 PDT 2013 
  10. STARTUP_MSG:   java = 1.6.0_45 
  11. ************************************************************/  
  12. 14/03/27 10:46:39 INFO util.GSet: Computing capacity for map BlocksMap  
  13. 14/03/27 10:46:39 INFO util.GSet: VM type       = 64-bit  
  14. 14/03/27 10:46:39 INFO util.GSet: 2.0% max memory = 1013645312  
  15. 14/03/27 10:46:39 INFO util.GSet: capacity      = 2^21 = 2097152 entries  
  16. 14/03/27 10:46:39 INFO util.GSet: recommended=2097152, actual=2097152  
  17. 14/03/27 10:46:40 INFO namenode.FSNamesystem: fsOwner=myhadoop  
  18. 14/03/27 10:46:40 INFO namenode.FSNamesystem: supergroup=supergroup  
  19. 14/03/27 10:46:40 INFO namenode.FSNamesystem: isPermissionEnabled=true  
  20. 14/03/27 10:46:40 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100  
  21. 14/03/27 10:46:40 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)  
  22. 14/03/27 10:46:40 INFO namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0  
  23. 14/03/27 10:46:40 INFO namenode.NameNode: Caching file names occuring more than 10 times   
  24. 14/03/27 10:46:41 INFO common.Storage: Image file /tmp/hadoop-myhadoop/dfs/name/current/fsimage of size 114 bytes saved in 0 seconds.  
  25. 14/03/27 10:46:41 INFO namenode.FSEditLog: closing edit log: position=4, editlog=/tmp/hadoop-myhadoop/dfs/name/current/edits  
  26. 14/03/27 10:46:41 INFO namenode.FSEditLog: close success: truncate to 4, editlog=/tmp/hadoop-myhadoop/dfs/name/current/edits  
  27. 14/03/27 10:46:41 INFO common.Storage: Storage directory /tmp/hadoop-myhadoop/dfs/name has been successfully formatted.  
  28. 14/03/27 10:46:41 INFO namenode.NameNode: SHUTDOWN_MSG:   
  29. /************************************************************ 
  30. SHUTDOWN_MSG: Shutting down NameNode at myhadoop1/192.168.1.111 
  31. ************************************************************/  
  32. [myhadoop@myhadoop1 bin]$   

 

              (8)拷贝hadoop-1.2.1到其他服务器

               

Java代码  收藏代码
  1. [myhadoop@myhadoop1 ~]$ cd ~       --- 进入myhadoop主目录 输入以下命令拷贝  
  2. [myhadoop@myhadoop1 ~]$ scp -r hadoop-1.2.1 myhadoop@myhadoop2:~  
  3.   
  4. [myhadoop@myhadoop1 ~]$ scp -r hadoop-1.2.1 myhadoop@myhadoop3:~  

               拷贝过程不需要输入密码,如果出现提示输入密码,应该就是免密码登录没有设置好导致的

             

           (9)启动和停止集群             在主服务器上输入:start-all.sh 启动集群, 输入jps可以看到启动的服务

Java代码  收藏代码
  1. [myhadoop@myhadoop1 ~]$ start-all.sh  
  2. starting namenode, logging to /home/myhadoop/hadoop-1.2.1/libexec/../logs/hadoop-myhadoop-namenode-myhadoop1.out  
  3. 192.168.1.112: starting datanode, logging to /home/myhadoop/hadoop-1.2.1/libexec/../logs/hadoop-myhadoop-datanode-myhadoop2.out  
  4. 192.168.1.113: starting datanode, logging to /home/myhadoop/hadoop-1.2.1/libexec/../logs/hadoop-myhadoop-datanode-myhadoop3.out  
  5. 192.168.1.111: starting datanode, logging to /home/myhadoop/hadoop-1.2.1/libexec/../logs/hadoop-myhadoop-datanode-myhadoop1.out  
  6. 192.168.1.111: starting secondarynamenode, logging to /home/myhadoop/hadoop-1.2.1/libexec/../logs/hadoop-myhadoop-secondarynamenode-myhadoop1.out  
  7. starting jobtracker, logging to /home/myhadoop/hadoop-1.2.1/libexec/../logs/hadoop-myhadoop-jobtracker-myhadoop1.out  
  8. 192.168.1.112: starting tasktracker, logging to /home/myhadoop/hadoop-1.2.1/libexec/../logs/hadoop-myhadoop-tasktracker-myhadoop2.out  
  9. 192.168.1.113: starting tasktracker, logging to /home/myhadoop/hadoop-1.2.1/libexec/../logs/hadoop-myhadoop-tasktracker-myhadoop3.out  
  10. 192.168.1.111: starting tasktracker, logging to /home/myhadoop/hadoop-1.2.1/libexec/../logs/hadoop-myhadoop-tasktracker-myhadoop1.out  
  11. [myhadoop@myhadoop1 ~]$ jps  
  12. 3749 DataNode  
  13. 3629 NameNode  
  14. 3972 JobTracker  
  15. 4102 TaskTracker  
  16. 4149 Jps  
  17. 3872 SecondaryNameNode  
  18. [myhadoop@myhadoop1 ~]$   

       在从服务器上输入:jps可以看到节点服务和任务调度服务已经启动

Java代码  收藏代码
  1. [myhadoop@myhadoop2 ~]$ jps  
  2. 3690 Jps  
  3. 3607 TaskTracker  
  4. 3502 DataNode  
  5. [myhadoop@myhadoop2 ~]$   

         在主服务器上输入stop-all.sh就可以关闭整个集群

Java代码  收藏代码
  1. [myhadoop@myhadoop1 ~]$ stop-all.sh   
  2. stopping jobtracker  
  3. 192.168.1.112: stopping tasktracker  
  4. 192.168.1.111: stopping tasktracker  
  5. 192.168.1.113: stopping tasktracker  
  6. stopping namenode  
  7. 192.168.1.112: stopping datanode  
  8. 192.168.1.111: stopping datanode  
  9. 192.168.1.113: stopping datanode  
  10. 192.168.1.111: stopping secondarynamenode  
  11. [myhadoop@myhadoop1 ~]$   

        (10)查看

           通过浏览器进行查看: http://192.168.1.111:50070/ 查看hadoop运行状态。

            
                   
 

           如果某些地址看不了,应该是windows下的hosts文件没有配置主机IP和主机名映射导致的,比如windows7下,就修改C:\Windows\System32\drivers\etc\hosts这个文件,加入主机名和IP映射

                      192.168.1.111   hadoop1
                      192.168.1.112   hadoop2
                      192.168.1.113   hadoop3   

                
                    
 

0 0
原创粉丝点击