Hadoop实战(虚拟多台电脑)

 

 Hadoop

的下载地址:

 http://www.apache.org/dyn/closer.cgi/hadoop/core/ 

 版本:hadoop0.17.1 

 JDK的安装:

 要求必须安装jdk1.5.07以上的版本。

  

分步式环境的搭建:

 1、硬件环境

 我们采用了3台机器来构建,都安装的是Red Hat 4.1.2-42系统,并且都有一个名为“mingjie“的帐号,如下:

         主机名称:hdfs1    ip:192.168.0.221        功能:NameNode,JobTracker 

          主机名称:hdfs2    ip:192.168.0.227       功能:DataNode,TaskTracker 

          主机名称:hdfs3    ip:192.168.0.228       功能:DataNode,TaskTracker 

 

重点:修改3台机器的/etc/hosts,让彼此的主机名称和ip都能顺利解析

        127.0.0.1       localhost  

          192.168.0.37    hdfs1 

         192.168.0.43    hdfs2 

          192.168.0.53    hdfs3 

 

2、 每台机器都要安装java环境,我们的路径统一为“/opt/modules/jdk1.6“,并添加到系统环境变量

       sudo vi /etc/profile JAVA_HOME=/opt/modules/jdk1.6 

       PATH=$JAVA_HOME/bin:$PATH:$CATALINA_HOME/bin 

       CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/tools.jar 

       export JAVA_HOME 

 

3、下载hadoop0.17.1,将hadoop解压到/home/mingjie/,建议最好也将hadoop的目录添加到环境变量里面去: 

       HADOOP_HOME=/home/mingjie/hadoop-0.17.1 #这是hadoop的主目录

       export HADOOP_HOME 

      HADOOP_CONF_DIR=$HADOOP_HOME/conf   #这是hadoop的配置文件目录

      export HADOOP_CONF_DIR 

     HADOOP_LOG_DIR=/home/mingjie/hadoop-0.17.1/log    #存放运行日志目录   

     export HADOOP_LOG_DIR   

      export PATH=$PATH:$HADOOP_HOME/bin 

 

4、 安装ssh,并生成公钥和私钥

      运行 ssh-keygen -t rsa,根据屏幕提示直接选择“回车” 会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub 

      cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys  

      以上配置完成后,执行一下ssh localhsot,确认你的每台机器都可以使用ssh 



5、 将master服务器上的authorized_keys的内容加到slave两台机器的authorized_keys文件中。让master也可以不需要密码访问2台slave服务器。                  

        sudo scp authorized_keys hdfs2:/home/mingjie/.ssh/   

        sudo scp authorized_keys hdfs3:/home/mingjie/.ssh/    

        ssh hdfs2    

        ssh hdfs3  

6、 接下来,我们要修改hadoop的[conf/masters]、[conf/slaves]这2个文件:Master设置、Slave设置

        (<HADOOP_HOME>/conf/masters):hdfs1     

        (<HADOOP_HOME>/conf/slaves):hdfs2 hdfs3 

7、 修改[conf/hadoop-env.sh]:         

       export JAVA_HOME=/opt/jdk1.6.0_03 


8、 修改[conf/hadoop-site.xml],这里只是几个常用的属性配置,有关hadoop的性能优化调整,需要研究hadoop-default.xml: 

       <configuration> 

         <property>   

      <name>fs.default.name</name>//你的namenode的配置,机器名加端口

          <value>hdfs://hdfs1:54310/</value>     

</property>     

<property> 

      <name>mapred.job.tracker</name>//你的JobTracker的配置,机器名加端口   

       <value>hdfs://hdfs1:54311</value> 

    </property> 

    <property>  

      <name>dfs.replication</name>//数据需要备份的数量,默认是三   

       <value>1</value> 

    </property> 

    <property> 

       <name>hadoop.tmp.dir</name>//Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。

           <value>/home/mingjie/hadoop-0.17.1/tmp/</value>  

   </property>     

<property>   

       <name>mapred.child.java.opts</name>//java虚拟机的一些参数可以参照配置   

       <value>-Xmx512m</value> 

    </property>  

   <property>  

       <name>dfs.block.size</name>//block的大小,单位字节,后面会提到用处,必须是512的倍数,因为采用crc作文件完整性校验,默认配置512是checksum的最小单元。

         <value>5120000</value> 

       <description>The default block size for new files.</description> 

    </property> 

   </configuration>  

9、 然后将hadoop的整体环境拷贝到hdfs2、hdfs3上面去      

         scp -r /home/mingjie/hadoop.0.17.1 hdfs2:/home/mingjie/ hadoop.0.17.1      

         scp -r /home/mingjie/ hadoop.0.17.1 hdfs3:/home/mingjie/ hadoop.0.17.1  

10、 在hdfs1这个namenode上面格式化一个新的分布式文件系统HDFS,就是hadoop-site.xml文件中指定的hadoop.tmp.dir路径                    <HADOOP_HOME>/bin/hadoop namenode –format  

         到此大致上就完成了hadoop环境布署          

         启动hadoop:<HADOOP_HOME>/bin/start-all.sh  

         停止hadoop:<HADOOP_HOME>/bin/stop-all.sh  

 说明:      (1) 执行启动Hadoop进程后,  ? 在master服务器会启动3个java进程,分别的NameNode,SecondNameNode,JobTracker,在LOG目录下会产2个文件,分别对应NameNode的运行日志和JobTracker的运行日志,  ? 在slave服务器会启动2个java进程,分别为DataNode,TaskTracker,,在LOG目下会产生2个文件,分别对应DataNode的运行日志和TaskTracker的运行日志,可以通过查看日志分析hadoop的启动是否正确。  

(2) 通过IE浏览分布式文件系统中的文件   访问 http://hdfs1:50030 可以查看JobTracker的运行状态。

                  访问 http://360quan-1:50060         #可以查看 TaskTracker的运行状态。   

                  访问 http://360quan-1:50070         #可以查看NameNode以及整个分布式文件系统的状态。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
集群规划: 主机名 IP 安装的软件 运行的进程 weekend01 192.168.1.201 jdk、hadoop NameNode、DFSZKFailoverController(zkfc) weekend02 192.168.1.202 jdk、hadoop NameNode、DFSZKFailoverController(zkfc) weekend03 192.168.1.203 jdk、hadoop ResourceManager weekend04 192.168.1.204 jdk、hadoop ResourceManager weekend05 192.168.1.205 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain weekend06 192.168.1.206 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain weekend07 192.168.1.207 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain 说明: 1.在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务 仅同步active namenode的状态,以便能够在它失败时快速进行切换。 hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM。这里我们使用简单的QJM。在该方案中,主备NameNode之间通过一组JournalNode同步元数据 信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode 这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为standby状态 2.hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.4.1解决了这个问题,有两个ResourceManager,一个是Active,一个 是Standby,状态由zookeeper进行协调

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值