• Hadoop 完全分布式部署


    完全分布式部署Hadoop

    分析:

           1)准备3台客户机(关闭防火墙、静态ip、主机名称)

           2)安装jdk

           3)配置环境变量

           4)安装hadoop

           5)配置环境变量

           6)安装ssh

        7)集群时间同步

           7)配置集群

           8)启动测试集群

    1. 1.      虚拟机准备

    准备三台装有Centos系统的虚拟机,可以参考https://www.cnblogs.com/Transkai/p/10404127.html

    然后对静态ip进行配置,可以参考  https://www.cnblogs.com/Transkai/p/10404253.html

    1. 2.      主机名设置

    0)查看主机名基本语法:

    [root@hadoop-001 /]#hostname

    1)修改linux的hosts文件

    (1)进入Linux系统查看本机的主机名。通过hostname命令查看

    [root@hadoop ~]# hostname

    hadoop-001

    (2)如果感觉此主机名不合适,我们可以进行修改。通过编辑/etc/sysconfig/network文件

    [root@hadoop-001 /]# vi /etc/sysconfig/network

     

    文件中内容

    NETWORKING=yes

    NETWORKING_IPV6=no

    HOSTNAME= hadoop-001

    注意:主机名称不要有“_”下划线

    (3)打开此文件后,可以看到主机名。修改此主机名为我们想要修改的主机名hadoop-001。

    (4)保存退出。

    (5)打开/etc/hosts

    [root@hadoop-001 /]# vim /etc/hosts

    添加如下内容

    192.168.137.188  hadoop001

    (6)并重启设备,重启后,查看主机名,已经修改成功

    2)修改window10的hosts文件

    (1)进入C:WindowsSystem32driversetc路径

    (2)打开hosts文件并添加如下内容

      192.168.137.188 hadoop-001

     

    并按以上步骤配置好hadoop-002,hadoop-003

    1. 3.      安装jdk,Hadoop,配置环境变量

    配置jdk文件

    1、解压jdk软件

           jdk-8u161-linux-x64.tar.gz

    1、配置环境变量

           export JAVA_HOME=/home/hadoop/bigdatasoftware/jdk1.8.0_161

           PATH=$PATH:$JAVA_HOME/bin

     

     

    配置hadoop(本地模式)

    1、解压hadoop软件

            tar -zxvf hadoop-2.7.2.tar.gz

    2、配置hadoop的环境变量

           a、vi ~/.bash_profile

           添加以下内容:

                  export HADOOP_HOME=/home/hadoop/bigdatasoftware/hadoop-2.7.2

                  PATH=$PATH:$HADOOP_HOME/bin:$$HADOOP_HOME/sbin/

     

           b、source ~/.bash_profile

     

    3、hadoop version

           Hadoop 2.7.2

     

     

     

    1. 4.      SSH无密码登录

     

    (1)进入到我的home目录

                  cd  ~/.ssh

    (2)生成公钥和私钥:

    ssh-keygen -t rsa

    然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

    (3)将公钥拷贝到要免密登录的目标机器上

    ssh-copy-id 192.168.1.102

    .ssh文件夹下的文件功能解释

           (1)~/.ssh/known_hosts   :记录ssh访问过计算机的公钥(public key)

           (2)id_rsa    :生成的私钥

           (3)id_rsa.pub    :生成的公钥

           (4)authorized_keys  :存放授权过得无秘登录服务器公钥

     

    1. 5.     配置集群

     

    1)集群部署规划

     

    hadoop-001

    hadoop-002

    hadoop-003

    HDFS

     

    NameNode

    DataNode

     

    DataNode

    SecondaryNameNode

    DataNode

    YARN

     

    NodeManager

    ResourceManager

    NodeManager

     

    NodeManager

    2)配置文件

           (1)core-site.xml

     

     

    <!-- 指定HDFS中NameNode的地址 -->

           <property>

                  <name>fs.defaultFS</name>

            <value>hdfs:// hadoop-001:9000</value>

           </property>

           <!-- 指定hadoop运行时产生文件的存储目录 -->

           <property>

                  <name>hadoop.tmp.dir</name>

                  <value>/opt/module/hadoop-2.7.2/data/tmp</value>

           </property>

           (2)Hdfs

                  hadoop-env.sh

    export JAVA_HOME=/opt/module/jdk1.7.0_79

                  hdfs-site.xml

    <configuration>   

           <property>

                  <name>dfs.replication</name>

                  <value>3</value>

           </property>

           <property>

            <name>dfs.namenode.secondary.http-address</name>

            <value> hadoop-003:50090</value>

        </property>

    </configuration>

                  slaves

    hadoop-001

    hadoop-002

    hadoop-003

           (3)yarn

                  yarn-env.sh

    export JAVA_HOME=/opt/module/jdk1.7.0_79

                  yarn-site.xml

     


    <configuration>

    <!-- Site specific YARN configuration properties -->

    <!-- reducer获取数据的方式 -->
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>

    <!-- 指定YARN的ResourceManager的地址 -->
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop-002</value>
    </property>
    <property>
    <name>yarn.resourcemanager.address</name>
    <value>hadoop-002:8032</value>
    </property>

    <!-- 日志聚集功能使能 -->
    <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    </property>
    <!-- 日志保留时间设置7天 -->
    <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
    </property>

    <property>
    <name>yarn.application.classpath</name>
    <value>
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/etc/hadoop,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/common/*,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/common/lib/*,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/hdfs/*,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/hdfs/lib/*,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/mapreduce/*,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/mapreduce/lib/*,
    /home/hadoop/bigdatasoftware/hbase-2.1.3/lib/*
    </value>
    </property>

    <!-- 任务历史服务器 -->
    <property>
    <name>yarn.log.server.url</name>
    <value>http://hadoop-001:19888/jobhistory/logs/</value>
    </property>

    <!-- 指定yarn在启动的时候的内存大小 -->
    <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>2048</value>
    </property>
    <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>2048</value>
    </property>
    <property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>2.1</value>
    </property>
    <property>
    <name>mapred.child.java.opts</name> <value>-Xmx1024m</value>
    </property>

    <!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true,实际开发中设置成 true,学习阶段设置成 false -->
    <property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
    </property>
    <!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true,实际开发中设置成 true,学习阶段设
    置成 false -->
    <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
    </property>
    </configuration>


                  mapred-env.sh       (4)mapreduce

    export JAVA_HOME=/opt/module/jdk1.7.0_79

                  mapred-site.xml

     


    <configuration>

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

    <property>
    <name>mapred.remote.os</name>
    <value>Linux</value>
    </property>
    <property>
    <name>mapreduce.app-submission.cross-platform</name>
    <value>true</value>
    </property>

    <property>
    <name>mapreduce.application.classpath</name>
    <value>
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/etc/hadoop,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/common/*,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/common/lib/*,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/hdfs/*,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/hdfs/lib/*,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/mapreduce/*,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/mapreduce/lib/*,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/yarn/*,
    /home/hadoop/bigdatasoftware/hadoop-2.7.2/share/hadoop/yarn/lib/*
    </value>
    </property>

    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop-001:10020</value>
    </property>

    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop-001:19888</value>
    </property>

    </configuration>


    6.scp指令 

     

    1)scp可以实现服务器与服务器之间的数据拷贝。

    2)案例实操

    (1)将hadoop-001中/home/hadoop文件拷贝到hadoop-002、hadoop-003上。

    [hadoop@hadoop-001 /]# scp -r /home/hadoop/bigdatasoftware  hadoop@hadoop-002:/home/hadoop/

    [hadoop@hadoop-001 /]# scp -r /home/hadoop/bigdatasoftware  hadoop@hadoop-003:/home/hadoop/

     

     

    (2)将192.168.1.102服务器上的文件拷贝到当前用户下。

    [root@hadoop101 opt]# scp  root@hadoop102:/etc/profile  /opt/tmp/

           (3)实现两台远程机器之间的文件传输(hadoop103主机文件拷贝到hadoop104主机上)

                 [hadoop@hadoop102 test]$ scp hadoop@hadoop103:/opt/test/haha hadoop@hadoop104:/opt/test/

     

    7.集群启动及测试

     

    1)启动集群

           (0)如果集群是第一次启动,需要格式化namenode

                  [root@hadoop-001hadoop-2.7.2]# bin/hdfs namenode -format

    (1)启动HDFS:

    [root@hadoop-001 hadoop-2.7.2]# sbin/start-dfs.sh

    [root@hadoop-001 hadoop-2.7.2]# jps

    4166 NameNode

    4482 Jps

    4263 DataNode

     

    [root@hadoop-002 桌面]# jps

    3218 DataNode

    3288 Jps

     

    [root@hadoop-003 桌面]# jps

    3221 DataNode

    3283 SecondaryNameNode

    3364 Jps

    (2)启动yarn

    sbin/start-yarn.sh

    注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。

    2)集群基本测试

    (1)上传文件到集群

           上传小文件

           bin/hdfs dfs -mkdir -p /home/hadoop/tmp/conf

           bin/hdfs dfs -put etc/hadoop/*-site.xml /home/hadoop/tmp/conf

           上传大文件

    [hadoop@hadoop-001 hadoop-2.7.2]$ bin/hadoop fs -put /opt/software/hadoop-2.7.2.tar.gz  /user/hadoop/input

    (2)上传文件后查看文件存放在什么位置

           文件存储路径

           [hadoop@hadoop102 subdir0]$ pwd

    /opt/module/hadoop-2.7.2/data/tmp/dfs/data/current/BP-938951106-192.168.10.107-1495462844069/current/finalized/subdir0/subdir0

           查看文件内容

    [hadoop@hadoop102 subdir0]$ cat blk_1073741825

    hadoop

    hadoop

    hadoop

    (3)拼接

    -rw-rw-r--. 1 hadoop hadoop 134217728 5月  23 16:01 blk_1073741836

    -rw-rw-r--. 1 hadoop hadoop   1048583 5月  23 16:01 blk_1073741836_1012.meta

    -rw-rw-r--. 1 hadoop hadoop  63439959 5月  23 16:01 blk_1073741837

    -rw-rw-r--. 1 hadoop hadoop    495635 5月  23 16:01 blk_1073741837_1013.meta

    [hadoop@hadoop102 subdir0]$ cat blk_1073741836>>tmp.file

    [hadoop@hadoop102 subdir0]$ cat blk_1073741837>>tmp.file

    [hadoop@hadoop102 subdir0]$ tar -zxvf tmp.file

    (4)下载

    [hadoop@hadoop102 hadoop-2.7.2]$ bin/hadoop fs -get /user/hadoop/input/hadoop-2.7.2.tar.gz

     

    3)性能测试集群

           写海量数据

           读海量数据

     

     

     

    7集群时间同步

    时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每日十分钟,同步一次时间。

    配置时间同步:

    1)时间服务器配置

    (1)检查ntp是否安装

    [root@hadoop102 桌面]# rpm -qa|grep ntp

    ntp-4.2.6p5-10.el6.centos.x86_64

    fontpackages-filesystem-1.41-1.1.el6.noarch

    ntpdate-4.2.6p5-10.el6.centos.x86_64

    (2)修改ntp配置文件

    vi /etc/ntp.conf

    修改内容如下

    a)修改1

    #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为

    restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

                  b)修改2

    server 0.centos.pool.ntp.org iburst

    server 1.centos.pool.ntp.org iburst

    server 2.centos.pool.ntp.org iburst

    server 3.centos.pool.ntp.org iburst为

    #server 0.centos.pool.ntp.org iburst

    #server 1.centos.pool.ntp.org iburst

    #server 2.centos.pool.ntp.org iburst

    #server 3.centos.pool.ntp.org iburst

                  c)添加3

    server 127.127.1.0

    fudge 127.127.1.0 stratum 10

    3)修改/etc/sysconfig/ntpd 文件

    vim /etc/sysconfig/ntpd

    增加内容如下

    SYNC_HWCLOCK=yes

           4)重新启动ntpd

    [root@hadoop102 桌面]# service ntpd status

    ntpd 已停

    [root@hadoop102 桌面]# service ntpd start

    正在启动 ntpd:                                            [确定]

           5)执行:

                  chkconfig ntpd on

    2)其他机器配置(必须root用户)

           (1)在其他机器配置10分钟与时间服务器同步一次

                  [root@hadoop103 hadoop-2.7.2]# crontab -e

                  编写脚本

                  */10 * * * * /usr/sbin/ntpdate hadoop102

           (2)修改任意机器时间

                  date -s "2019-2-26"

           (3)十分钟后查看机器是否与时间服务器同步

                  date

     

  • 相关阅读:
    nexus docker 私有镜像处理
    nexus 使用Raw Repositories 进行maven site 发布
    nexus && minio s3 存储私有镜像
    spring boot 使用spring.resources.static-locations 分离系统模版&&资源文件
    Tencent Server Web 安装试用
    docker could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network
    Tencent Server Web(TSW) 腾讯开源的nodejs 基础设施
    Stream Processing 101: From SQL to Streaming SQL in 10 Minutes
    13 Stream Processing Patterns for building Streaming and Realtime Applications
    Siddhi cep java 集成简单使用
  • 原文地址:https://www.cnblogs.com/Transkai/p/10437124.html
Copyright © 2020-2023  润新知