hadoop02

72 篇文章 1 订阅
4 篇文章 0 订阅

hadoop
----------------------------------------------------
    1.独立模式(standalone|local)
        nothing!
        本地文件系统。
        不需要启用单独进程。
        主要在测试与调试的时候使用
    2.pesudo(伪分布模式)
        等同于完全分布式,只有一个节点。
        SSH:    //(Socket),
            //public(公钥) + private(私钥)
            //server : sshd :$>ps -Af | grep sshd    //查看sshd进程是否开启
            //client: ssh    
            $>ssh-keygen    //生成公私秘钥。
            //authorized_keys 需要权限为644
            $>ssh IP  //yes
        [配置文件]
            core-site.xml    //配置文件系统fs.defaultFS=hdfs://localhost/

            hdfs-site.xml    //配置副本数replication=1(副本数)

            mapred-site.xml    //配置框架
            yarn-site.xml    //配置资源管理器


    3.full distributed(完全分布式)
        

让命令行提示符显式完整路径
----------------------------------------------------
    1.编辑profile文件,添加环境变量PS1
        [/etc/profile]
        export PS1='[\u@\h `pwd`]\$'    //PS为大写
    
    2.source    
        $>source /etc/profile
    

配置hadoop,使用符号连接的方式,让三种配置形态共存。
----------------------------------------------------
    1.创建三个配置目录,内容等同于hadoop目录//复制时使用递归复制。加参数-r
        ${hadoop_home}/etc/local
        ${hadoop_home}/etc/pesudo
        ${hadoop_home}/etc/full
        
    2.创建符号连接
        $>rm -rf hadoop        //删除之前配置好的hadoop,是用哪个模式时就将那个模式链接为hadoop
        $>ln -s 所要使用的模式配置文件名
    
    3.对hdfs进行格式化
        $>hadoop namenode -format

    4.修改hadoop配置文件,手动指定JAVA_HOME环境变量
        [${hadoop_home}/etc/hadoop/hadoop-env.sh]    //env表示环境
        ...
        export JAVA_HOME=/soft/jdk
        ...

    5.启动hadoop的所有进程
        $>start-all.sh

    6.启动完成后,出现以下进程
        $>jps    //查看所有的java进程,目前我的机子执行该命令时没有显示,有待解决
            33702 NameNode
            33792 DataNode
            33954 SecondaryNameNode

            29041 ResourceManager
            34191 NodeManager

    7.查看hdfs文件系统
        $>hdfs dfs -ls /
    
    8.创建目录
        $>hdfs dfs -mkdir -p /user/centos/hadoop

    9.通过webUI查看hadoop的文件系统
        http://localhost:50070/

    10.停止hadoop所有进程
        $>stop-all.sh

    11.centos防火墙操作
        [cnetos 6.5之前的版本]
  

      $>sudo service firewalld stop        //停止服务
        $>sudo service firewalld start        //启动服务
        $>sudo service firewalld status        //查看状态

        [centos7]
     

   $>sudo systemctl enable firewalld.service    //"开机启动"启用
        $>sudo systemctl disable firewalld.service    //"开机自启"禁用
        $>sudo systemctl start firewalld.service    //启动防火墙
        $>sudo systemctl stop firewalld.service        //停止防火墙
        $>sudo systemctl status firewalld.service    //查看防火墙状态

        [开机自启]
    

    $>sudo chkconfig firewalld    on                //"开启自启"启用
        $>sudo chkconfig firewalld    off                //"开启自启"禁用


hadoop的端口
----------------------------------------------------
    50070        //namenode http port  名称节点端口
    50075        //datanode http port  数据节点端口
    50090        //2namenode http port 辅助名称节点
    8020        //namenode rpc port   名称节点的rpc端口
    50010        //datanode rpc port   数据节点的rpc端口
hadoop四大模块
----------------------------------------------------
    common        //公共模块
    hdfs        //分布式系统模块namenode + datanode + secondarynamenode

    mapred        //
    yarn        //resourcemanager + nodemanager

启动脚本
----------------------------------------------------
    1.start-all.sh        //启动所有进程
    2.stop-all.sh        //停止所有进程

    3.start-dfs.sh        //
    4.start-yarn.sh

    [hdfs]  start-dfs.sh stop-dfs.sh
        NN
        DN
        2NN

    [yarn] start-yarn.sh stop-yarn.sh
        RM
        NM

修改主机名
----------------------------------------------------
    1./etc/hostname
        s201
    2./etc/hosts
        127.0.0.1 localhost
        192.168.231.201 s201
        192.168.231.202 s202
        192.168.231.203 s203
        192.168.231.204 s204

完全分布式
----------------------------------------------------
    1.克隆3台client(centos7)
        右键centos-7-->管理->克隆-> ... -> 完整克隆
    2.启动client
    3.启用客户机共享文件夹。
    4.修改hostname和ip地址文件
        [/etc/hostname]
        s202

        [/etc/sysconfig/network-scripts/ifcfg-ethxxxx]
        ...
        IPADDR=..

    5.重启网络服务
        $>sudo service network restart
    
    6.修改/etc/resolv.conf文件
        nameserver 192.168.231.2
    
    7.重复以上3 ~ 6过程.
        

准备完全分布式主机的ssh
----------------------------------------------------
    1.删除所有主机上的/home/centos/.ssh/*

    2.在s201主机上生成密钥对
        $>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

    3.将s201的公钥文件id_rsa.pub远程复制到202 ~ 204主机上。
      并放置/home/centos/.ssh/authorized_keys

        $>scp id_rsa.pub centos@s201:/home/centos/.ssh/authorized_keys
        $>scp id_rsa.pub centos@s202:/home/centos/.ssh/authorized_keys
        $>scp id_rsa.pub centos@s203:/home/centos/.ssh/authorized_keys
        $>scp id_rsa.pub centos@s204:/home/centos/.ssh/authorized_keys


    
    4.配置完全分布式(${hadoop_home}/etc/hadoop/)
        [core-site.xml]

        <?xml version="1.0" encoding="UTF-8"?>
        <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
        <configuration>
                <property>
                        <name>fs.defaultFS</name>
                        <value>hdfs://s201/</value>
                </property>
        </configuration>

        [hdfs-site.xml]

        <?xml version="1.0" encoding="UTF-8"?>
        <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
        <configuration>
                <property>
                        <name>dfs.replication</name>
                        <value>3</value>
                </property>
        </configuration>


        [mapred-site.xml]
            不变
        
        [yarn-site.xml]

        <?xml version="1.0"?>
        <configuration>
                <property>
                        <name>yarn.resourcemanager.hostname</name>
                        <value>s201</value>
                </property>
                <property>
                        <name>yarn.nodemanager.aux-services</name>
                        <value>mapreduce_shuffle</value>
                </property>
        </configuration>

        [slaves]//配置完后分发给每台机器,内容为数据节点主机名称
        s202
        s203
        s204

        [hadoop-env.sh]
        ...
        export JAVA_HOME=/soft/jdk
        ...

    5.分发配置
        $>cd /soft/hadoop/etc/
        $>scp -r full centos@s202:/soft/hadoop/etc/
        $>scp -r full centos@s203:/soft/hadoop/etc/
        $>scp -r full centos@s204:/soft/hadoop/etc/

    6.删除符号连接
        $>cd /soft/hadoop/etc
        $>rm hadoop
        $>ssh s202 rm /soft/hadoop/etc/hadoop
        $>ssh s203 rm /soft/hadoop/etc/hadoop
        $>ssh s204 rm /soft/hadoop/etc/hadoop

    7.创建符号连接
        $>cd /soft/hadoop/etc/
        $>ln -s full hadoop
        $>ssh s202 ln -s /soft/hadoop/etc/full /soft/hadoop/etc/hadoop
        $>ssh s203 ln -s /soft/hadoop/etc/full /soft/hadoop/etc/hadoop
        $>ssh s204 ln -s /soft/hadoop/etc/full /soft/hadoop/etc/hadoop

    8.删除临时目录文件
        $>cd /tmp
        $>rm -rf hadoop-centos
        $>ssh s202 rm -rf /tmp/hadoop-centos
        $>ssh s203 rm -rf /tmp/hadoop-centos
        $>ssh s204 rm -rf /tmp/hadoop-centos

    9.删除hadoop日志
        $>cd /soft/hadoop/logs
        $>rm -rf *
        $>ssh s202 rm -rf /soft/hadoop/logs/*
        $>ssh s203 rm -rf /soft/hadoop/logs/*
        $>ssh s204 rm -rf /soft/hadoop/logs/*

    10.格式化文件系统
        $>hadoop namenode -format
    
    11.启动hadoop进程
        $>start-all.sh

rsync
----------------------------------------------------
    四个机器均安装rsync命令。
    远程同步.
    $>sudo yum install rsync

将root用户实现无密登录
----------------------------------------------------
    1.同上


编写脚本
----------------------------------------------------
    1.xcall.sh
        创建脚本文件,设置权限为任何人可执行,当远程命令无法执行时是因为所执行的命令不在其主机的环境变量下
        例如:jps命令在通过远程登录命令ssh执行$>ssh hadoop02 jps时会报错,command not found 
        通过$>which jps命令查找到jps所在位置,并在其主机中建立环境变量下对该命令的符号链接
        $>cd usr/local/bin
        $>sudo ln -s /soft/jdk/bin/jps jps
        $>ssh hadoop02 jps    //测试成功        编写xcall.sh,实现对对其他主机一次性执行同一命令    
        xcall.sh脚本内容如下

        #!/bin/bash
        #program
        #    this program is to execute command in all host
        #history
        #    2019.11.11    20:54    by    xwg
        PATH=/bin/:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
        export PATH

        p=$@
        for((i = 1; i <= 4 ; i = $i + 1));
            do
                echo -----------hadoop0$i-----------
                ssh hadoop0$i $p
            done;


        知识点:$@ : 接收所有参数    $#:参数个数    $? :上次命令的执行结果        $0:文件命令    $1/2/3 : 表示第1/2/3个参数    shift:向左移动    2.xsync.sh    //复制本地文件到其他主机的相同路径
    脚本内容如下:

        #!/bin/bash
        #program
        #    this program is copy file to others hosts by rsync
        #history
        #    2019.1.11    23:43    by    xwg

        PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
        export PATH

        params=$1
        dirname=`dirname $params`
        filename=`basename $params`
        fullname=`pwd -P .`        //大写P

        if[[ $# -lt 1 ]] ;then exit;fi
        for(( i = 2 ; i <= 4 ; i = $i + 1 ));
            do
            echo --------hadoop0$i--------
            rsync -lr $params `whoami`@hadoop0$i:fullname
            done;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值