• 5个节点hadoop安装(zookeeper)


    转http://www.cnblogs.com/zlslch/p/5854669.html

    步骤流程(本博文):

      1、 搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 分配1G及以上的状况)

      2 、搭建一个5节点的hadoop分布式小集群--预备工作(djt11、djt12、djt13、djt14、djt15的网络连接、ip地址静态、拍照)

      3、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 远程)

      4、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 主机规划、软件规划、目录规划)

           补充: 若是用户规划和目录规划,执行反了,则出现什么结果呢?请看---强烈建议不要这样干

      5、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的环境检查 )

      6 、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的SSH免密码通信配置)

      7 、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的jdk安装)

      8 、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的djt11脚本工具的使用)

      9 、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的Zookeeper安装)

      10、 搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的hadoop集群环境搭建)继续

    1 、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 分配1G及以上的状况)

    对于这步,基础得看,

    3

    主机名称表(拷贝到所有的机器中)以及修改主机名

     [hadoop@centos65-template ~]$ sudo vi /etc/hosts

     [hadoop@centos65-template ~]$ sudo vi /etc/sysconfig/network

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.0.11 djt11
    192.168.0.12 djt12
    192.168.0.13 djt13
    192.168.0.14 djt14
    192.168.0.15 djt15

     所以,记住,先是用户规划,再目录规划!!!

    用户规划

          每个节点的hadoop用户组和用户需要大家自己创建,单节点已经讲过,这里就不耽误大家时间。

    依次,对djt11、djt12、djt13、djt14、 djt15进行用户规划,hadoop用户组,hadoop用户

     目录规划

    所有软件目录: /home/hadoop/app

    所有数据和日志目录:/home/hadoop/data

     4、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 主机规划、软件规划、目录规划)

    若是条件有限。则就只搭建3个吧。最开始啊,namenode是存在单点故障问题。从hadoop2.0之后,就设置了热备,防止宕机。

      这里我们使用5 台主机来配置Hadoop集群。

      Journalnode和ZooKeeper保持奇数个,这点大家要有个概念,最少不少于 3 个节点。

    软件规划

    这里啊,我们实现namenode热备和resourcemanger热备。在hadoop2.0之前啊,是没有实现这个功能。hadoop2.2.0只实现namenode热备。在hadoop2.4.0实现了namenode热备和resourcemanger热备,但是不是很稳定,所以,我们这里啊,就使用hadoop2.6.0。

    用户规划

    依次,对djt11、djt12、djt13、djt14、 djt15进行用户规划,hadoop用户组,hadoop用户

    5、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的环境检查 )

    集群安装前的环境检查

      在集群安装之前,我们需要一个对其环境的一个检查。

    时钟同步

      所有节点的系统时间要与当前时间保持一致,查看当前系统时间。

      如果系统时间与当前时间不一致,进行以下操作。

    设置时间格式

    [hadoop@djt12 ~]$ date
    [hadoop@djt12 ~]$ cd /usr/share/zoneinfo/Asia
    [hadoop@djt12 Asia]$ sudo cp Shanghai /etc/localtime 

    安装ntp

    [hadoop@djt12 Asia]$ sudo yum install -y ntp

    [hadoop@djt12 Asia]$ sudo ntpdate pool.ntp.org

    禁用防火墙

      所有节点的防火墙都要关闭。

      依次,对djt11、djt12、djt13、djt14、 djt15进行禁用防火墙

    创建脚本文件

    djt11,all,namenode,zookeeper,resourcemanager,
    djt12,all,slave,namenode,zookeeper,resourcemanager,
    djt13,all,slave,datanode,zookeeper,
    djt14,all,slave,datanode,zookeeper,
    djt15,all,slave,datanode,zookeeper,

    deploy.sh脚本

    #!/bin/bash
    if [ $# -lt 3 ]
    then
            echo "Usage: ./deploy.sh srcFile(or dir) descfile(or dest) MacheineTag"
            echo "Usage: ./deploy.sh srcFile(or dir) descfile(or dest) MacheineTag confFile"
            exit
    fi
    
    src=$1
    dest=$2
    echo $dest
    tag=$3
    if [ 'a'$4'a' == 'aa' ]
    then
            confFile=/home/hadoop/tools/deploy.conf
    else
            confFile=$4
    fi
    
    if [ -f $confFile ]
    then
            if [ -f $src ]
            then
                    for server in `cat $confFile | grep -v '^#' | grep ','$tag',' | awk -F ',' '{print $1}'`
                    do
                            scp -r $src "hadoop"@$server":"${dest}
                    done
            else
                    echo 'Error: No source file exist'
            fi
    else
            echo "error: please assign config file or run deploy.sh"
    
    fi

    runCommandLine

    #!/bin/bash
    if [ $# -lt 2 ]
    then
            echo "Usage:./runRemoteCmd.sh Command MachineTag"
            echo "Usage:./runRemoteCmd.sh Command MachineTag confFile"
            exit
    fi
    cmd=$1
    tag=$2
    if [ 'a'$3'a' == 'aa' ]
    then
            confFile=/home/hadoop/tools/deploy.conf
    else
            confFile=$3
    fi
    
    if [ -f $confFile ]
    then
            for server in `cat $confFile| grep -v '^#'|grep ','$tag','|awk -F ',' '{print $1}'`
            do
                    echo "**********$server*******"
                    ssh $server "source /etc/profile; $cmd"
            done
    fi

    安装文件上传下载lrzsz包

    [hadoop@djt11 src]$ sudo yum install -y lrzsz

    上传jdk-8u121-linux-x64.tar.gz到所有的服务器中

    [hadoop@djt11 tools]$ ./deploy.sh deploy.conf /home/hadoop/app/src/ all

    [hadoop@djt11 tools]$ ./runRemoteCmd.sh 'mv /home/hadoop/app/src/jdk1.8.0_121/ /home/hadoop/app/java8' all

    [hadoop@djt11 tools]$ ./runRemoteCmd.sh "echo JAVA_HOME=/home/hadoop/app/java8 >> ~/.bash_profile; echo 'PATH=$JAVA_HOME/bin:$PATH' >> ~/.bash_profile;echo 'CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> ~/.bash_profile;echo export CLASSPATH JAVA_HOME PATH >> ~/.bash_profile" all

    [hadoop@djt11 tools]$ ./runRemoteCmd.sh "source ~/.bash_profile" all

    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    9 、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的Zookeeper安装)

    Zookeeper安装

    1、将本地下载好的zookeeper-3.4.6.tar.gz安装包,上传至djt11节点下的/home/hadoop/app目录下。

    [hadoop@djt11 tools]$ ./deploy.sh ~/app/src/hadoop-2.6.5.tar.gz  ~/app/src/hadoop-2.6.5.tar.gz slave
    [hadoop@djt11 tools]$ ./runRemoteCmd.sh 'cd ~/app/src;tar -zxvf hadoop-2.6.5.tar.gz' all
    [hadoop@djt11 tools]$ ./runRemoteCmd.sh 'cd ~/app/src;mv hadoop-2.6.5 ../hadoop' all
    [hadoop@djt11 tools]$ ./deploy.sh ~/.bash_profile ~/.bash_profile slave
    [hadoop@djt11 tools]$ ./runRemoteCmd.sh "source ~/.bash_profile" all


     

  • 相关阅读:
    JavaWeb笔记
    Session案例_登录注销
    会话
    Cookie入门
    jsp入门
    if else优化
    cheap-source-map--不显示源码 、source-map--显示源码 、 eval--最快的编译办法
    npm run dev 克隆报错
    $emit和$on的用法
    npm
  • 原文地址:https://www.cnblogs.com/heavenhome/p/6772948.html
Copyright © 2020-2023  润新知