大数据3-Hadoop分布式介绍及集群搭建

1.分布式系统三大组件:

     1.1 海量数据的存储

              分布式文件系统(HDFS)

              a.具有分布式的集群结构 我们把这样实际存储数据的节点叫做datanode;

              b.具有一个统一对外提供查询、存储、搜索的机器节点:

                 对外跟客户端统一打交道;   

                对内跟实际存储数据的节点打交道。

             c.具有备份的机制,解决了机器挂掉时候数据丢失的问题;

             d.具有统一的API对客户端来说不用操心集群内部的事情,只要调用API。就可以进行文件的读取、存储、搜索

                甚至我们可以提供一个分布式文件系统的引用:

                              FileSystem fs = new FileSystem()

                                       fs.add();fs.copy();fs.rm()...

     1.2 解决分布式数据计算(处理)问题

             分布式的编程模型(Mapreduce)

             思想:分而治之:先局部,再总体

            Map(映射) reduce(聚合)  整体上作为一个编程模型:需要给用户提供一个友好,便捷的使用规范。

            比如:你要继承什么、配置什么、如何调用、如何执行...

            a.继承我们的一个mapper,实现自己的业务逻辑;

            b.继承我们的一个reduce,实现自己的业务逻辑;

            c.最好可以提供可供用户进行相关配置的类,或者配置文件

             作为一个分布式计算框架,最好我们还提供一个程序的总管(MrAppmater)用来 管理这种分布式计算框架的内部问题:

             包括启动、衔接等。

     1.3解决了分布式系统的资源管理问题

             分布式资源管理(yarn)

             为了更好的管理我们集群的资源,最好设计成分布式的架构

             a.需要一个统一对外提供服务的节点(某一机器或者机器上的一个进程,一个服务)叫做资源管理者(ResourceManager)

                     b.需要在集群中的每台机器上有一个角色,用来进行每台机器资源的管理、汇报,叫做节点管理者(nodeManager)

  2.集群搭建(三个节点:shizhan01,shizhan02,shizhan03)

             2.1准备工作: 

               a.修改主机名:(三台)
                   vi /etc/sysconfig/network
                         NETWORKING=yes
                         HOSTNAME=shizhan01 

                b.修改主机名和IP的映射关系:(三台)
                   vim /etc/hosts
                      192.168.48.129    shizhan01 
                      192.168.48.130    shizhan02 
                      192.168.48.131    shizhan03

                c.关闭防火墙
                      #查看防火墙状态
                      service iptables status
                     #关闭防火墙
                       service iptables stop
                     #查看防火墙开机启动状态
                        chkconfig iptables --list
                    #关闭防火墙开机启动
                        chkconfig iptables off
                d.安装JDK
                          上传alt+p 后出现sftp窗口,然后put d:\xxx\yy\ll\jdk-7u_65-i585.tar.gz
                          解压jdk
                                 #创建文件夹
                                  mkdir /home/hadoop/app
                                 #解压
                                  tar -zxvf jdk-7u55-linux-i586.tar.gz -C /home/hadoop/app
                           将java添加到环境变量中
                                 vim /etc/profile
                                 #在文件最后添加
                                      export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585
                                      export PATH=$PATH:$JAVA_HOME/bin
                               #刷新配置
                                    source /etc/profile  

     2.2安装Hadoop集群:配置时候最好用要安装的Linux版本编译一下hadoop-2.5.2-src 

          先上传hadoop的安装包到服务器上去/home/hadoop/
          注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop
            需要修改5个配置文件
   2.2.1配置hadoop
    第一个:hadoop-env.sh                      位置:/root/apps/hadoop/etc/hadoop
        vim hadoop-env.sh
        #第27行
        export JAVA_HOME=/usr/java/jdk1.7.0_65
        
    第二个:core-site.xml

        <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://weekend-1206-01:9000</value>
        </property>
        <!-- 指定hadoop运行时产生文件的存储目录 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/hadoop/hadoop-2.4.1/tmp</value>
    </property>
        
    第三个:hdfs-site.xml   
        <!-- 指定HDFS副本的数量 -->
        <property>
            <name>dfs.replication</name>
            <value>1</value>
    </property>
    
    <property>
              <name>dfs.secondary.http.address</name>
           <value>192.168.1.152:50090</value>
    </property>

        
    第四个:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
        mv mapred-site.xml.template mapred-site.xml
        vim mapred-site.xml
        <!-- 指定mr运行在yarn上 -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
    </property>
        
    第五个:yarn-site.xml
        <!-- 指定YARN的老大(ResourceManager)的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>weekend-1206-01</value>
    </property>
        <!-- reducer获取数据的方式 -->
    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
     </property>
         
  2.2.2将hadoop添加到环境变量
    
    vim /etc/proflie
        export JAVA_HOME=/usr/java/jdk1.7.0_65
        export HADOOP_HOME=/itcast/hadoop-2.4.1
        export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    source /etc/profile
    
    2.2.3格式化namenode(是对namenode进行初始化)
        hdfs namenode -format (hadoop namenode -format)

    2.2.4启动方式:

                    第一种:

                     hadoop-daemon.sh start namenode    #启动namenode

                     hadoop-daemon.sh start datanode     #启动datanode

                     登陆页面查看文件系统:http://192.168.48.129:50070 

                   第二种:之前要在三台节点上配置ssh 

                   启动前先配置slaves:位置:/root/apps/hadoop/etc/hadoop

                       [root@shizhan01 hadoop]# nano slaves

                      shizhan01

                      shizhan02

                      shizhan03

              启动:

              [root@shizhan01 sbin]# start-dfs.sh

               报错: 

解决:

                 在/etc/profile文件中添加:

                        export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

                        export HADOOP_OPTS=-Djava.library.path=$HADOOP_HOME/lib

   再启动:     start-dfs.sh   start-yarn.sh   和关闭:       stop-dfs.sh  stop-yarn.sh

    启动效果:

主节点:

从节点:

3.细节说明:

    3.1hadoop的文件目录说明:

         

                    bin:自己的一些操作命令;

                    sbin:系统启动的一些管理命令;

                    etc:配置文件;

                   include:c语言的一些本地库;

                   lib:本地库;

                   share:jar包

        

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值