zoukankan      html  css  js  c++  java
  • haddop3.2.1完全分布式安装

    集群规划

    hdfs结构分析

    1.NameNode 名称节点 master 管理其他节点。需要配置ssh免密管理
    2.DateNode 数据节点
    3.SecondaryNameNode 辅助名称节点

    主机名 ip 作用
    s101 192.168.255.101 NameNode
    s102 192.168.255.102 DateNode
    s103 192.168.255.103 DateNode
    s104 192.168.255.104 DateNode

    配置hosts文件

    需要root权限

    cat >/etc/hosts<<EOF
    127.0.0.1 localhost
    192.168.255.101 s101
    192.168.255.102 s102
    192.168.255.103 s103
    192.168.255.104 s104
    EOF
    

    普通用户ssh免密管理

    s101对所有节点(包括自己)需要免密登录
    在s101上生成公私密钥对,把公钥发给所有节点(包括自己)的认证库中,通信时,公钥加密,私钥解密。

    生成公私密钥对

    #-t 加密算法
    #-P 无密加密
    #-f 指定私钥文件
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    

    对自己实现无密登录,添加公钥到认证库

    cd ~/.ssh
    cat id_rsa.pub >> authorized_keys
    

    修改authorized_keys权限为755

    cd ~/.ssh
    chmod 755 authorized_keys
    

    登录测试

    ssh localhost
    

    使用ssh-copy-id复制当前用户的公钥到远程主机指定用户的认证库中

    ssh-copy-id centos@s102
    #远程登录验证
    ssh centos@s102
    ssh-copy-id centos@s103
    ssh centos@s103
    ssh-copy-id centos@s104
    ssh centos@s104
    

    root用户ssh免密管理

    切换root

    生成公私密钥对

    #-t 加密算法
    #-P 无密加密
    #-f 指定私钥文件
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    

    对自己实现无密登录,添加公钥到认证库

    cd ~/.ssh
    cat id_rsa.pub >> authorized_keys
    

    修改authorized_keys权限为755

    cd ~/.ssh
    chmod 755 authorized_keys
    

    登录测试

    ssh localhost
    

    使用ssh-copy-id复制当前用户的公钥到远程主机指定用户的认证库中

    ssh-copy-id s102
    #远程登录验证
    ssh s102
    ssh-copy-id s103
    ssh s103
    ssh-copy-id s104
    ssh s104
    

    同步/etc/hosts文件

    内容如下

    cat /etc/hosts
    127.0.0.1 localhost
    192.168.255.101 s101
    192.168.255.102 s102
    192.168.255.103 s103
    192.168.255.104 s104
    

    远程复制该文件到所有主机
    root权限

    scp /etc/hosts root@s102:/etc/hosts
    scp /etc/hosts root@s103:/etc/hosts
    scp /etc/hosts root@s104:/etc/hosts
    #可登录查看
    

    s101安装jdk

    root权限

    tar xf jdk-8u201-linux-x64.tar.gz
    ln -s jdk1.8.0_201 jdk
    echo -e '
    #配置java环境变量' >> /etc/profile
    echo -e 'export JAVA_HOME=/opt/jdk' >> /etc/profile
    echo -e 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
    source /etc/profile
    java -version
    

    s101安装hadoop

    wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
    tar xf hadoop-3.2.1.tar.gz
    ln -s hadoop-3.2.1 hadoop
    echo -e '
    #配置hadoop环境变量' >> /etc/profile
    echo -e 'export HADOOP_HOME=/opt/hadoop' >> /etc/profile
    echo -e 'export PATH=$PATH:$HADOOP_HOME/bin' >> /etc/profile
    echo -e 'export PATH=$PATH:$HADOOP_HOME/sbin' >> /etc/profile
    source /etc/profile
    

    授权普通用户

    mkdir -p /opt/module/hadoop/data/tmp
    chown -R centos.centos /opt/*
    

    通过scp同步/opt/文件到其他节点

    
    #复制hadoop
    scp -pdr /opt/hadoop-3.2.1 root@s102:/opt
    scp -pdr /opt/hadoop-3.2.1 root@s103:/opt
    scp -pdr /opt/hadoop-3.2.1 root@s104:/opt
    #软链接需要登录然后创建
    
    #复制jdk
    scp -pdr /opt/jdk1.8.0_201 root@s102:/opt
    scp -pdr /opt/jdk1.8.0_201 root@s103:/opt
    scp -pdr /opt/jdk1.8.0_201 root@s104:/opt
    #软链接
    #软链接需要登录然后创建
    
    复制/etc/profile
    scp -pdr /etc/profile root@s102:/etc
    scp -pdr /etc/profile root@s103:/etc
    scp -pdr /etc/profile root@s104:/etc
    

    创建软链接

    登录s102~s104

    cd /opt/
    ln -s hadoop-3.2.1 hadoop
    ln -s jdk1.8.0_201 jdk
    mkdir -p /opt/module/hadoop/data/tmp
    chown -R centos.centos /opt/*
    

    对s101的hadoop的配置目录创建软链接

    可以实现多种配置并并存

    cd /opt/hadoop/etc
    mv hadoop local
    cp -r local full
    ln -s full hadoop
    

    配置hadoop文件

    core-site.xml

    vim /opt/hadoop/etc/hadoop/core-site.xml

    <configuration>
        <!--指定HDFS中NameNode的址-->
        <property>
        <name>fs.defaultFS</name>
        <value>hdfs://s101:9000</value>
        </property>
        
        <!--指定hadoop运行产生文件(DataNode)的存储目录-->
        <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop/data/tmp</value>
        </property>
    </configuration>
    

    hdfs-site.xml

    vim /opt/hadoop/etc/hadoop/hdfs-site.xml

    <configuration>
    <!--指定HDFS副本数量,这里只设置了一个节点(s101)副本数量为3)-->
            <property>
                    <name>dfs.replication</name>
                    <value>3</value>
            </property>
    </configuration>
    

    hadoop-env.sh

    vim /opt/hadoop/etc/hadoop/hadoop-env.sh

    echo 'export JAVA_HOME=/opt/jdk' >> /opt/hadoop/etc/hadoop/hadoop-env.sh
    

    mapred-site.xml

    vim /opt/hadoop/etc/hadoop/mapred-site.xml

     <configuration>
       <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
      </property>
     </configuration>
    

    yarn-site.xml

    vim /opt/hadoop/etc/hadoop/yarn-site.xml

     <configuration>
       <property>
         <name>yarn.resourcemanager.hostname</name>
           <value>s101</value>
       </property>
       <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
       </property>
     </configuration>
    

    分发目录

    注意:使用centos普通用户启动

    cd /opt/hadoop/
    scp -r etc centos@s102:/opt/hadoop
    scp -r etc centos@s103:/opt/hadoop
    scp -r etc centos@s104:/opt/hadoop
    

    配置从节点

    如果不配置从节点,可能不会启动集群

    cat >>/opt/hadoop/etc/hadoop<<EOF
    s102
    s103
    s104
    

    hadoop逻辑格式化

    注意:在s101上使用centos普通用户启动

    hdfs namenode -format
    

    启动hadoop集群

    start-all.sh
    

    测试hadoop
    ResourceManager是yarn的管理进程
    dataNode和NodeManager是一对

    #查看进程
    jps
    #查看详细信息
    hdfs dfsadmin -report
    #namenode的http端口
    curl http://s101:9870/
    #yarn的http端口
    curl http://s101:8088/
    

    上传文件

    hdfs dfs -mkdir -p /usr/centos/data
    echo hello hadoop > 1.txt
    hdfs dfs -put 1.txt /usr/centos/data
    
  • 相关阅读:
    Go 数组与切片
    Go 常用函数
    Go 函数,包(二)
    函数,包及错误处理
    Go 循环控制
    Go 流程控制
    Go 获取键盘输入,进制转换
    Go 指针,标识符命名规范及关键字
    Go 变量及基本数据类型3
    一文详解微服务架构
  • 原文地址:https://www.cnblogs.com/anyux/p/12013226.html
Copyright © 2011-2022 走看看