大数据生态课堂纪要

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据生态课堂纪要相关的知识,希望对你有一定的参考价值。

Hadoop 概念

  • 分布式的计算框架 可靠 可扩展

  • 可扩展 集群可以上万台,分布式计算 分布式存储

  • 可靠high-availability(HA)

  • Hadoop可以做啥:

    • 数据仓库
      • 数据库一般只保存数据的最新状态,极个别重要的值会保存历史版本
      • 数据仓库 会保存所有的历史版本 只记录 很少更新 删除
    • PB级数据的存储 处理 分析 统计
      • 日志分析
      • 数据挖掘
      • BI

Hadoop组件

  • hadoop common
    • 协调其它组件的通用工具
  • HDFS
    • 分布式文件系统
    • 扩展性&容错性&海量数量存储
    • 数据切成指定大小的数据块进行存储
    • 数据会有冗余(多副本)保存 通过冗余实现容错
  • MapReduce 离线计算
    • 分布式计算框架
    • 数据分布式存储的,需要对分布式存储的数据做分析计算 是移动数据到一个节点 还是 移动计算到每个节点 MapReduce 移动计算
    • 扩展性&容错性&海量数据离线处理
    • 计算分成两个阶段
      • Map 分
      • Reduce 合
  • YARN
    • 资源管理 作业调度
    • 多个框架会用到HDFS上的数据,先后问题,需要有框架来协调 YARN起到了协调作用
    • 另一种资源协调者 Mesos
    • Yarn hadoop 2.0版本才加进来的 hadoop1.* 没有YARN

HDFS

  • 数据冗余 高可用 副本数量也可以指定 3
  • 数据拆分 配置文件中可以指定文件块大小 Block size 128MB
  • A.log 分3份 block-id 001 002 003 副本数3 datnode 1 datanode 5 datanode 7
  • 架构
    • NameNode
      • 响应客户端请求
      • 元数据存储
      • DataNode管理
    • DataNode
      • 数据的存储
      • 和客户端之间io操作
      • 定期向NameNode汇报自身情况
  • NameNode高可用
    • 3台 1台活着 另外两个备份 zookeeper管理
  • hadoop.apache.org

yarn 架构

  • 作用: 协调多个框架共同访问hdfs集群资源
  • 架构:
    • ResourceManager: RM 资源管理器
      • 响应客户端请求
      • 管理NodeManager状态
      • 响应ApplicationMaster的请求
    • NodeManager: NM 节点管理器
      • 管理自身资源
      • 启动container 运行task
      • 响应ApplicationMaster的请求
    • ApplicationMaster: AM
      • 作业解析
      • 向ResourceManager 请求资源
      • 向NodeManager分发task
    • Container 容器: 封装了CPU、Memory等资源的一个容器
    • Client: 客户端提交作业
  • 访问 50070 8088端口失败 可能是防火墙的问题
    • systemctl stop firewalld

MapReduce

  • mapreduce 既是分布式计算框架,也是一个编程模型

  • 解决是数据分布式存储带来的分布式计算问题

  • 把作业通过map阶段下发到每一个数据所在的节点

  • 在reduce阶段汇总map阶段的结果

  • 编程时候 要实现map接口和 reduce接口

  • python脚本来写map reduce代码时,是通过hadoop-streaming去实现的 最终还会编译成.jar文件执行

  • hadoop streaming 执行命令

    STREAM_JAR_PATH="/root/bigdata/hadoop/share/hadoop/tools/lib/hadoop-streaming-2.9.1.jar"    # hadoop streaming jar包所在位置
    INPUT_FILE_PATH_1="/test.txt"  #要进行词频统计的文档在hdfs中的路径
    OUTPUT_PATH="/output"                         #MR作业后结果的存放路径
    
    hadoop fs -rm -r -skipTrash $OUTPUT_PATH    # 输出路径如果之前存在 先删掉否则会报错
    
    hadoop jar $STREAM_JAR_PATH \\   
    		-input $INPUT_FILE_PATH_1 \\ # 指定输入文件位置
    		-output $OUTPUT_PATH \\      #指定输出结果位置
    		-mapper "python mapper.py" \\   #指定mapper执行的程序
    		-reducer "python reducer.py" \\  # 指定reduce阶段执行的程序
    		-file ./map.py \\            # 通过-file 把python源文件分发到集群的每一台机器上  
    		-file ./red.py
    
  • Mrjob 介绍

    • ①写一个类继承MRJob
    • ②重写 mapper 和 reducer方法
    • ③在main方法中 调用MRJob.run()方法 开启整个流程
  • MrJob提交作业的方式

    • 本地测试

      python mrjob代码.py 要处理的数据所在位置
      
    • 提交到Hadoop集群处理

      python word_count.py -r hadoop hdfs:///要统计的文件在hadoop的位置 -o  hdfs:///输出结果保存的位置
      
  • 如果是在虚拟环境下运行mrjob 可能会报错

    • python word_count.py -r hadoop hdfs:///test.txt -o hdfs:///output --python-bin /miniconda2/envs/py365/bin/python
  • 如果mapreduce有多个步骤 可以通过steps方法指定

    实现steps方法用于指定自定义的mapper,comnbiner和reducer方法
        def steps(self):
            return [
                MRStep(mapper=self.mapper,
                       combiner=self.combiner,
                       reducer=self.reducer_sum),
                MRStep(reducer=self.top_n_reducer)
            ]
    
  • Mapreduce 慢的原因

    • 数据处理的时候 频繁的在磁盘和内存上进行数据IO 而不是始终在内存总处理 这些I/0操作导致了速度比较慢
    • buffer in memory:达到80%数据时,将数据锁在内存上,将这部分输出到磁盘上
  • MapReduce的架构演变

    • 1.x的时候
      • JobTracker master 计算集群管理
      • TaskTracker slave 负责具体任务执行的
      • Task Scheduler 作业调度
    • 2.X Yarn出现 作业的调度都交给Yarn处理
      • MapReduce只是进行具体任务执行

Hadoop发型版本选择

  • 社区版
    • XXXXXX.apache.org下载
    • 可以下载到最新的版本
    • 如果涉及到的大数据框架比较多, 版本选择不慎可能会有兼容性问题
  • CDH版
    • 通过统一CDH版本来避免兼容性问题
      • hadoop-2.6.0-cdh-5.7.0 和 Flume*****-cdh5.7.0
      • 只要CDH版本一致就不会存在兼容性问题
    • 缺点:新版本更新比社区版慢
      • 部分内容没有开源

数据分析/数据挖掘技术栈丰富程度

数据分析 sql pandas numpy excel 算法属于加分项 非大数据场景 10~15K

大数据相关的分析 sql pandas numy 大数据技术栈

etl 数据仓库 10~15K

sql pandas numy 大数据技术栈 机器学习算法(原理 应用场景,优化)

数据挖掘 推荐算法 用户画像

15K起

数学/算法的掌握程度

深度学习 nlp

​ 图像

机器学习算法

数学功底比较好

以上是关于大数据生态课堂纪要的主要内容,如果未能解决你的问题,请参考以下文章

大数据课堂实验

关于阿里云centos 2.6下手机表情输入后无法保存到mysql数据库的问题调研及mysql版本从5.1升级到5.7的全过程纪要

会议纪要|社会科学中的文本挖掘

a5能力点技术工具怎么填

第五组第二次冲刺例会纪要 2017/7/12

课堂测验-找水王