侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

Hadoop集群部署

2023-11-13 星期一 / 0 评论 / 0 点赞 / 51 阅读 / 14377 字

简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统HDFS(Hadoop Distributed Filesystem)和MapReduce(Goog

简介
Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统HDFS(Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。
对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任 务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。
从上面的介绍可以看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。

安装包:http://hadoop.apache.org/releases.html#Release+Notes

1:环境准备
3台机器,系统自定
>1. 下载jdk包,配置环境变量  http://www.Oracle.com/technetwork/java/javase/index.html
>2. 配置虚拟环境
    dns解析
    vim  /etc/resolv.conf 
        nameserver 223.5.5.5
    主机路由
    vim /etc/hosts
        127.0.0.1       localhost localhost.localdomain
        10.68.4.49      master
        10.68.4.55      slave1
        10.68.4.56      slave2
    更改主机名
    hostname master  ###退出重新登录 或者 [root@master ~]#  通过这个可以看到主机名是否已经变成你需要的
    ####上述很重要,如果还是localhost的,后续启动端口时,会以127.0.0.1启动,主从不能相互通信

    
>3. 测试
    互ping  ping master;ping slave1 成功说明环境OK

2:ssh无秘钥认证
Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到 NameNode。
注意:如果你的Linux没有安装SSH,请首先安装SSH
Ubuntu下安装ssh:sudo apt-get install openssh-server
Fedora下安装ssh:yum install openssh-server
>1. 创建无密码秘钥对
    ssh-keygen  -t rsa
    三回车即可
    根据回车之后的内容可以判断在当前用户的家目录下产生了id_rsa id_rsa.pub 
    查验当前用户家目录下是否有.ssh 目录,若无创建此目录
    ls -al /home/user/
    mkdir /home/user/.ssh
    cd /home/user/.ssh
    cat id_rsa.pub >>authorized_keys   ####把上述创建的文件追到到此文件中
    chmod 700 -R /home/user 
    chmod 755 /home/user/.ssh
    chmod 600 /home/user/.ssh/authorized_keys
>2. 开启秘钥认证
    vim /etc/ssh/sshd_config 
    PermitRootLogin yes     ####避免不能登录,可以先放开root登录权限
    RSAAuthentication yes    ###注释掉这三行即为开启秘钥认证
    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys

>3. 重启ssh服务
    /etc/init.d/sshd restart or service sshd restart or centos7:systemctl restart sshd.service 
>4. 把公钥拷贝到其它机器上,并追加到authorized_keys此文件中

>5. 所有机器重复上述操作

>6. 校验
    ssh slave ####第一次认证需要输入yes,再次测试不需要输入任何东西登录成功即为OK

3:hadoop 安装,先安装一台,其余的直接scp过去即可
>1. 解压包至你想要的目录
    我的是/usr/local/hadoop
    mkdir /usr/local/hadoop/tmp
    设置Hadoop环境变量
    export HADOOP_HOME=/usr/hadoop
    export PATH=$PATH :$HADOOP_HOME/bin
>2. 配置文件
    cd /usr/local/hadoop/etc/hadoop
    vim core-site.xml
    <configuration>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/data/hadoop/tmp</value>
                <!--临时目录得提前创建才行-->
                 <description>A base for other temporary directories.</description>
         </property>
    <!-- file system properties -->
         <property>
                <name>fs.default.name</name>
                 <value>hdfs://master:9000</value>
         </property>
    </configuration>
    
    vim hadoop-env.sh  ####指定jdk路径
    export JAVA_HOME=/data/java/jdk

    vim hdfs-site.xml 
    <configuration>
       <property>
                <name>dfs.namenode.secondary.http-address</name>
               <value>master:9001</value>
       </property>
     <!--property>  
             <name>dfs.namenode.name.dir</name>  
             <value>file:/usr/hadoop/dfs/name</value>  
       </property-->
      <!--property>  
              <name>dfs.datanode.data.dir</name>  
              <value>file:/usr/hadoop/dfs/data</value>  
       </property-->
       <property>
               <name>dfs.replication</name>
               <value>3</value>
        </property>
        <property>
                 <name>dfs.webhdfs.enabled</name>
                  <value>true</value>
         </property>
    </configuration>

    vim  mapred-site.xml
    <configuration>
        <!--property>
                <name>mapred.job.tracker</name>
                <value>http://10.68.4.49:9001</value>
        </property-->
          <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
           </property>
          <property>
                  <name>mapreduce.jobhistory.address</name>
                  <value>master:10020</value>
          </property>
          <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>master:19888</value>
       </property>
    </configuration>

     vim yarn-site.xml 
     <configuration>

    <!-- Site specific YARN configuration properties -->
       <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
               <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
               <name>yarn.resourcemanager.address</name>
               <value>master:8032</value>
       </property>
       <property>
               <name>yarn.resourcemanager.scheduler.address</name>
               <value>master:8030</value>
       </property>
       <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
             <value>master:8031</value>
      </property>
      <property>
              <name>yarn.resourcemanager.admin.address</name>
               <value>master:8033</value>
       </property>
       <property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>master:8088</value>
       </property>
    </configuration>
    
    vim  slaves
    slave1
    slave2

>3. 拷贝至其他机器
    scp -r /usr/local/hadoop user@IP:/usr/local
    
>4. server 格式化hdfs文件系统
    Hadoop namenode -format ###初次启动才需要
    cd /usr/local/hadoop/sbin
    主从依次启动
    ./start-all.sh

>5. 校验
     hadoop dfsadmin -report   查看Hadoop集群的状态
    

    也可以通过jps查看
    
    网页校验
    http://10.68.4.49:8088

    
    http://10.68.4.49:50070
    
    如果不行的话就看日志吧
    日志默认目录:/usr/local/hadoop/logs
    可以自定义,修改此文件:vim /usr/local/hadoop/etc/hadoop/log4j.properties
    
    hadoop dfsadmin -safemode leave  关闭安全模式

    各文件参数详解见:

    http://www.cnblogs.com/yinghun/p/6230436.html


 

广告 广告

评论区