首页 > 其他分享 >第五周周总结

第五周周总结

时间:2022-08-29 11:46:36浏览次数:84  
标签:总结 xml rsync 第五 hadoop Hadoop 周周 site 节点

下周接着学习hadoop
一、 大数据简介

1. 大数据的定义

⼤数据是指⽆法在⼀定时间范围内⽤常规软件⼯具进⾏捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策⼒、洞察发现⼒和流程优化能⼒的海量、⾼增⻓率和多样化的信息资产。

    • 大量
      采集、存储和计算的数据量都⾮常⼤。大数据领域数据量基本上以PB为最小单位,而PB级数据量有多⼤?是怎样的⼀个概念?
      假如⼿机播放MP3的速度为平均每分钟1MB,⽽1⾸歌曲的平均时⻓为4分钟,那么1PB存量的歌 曲可以连续播放2000年。
      1PB 也相当于50%的全美学术研究图书馆藏书咨询内容。
      基于IDC的报告预测,从2013年到2020年,全球数据量会从4.4ZB猛增到44ZB!⽽到了2025 年,全球会有163ZB的数据量!根据存储单位换算,1ZB = 1024 * 1024PB,所以全球的数据量已经⼤到爆了!⽽传统的关系型数据库根本处理不了如此海量的数据!
    • 高速
      在⼤数据时代,数据的创建、存储、分析都要求被⾼速处理,⽐如电商⽹站的个性化推荐尽可能要 求实时完成推荐,这也是⼤数据区别于传统数据挖掘的显著特征。
    • 多样
      数据形式和来源多样化。包括结构化、半结构化和⾮结构化数据,具体表现为⽹络⽇志、⾳频、视频、图⽚、地理位置信息等等,多类型的数据对数据的处理能⼒提出了更⾼的要求。
    • 真实
      确保数据的真实性,才能保证数据分析的正确性
    • 低价值
      数据价值密度相对较低,或者说是浪⾥淘沙却⼜弥⾜珍贵。互联⽹发展催⽣了⼤量数据,信息海 量,但价值密度较低,如何结合业务逻辑并通过强⼤的机器算法来挖掘数据价值,是⼤数据时代最 需要解决的问题,也是⼀个有难度的课题。

      3. 大数据的应用场景

      随着⼤数据的发展,⼤数据技术已经⼴泛应⽤在众多⾏业,⽐如仓储物流、电商零售、汽⻋、电信、⽣物医学、⼈⼯智能、智慧城市等等领域,包括在疫情防控战中,⼤数据技术也发挥了重要的作⽤。

      • 仓储物流
      • 电商零售
      • 个性推荐
      • “双十一购物节”实时销售额大屏
      • 汽车无人驾驶领域
      • 电信
      • 生物医学
      • 人工智能
      • 智慧城市

        1. 什么是Hadoop

        Hadoop 是⼀个适合⼤数据的分布式存储和计算平台。

        从狭义上讲: Hadoop 就是一个框架平台,它包括以下三部分:

        • HDFS:分布式文件系统
        • Map Reduce:分布式离线计算框架。负责计算
        • Yarn:分布式资源调度框架,负责资源调度

        由此我们可以得出,狭义上的Hadoop解决的是海量数据的存储和离线计算

        从广义上讲: Hadoop不仅仅包括狭义上的内容,还包括其他辅助框架,实际上指的是一个大数据生态圈,例如:

        • Flume:日志数据采集
        • Sqoop:关系型数据库数据采集(ETL工具
        • Hive:数据仓库工具
        • Kafka:高吞吐消息中间件
        • HBase:海量列式非关系型数据库

          Hadoop的发行版本

          ⽬前Hadoop发⾏版⾮常多,在企业中主要⽤到的三个版本分别是:Apache Hadoop版本(最原始的,所有发⾏版均基于这个版 本进⾏改进)、Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”)、 Hortonworks版本(Hortonworks Data Platform,简称“HDP”)。

            • Apache Hadoop 原始版本
              官⽹地址:http://hadoop.apache.org/
              优点:拥有全世界的开源贡献,代码更新版本⽐较快
              缺点:版本的升级,版本的维护,以及版本之间的兼容性,学习⾮常⽅便
              Apache所有软件的下载地址(包括各种历史版本):http://archive.apache.org/dist/
            • 软件收费版本ClouderaManager CDH版本 --⽣产环境使⽤
              官⽹地址:https://www.cloudera.com/
              Cloudera主要是美国⼀家⼤数据公司在Apache开源Hadoop的版本上,通过⾃⼰公司内部的各种 补丁,实现版本之间的稳定运⾏,⼤数据⽣态圈的各个版本的软件都提供了对应的版本,解决了版 本的升级困难,版本兼容性等各种问题,⽣产环境强烈推荐使⽤
            • 免费开源版本HortonWorks HDP版本--⽣产环境使⽤
              官⽹地址:https://hortonworks.com/
              Hortonworks主要是雅⻁主导Hadoop开发的副总裁,带领 ⼆⼗⼏个核⼼成员成⽴Hortonworks,核⼼产品软件HDP(ambari),HDF免费开源,并且提供 ⼀整套的web管理界⾯,供我们可以通过web界⾯管理我们的集群状态
              web管理界⾯软件HDF⽹ 址(http://ambari.apache.org/

          Hadoop的优点

              • Hadoop具有存储和处理数据能⼒的⾼可靠性。
              • Hadoop通过可⽤的计算机集群分配数据,完成存储和计算任务,这些集群可以⽅便地扩展到数以千计的节点中,具有⾼扩展性。
              • Hadoop能够在节点之间进⾏动态地移动数据,并保证各个节点的动态平衡,处理速度⾮常快,具有⾼效性。
              • Hadoop能够⾃动保存数据的多个副本,并且能够⾃动将失败的任务重新分配,具有⾼容错性。

          Hadoop的缺点

            • Hadoop不适⽤于低延迟数据访问。
            • Hadoop不能⾼效存储⼤量⼩⽂件。
            • Hadoop不⽀持多⽤户写⼊并任意修改⽂件。
              • NameNode(nn): 存储⽂件的元数据,⽐如⽂件名、⽂件⽬录结构、⽂件属性(⽣成时间、副本 数、⽂件权限),以及每个⽂件的块列表和块所在的DataNode等。
              • SecondaryNameNode(2nn):辅助NameNode更好的⼯作,⽤来监控HDFS状态的辅助后台程 序,每隔⼀段时间获取HDFS元数据快照。
              • DataNode(dn): 在本地⽂件系统存储⽂件块数据,以及块数据的校验
                • ResourceManager(rm): 处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资 源分配与调度;
                • NodeManager(nm): 单个节点上的资源管理、处理来⾃ResourceManager的命令、处理来⾃ ApplicationMaster的命令;
                • ApplicationMaster(am): 数据切分、为应⽤程序申请资源,并分配给内部任务、任务监控与容错。
                • Container: 对任务运⾏环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运 ⾏相关的信息。
                • ResourceManager是⽼⼤,NodeManager是⼩弟,ApplicationMaster是计算任务专员。
                    • 软件和操作系统版本
                      • Hadoop框架是采⽤Java语⾔编写,需要java环境(jvm)
                      • JDK版本:JDK8版本

                    • Hadoop搭建方式
                      • 单机模式:单节点模式,⾮集群,⽣产不会使⽤这种⽅式
                      • 单机伪分布式模式:单节点,多线程模拟集群的效果,⽣产不会使⽤这种⽅式
                      • 完全分布式模式:多台节点,真正的分布式Hadoop集群的搭建(⽣产环境建议使⽤这种⽅式)

                  安装Hadoop

                      1. 登录linux121节点;进⼊/opt/lagou/software,解压安装⽂件到/opt/lagou/servers
                        tar -zxvf hadoop-2.9.2.tar.gz -C /opt/lagou/servers

                      2. 添加Hadoop到环境变量 vim /etc/profile
                        # HADOOP_HOME
                        export HADOOP_HOME=/opt/lagou/servers/hadoop-2.9.2
                        export PATH=$PATH:$HADOOP_HOME/bin
                        export PATH=$PATH:$HADOOP_HOME/sbin

                      3. 使环境变量⽣效
                        source /etc/profile

                      4. 验证hadoop
                        hadoop version

                  1:bin⽬录:对Hadoop进⾏操作的相关命令,如hadoop,hdfs等
                  2:etc⽬录:Hadoop的配置⽂件⽬录,⼊hdfs-site.xml,core-site.xml等
                  3:lib⽬录:Hadoop本地库(解压缩的依赖)
                  4:sbin⽬录:存放的是Hadoop集群启动停⽌相关脚本,命令
                  5:share⽬录:Hadoop的⼀些jar,官⽅案例jar,⽂档等

                  Hadoop集群配置 = HDFS集群配置 + MapReduce集群配置 + Yarn集群配置

                  • HDFS集群配置
                  1. 将JDK路径明确配置给HDFS(修改hadoop-env.sh)
                  2. 指定NameNode节点以及数据存储⽬录(修改core-site.xml)
                  3. 指定SecondaryNameNode节点(修改hdfs-site.xml)
                  4. 指定DataNode从节点(修改etc/hadoop/slaves⽂件,每个节点配置信息占⼀⾏)
                  • MapReduce集群配置
                  1. 将JDK路径明确配置给MapReduce(修改mapred-env.sh)
                  2. 指定MapReduce计算框架运⾏Yarn资源调度框架(修改mapred-site.xml)
                  • Yarn集群配置
                  1. 将JDK路径明确配置给Yarn(修改yarn-env.sh)
                  2. 指定ResourceManager⽼⼤节点所在计算机节点(修改yarn-site.xml)
                  3. 指定NodeManager节点(会通过slaves⽂件内容确定)

                  4.1 HDFS集群配置

                  • 进入配置文件目录
                    cd /opt/lagou/servers/hadoop-2.9.2/etc/hadoop
                  1. 配置:hadoop-env.sh
                    将JDK路径明确配置给HDFS
                    vim hadoop-env.sh

                    # 增加以下内容
                    export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_231

                  2. 指定NameNode节点以及数据存储⽬录(修改core-site.xml)
                    官方默认配置:https://hadoop.apache.org/docs/r2.9.2/hadoop-project-dist/hadoop-common/core-default.xml
                    官方默认hdfs的RPC端口号是 8020,这里改为9000
                    vim core-site.xml

                    # 增加以下内容
                    <!-- 指定HDFS中NameNode的地址 -->
                    <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://linux121:9000</value>
                    </property>

                    <!-- 指定Hadoop运⾏时产⽣⽂件的存储⽬录 -->
                    <property>
                    <name>hadoop.tmp.dir</name>
                    <value>/opt/lagou/servers/hadoop-2.9.2/data/tmp</value>
                    </property>

                  3. 指定secondarynamenode节点(修改hdfs-site.xml)
                    官方默认配置:https://hadoop.apache.org/docs/r2.9.2/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
                    vim hdfs-site.xml

                    # 增加以下内容
                    <!-- 指定Hadoop辅助名称节点主机配置 -->
                    <property>
                    <name>dfs.namenode.secondary.http-address</name>
                    <value>linux123:50090</value>
                    </property>

                    <!--副本数量 -->
                    <property>
                    <name>dfs.replication</name>
                    <value>3</value>
                    </property>

                  4. 指定datanode从节点(修改slaves⽂件,每个节点配置信息占⼀⾏)
                    vim slaves

                    # 增加以下内容
                    linux121
                    linux122
                    linux123

                    注:该⽂件中添加的内容结尾不允许有空格,⽂件中不允许有空⾏

                  4.2 MapReduce集群配置

                  1. 指定MapReduce使⽤的jdk路径(修改mapred-env.sh)
                    vim mapred-env.sh

                    # 增加以下内容
                    export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_231

                  2. 指定MapReduce计算框架运⾏Yarn资源调度框架(修改mapred-site.xml)
                    官方默认配置:https://hadoop.apache.org/docs/r2.9.2/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
                    # 复制一份mapred-site.xml.template并改名为mapred-site.xml
                    cp mapred-site.xml.template mapred-site.xml

                    # 修改mapred-site.xml
                    vim mapred-site.xml

                    # 增加以下内容
                    <!-- 指定MR运⾏在Yarn上 -->
                    <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
                    </property>

                  4.3 Yarn集群配置

                  1. 指定JDK路径
                    vim yarn-env.sh

                    # 增加以下内容
                    export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_231

                  2. 指定ResourceMnager的master节点信息(修改yarn-site.xml)
                    官方默认配置:https://hadoop.apache.org/docs/r2.9.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
                    vim yarn-site.xml

                    # 增加以下内容
                    <!-- 指定YARN的ResourceManager的地址 -->
                    <property>
                    <name>yarn.resourcemanager.hostname</name>
                    <value>linux123</value>
                    </property>

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

                  3. 指定NodeManager节点
                    在HDFS配置时已经配置了slaves⽂件,此时无需配置

                  注意:

                  Hadoop安装⽬录所属⽤户和所属⽤户组信息,默认是501 dialout,⽽我们操作Hadoop集群的⽤户使⽤的是虚拟机的root⽤户

                  所以为了避免出现信息混乱,修改Hadoop安装⽬录所属⽤户和⽤户组!!

                  chown -R root:root /opt/lagou/servers/hadoop-2.9.2

                  4.4 分发配置

                  4.4.1 rsync 远程同步⼯具

                  • rsync主要⽤于备份和镜像。具有速度快、避免复制相同内容和⽀持符号链接的优点。
                  • rsync和scp区别:
                    • rsync做⽂件的复制要⽐scp的速度快
                    • rsync只对差异⽂件做更新。scp是把所有⽂ 件都复制过去
                  • rsync基本语法
                  • rsync -rvl $pdir/$fname $user@$host:$pdir/$fname
                  • 命令 选项参数 要拷⻉的⽂件路径/名称 ⽬的⽤户@主机:⽬的路径/名称
                  • 选项参数说明
                  1. -r :递归
                  2. -v:显示复制过程
                  3. -l:拷⻉符号连接
                  • rsync案例
                  1. 三台虚拟机安装rsync (执⾏安装需要保证机器联⽹)
                    yum install -y rsync
                  2. 把linux121机器上的/opt/lagou/software⽬录同步到linux122服务器的root⽤户下的/opt/⽬录
                    rsync -rvl /opt/lagou/software/root@linux122:/opt/lagou/software

                  4.4.2 集群分发脚本编写

                  1. 需求:循环复制⽂件到集群所有节点的相同⽬录下
                    rsync命令原始拷⻉:rsync -rvl /opt/module root@linux123:/opt/
                  2. 期望脚本:脚本+要同步的⽂件名称
                  3. 说明:在/usr/local/bin这个⽬录下存放的脚本,root⽤户可以在系统任何地⽅直接执⾏。
                  4. 脚本实现
                  • 在/usr/local/bin⽬录下创建⽂件rsync-script
                    touch rsync-script
                  • 在⽂件中编写shell代码vim rsync-script
                    #!/bin/bash

                    #1 获取命令输⼊参数的个数,如果个数为0,直接退出命令
                    paramnum=$#
                    if((paramnum==0)); then
                    echo no params;
                    exit;
                    fi

                    #2 根据传⼊参数获取⽂件名称
                    p1=$1
                    file_name=`basename $p1`
                    echo fname=$file_name

                    #3 获取输⼊参数的绝对路径
                    pdir=`cd -P $(dirname $p1); pwd`
                    echo pdir=$pdir

                    #4 获取⽤户名称
                    user=`whoami`

                    #5 循环执⾏rsync
                    for((host=121; host<124; host++)); do
                    echo ------------------- linux$host --------------
                    rsync -rvl $pdir/$file_name $user@linux$host:$pdir
                    done

                    命令细节说明:
                    • basename 命令可取得文件的文件名,如:
                      basename /usr/local/bin/rsync-script,则结果是rsync-script
                    • dirname 命令可取得文件所在目录,如:
                      dirname /usr/local/bin/rsync-script ,则结果是/usr/local/bin
                    • 在脚本文件中要用 这对符号 `` 获取命令的结果,然后才能赋值给变量 ,如:
                      file_name=`basename $p1`
                    • 在以下脚本中,如果拷贝文件的时候,文件名不带路径,那么 dirname 命令得到的结果是 . ,表示当前目录。可以在此命令基础上再加一条命令:cd -P ,表示进入物理路径,如:cd -P . ,此时会进入该目录中,然后通过 pwd 打印出当前目录,即可获得该文件所在目录的路径,以下是一个例子:
                      pdir=`cd -P $(dirname $p1); pwd`
                  • 修改脚本 rsync-script 的执行权限
                    chmod 777 rsync-script
                  • 调⽤脚本形式:rsync-script ⽂件名称
                    rsync-script /usr/local/bin/rsync-script
                  • 调⽤脚本分发Hadoop安装⽬录到其它节点
                    rsync-script /opt/lagou/servers/hadoop-2.9.2

标签:总结,xml,rsync,第五,hadoop,Hadoop,周周,site,节点
From: https://www.cnblogs.com/zhuzhurr/p/16635371.html

相关文章

  • 自学Spring总结(一)
    时间8.21~8.29:学习地址:https://www.bilibili.com/video/BV1Fi4y1S7ix?vd_source=4c28ca46991bee2f1a75ed5785edf2c4  黑马程序员2022最新SSM框架教程Spring系统架构......
  • 学习:python进阶 基本数据类型总结
    【按存值个数】标量/原子类型容器类型数字,字符串列表,元组,字典,集合   【可变/不可变】可变不可变列表、字典、集合数字、字符串、元组 ......
  • springboot知识点总结
    原文地址:https://www.cnblogs.com/lidar/p/15913128.html一、springboot总结1、概述springboot是一种快速使用spring框架的简便方式,springboot简单来说相当于一个程序搭建......
  • 周六总结(8-29)
    先说总结:上周抓不到做事节奏、失去编程兴趣,周末可以做的都不想做,只想堕落一天这个周六因为去了老哥家做客,所以在周一早上写总结,这周末其实就是周六去做客、周日一直在家玩......
  • Git中的操作总结
    当对一个文件进行跟踪后,然后本地文件又被修改了,这时如果我们想要回到被跟踪时的文件状态,输入命令(gitcheckout--文件名),这个命令只能回退上一次修改,即最近被跟踪的该文件,不......
  • 2022暑假集训新学知识点总结
    新学知识点图论树1、树链剖分(求lca,dfs序等)2、倍增lca流1、Dinic最大流2、匈牙利二分图最大匹配其他1、spfa最短路判负环字符串1、后缀自动机SAM2、回文自动......
  • 软件测试岗位,面试经验总结
    昨天面试了中软的某丰项目外包的自动化测试岗位:1.做一段英文自我介绍姓名,年龄,常驻地址,工作经历2,用英文回答:你在公司做测试的流程参加需求会议,制定测试计划,接口测......
  • 算法总结
    1.序列化与反序列化二叉树序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算......
  • 【博学谷学习记录】超强总结,用心分享。SSM框架的注解开发
    1.MyBatis使用的注解@Select注解:查询操作的,加在声明方法上@Insert注解:插入操作@Update注解:更新操作@Delect注解:删除操作@Param注解:作用是给参数......
  • 825周总结
    目录前端一、前端与后端的概念二、前端的核心基础三、超文本传输协议1.四大特性2.数据格式3.响应状态码四、HTML1.简介2.语法3.head内常见标签4.body内部标签5.块级标签和......