Hadoop复习(二) --- Centos下安装和配置hadoop的伪分布式和完全分布式

一、安装jdk
--------------------------------------------------------------------------------------------
    1.安装jdk
        a)下载jdk-8u65-linux-x64.tar.gz
        b)tar开
            $>su centos ; cd ~
            $>mkdir downloads
            $>cp /mnt/hdfs/downloads/bigdata/jdk-8u65-linux-x64.tar.gz ~/downlooads
            $>tar -xzvf jdk-8u65-linux-x64.tar.gz
        c)创建/soft文件夹
            $>sudo mkdir /soft
            $>sudo chown centos:centos /soft
        d)移动tar开的文件到/soft下
            $>mv ~/downloads/jdk-1.8.0_65 /soft/
        e)创建符号连接
            $>ln -s /soft/jdk-1.8.0_65 /soft/jdk
        f)验证jdk安装是否成功
            $>cd /soft/jdk/bin
            $>./java -version


二、修改centos配置环境变量
----------------------------------------------------------------------------------------
    1.编辑/etc/profile
        $>sudo nano /etc/profile
        ...
        export JAVA_HOME=/soft/jdk
        exprot PATH=$PATH:$JAVA_HOME/bin
    2.使环境变量即刻生效
        $>source /etc/profile
    
    3.进入任意目录下,测试是否ok
        $>cd ~
        $>java -version


三、安装hadoop
----------------------------------------------------------------------------------------------
    1.安装hadoop
        a)下载hadoop-2.7.3.tar.gz
        b)tar开
            $>su centos ; cd ~
            $>cp /mnt/hdfs/downloads/bigdata/hadoop-2.7.3.tar.gz ~/downloads
            $>tar -xzvf hadoop-2.7.3.tar.gz
        c)无
        d)移动tar开的文件到/soft下
            $>mv ~/downloads/hadoop-2.7.3 /soft/
        e)创建符号连接
            $>ln -s /soft/hadoop-2.7.3 /soft/hadoop
        f)验证jdk安装是否成功
            $>cd /soft/hadoop/bin
            $>./hadoop version
    
    2.配置hadoop环境变量
        $>sudo nano /etc/profile
        ...
        export JAVA_HOME=/soft/jdk
        exprot PATH=$PATH:$JAVA_HOME/bin

        export HADOOP_HOME=/soft/hadoop
        export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    3.生效
        $>source /etc/profile


四、配置hadoop伪分布式
--------------------------------------------------------------------------------------------------------
    1.standalone(local)
        nothing !
        不需要启用单独的hadoop进程。
    
    2.Pseudodistributed mode
        伪分布模式。
        a)进入${HADOOP_HOME}/etc/hadoop目录
        b)编辑core-site.xml
            <?xml version="1.0"?>
            <configuration>
                <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://localhost/</value>
                </property>
            </configuration>
        c)编辑hdfs-site.xml
            <?xml version="1.0"?>
            <configuration>
                <property>
                    <name>dfs.replication</name>
                    <value>1</value>
                </property>
            </configuration>
        d)编辑mapred-site.xml
            注意:cp mapred-site.xml.template mapred-site.xml
            <?xml version="1.0"?>
            <configuration>
                <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
                </property>
            </configuration>
        e)编辑yarn-site.xml
            <?xml version="1.0"?>
            <configuration>
                <property>
                    <name>yarn.resourcemanager.hostname</name>
                    <value>localhost</value>
                </property>
                <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
                </property>
            </configuration>

        f)配置SSH
            1)检查是否安装了ssh相关软件包(openssh-server + openssh-clients + openssh)
                $yum list installed | grep ssh

            2)检查是否启动了sshd进程
                $>ps -Af | grep sshd
            
            3)在client侧生成公私秘钥对。
                $>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
            
            4)生成~/.ssh文件夹,里面有id_rsa(私钥) + id_rsa.pub(公钥)

            5)追加公钥到~/.ssh/authorized_keys文件中(文件名、位置固定)
                $>cd ~/.ssh
                $>cat id_rsa.pub >> authorized_keys
            
            6)修改authorized_keys的权限为644.
                $>chmod 644 authorized_keys
            
            7)测试
                $>ssh localhost


五、配置hadoop完全分布式
----------------------------------------------------------------------------------------------------
1.克隆3台client(centos7)
    右键centos-7-->管理->克隆-> ... -> 完整克隆

2.启动client

3.启用客户机共享文件夹。

4.修改hostname和ip地址文件
    a./etc/hostname
        s201 ...

    b./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
  ...

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

5.重启网络服务
    $>sudo service network restart
    
6.修改/etc/resolv.conf文件
    nameserver 192.168.231.2
    
7.重复以上3 ~ 6过程.将所有的客户机全部修改

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

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

    c.将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
    
    d.配置完全分布式(${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
        ...

    e.分发配置
        $>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/

    f.删除符号连接
        $>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

    g.创建符号连接
        $>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

    h.删除临时目录文件
        $>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

    i.删除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/*

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

六、配置hadoop,使用符号连接的方式,让三种配置形态共存。
-----------------------------------------------------------------------------------------------------
    1.创建三个配置目录,内容等同于hadoop目录
        ${hadoop_home}/etc/local
        ${hadoop_home}/etc/pesudo
        ${hadoop_home}/etc/full
        
    2.创建符号连接
        $>ln -s 
    
    3.对hdfs进行格式化
        $>hadoop namenode -format

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

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

    6.启动完成后,出现以下进程
        $>jps
            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


七、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                //"开启自启"禁用        


八、配置SSH
------------------------------------------------------------------------------------------------
    生成密钥对$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    添加认证文件$>cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
    权限设置,文件和文件夹权限除了自己之外,别人不可写。$>chmod 700 ~/.ssh$>chmod 644 ~/.ssh/authorized_keys


九、no route 问题
-------------------------------------------------------------------------------------------
    关闭防火墙。
    $>su root
    $>xcall.sh "service firewalld stop"
    $>xcall.sh "systemctl disable firewalld"

猜你喜欢

转载自blog.csdn.net/xcvbxv01/article/details/82258267