学习大纲

前置知识:

  • java基础
  • linux基本操作
  • mysql基本操作

开发工具:

IDEA

环境参数:

  • CDH(5.15.1)

大数据定义:

大数据4V特征:

  • 数据量大
  • 速度快
  • 多样性,复杂性
  • 基于高度分析的新价值

大数据带来的技术变革:

  • 技术驱动: 数据量大

    • 存储:文件储存==> 分布式存储
    • 计算:单机 ==> 分布式计算
    • 网络:万兆
    • DB :RDBMS(mysql) ==> NoSQL(HBase/Redis)
  • 商业驱动:

大数据现存模式

  • 手握大数据,没有大数据思维(电信,政府,国企啊)
  • 没有大数据,有大数据思维(利用别人的数据做分析)
  • 既有大数据,又有大数据思维(谷歌,亚马逊,阿里)

大数据的技术概念

  • 单机:CPU Memory Disk
  • 分布式并行计算/处理:

1.数据采集 :Flume Sqoop

2.数据处理,分析,挖掘:Hadoop,Spark,Flink …

3.数据存储 :Hadoop

4.可视化:

船的选择:

  • 廉价
  • 中高价值

运输过程拆开

  • 货物搬到船上: 数据采集 数据存储
  • 处理: 小于多少的石头扔了 精细化的筛选

大数据带来的挑战:

  • 对现有数据库管理技术的挑战

  • 经典的数据库没有考虑数据的多类别

  • 实时性的技术挑战

  • 网络架构,数据中心,运维的挑战

    • 数据隐私
    • 数据源的复杂多样

如何对大数据进行存储和分析

  • 系统瓶颈

    • 存储容量
    • 读写速度
    • 计算效率
  • Google大数据计算
    • MapReduce :计算
    • BigTable :存储
    • GFS :文件系统
  • 大数据典型应用
    • count/sum/avg
    • group by/join
    • 窗口分析函数
    • 欺诈/异常检测
    • 人工智能
    • 报表
    • 用户细分(标签)
    • 指标监控
    • 指标预警

Hadoop

  • Hadoop概述

    • 名字由来:作者:Doug cutting : Nutch,Hadoop (玩具的命名)
    • 学习一个新的框架,自己查看该项目的官方网址
    • Hadoop
    • Hive
    • Apache社区的顶级项目: xxx.apache.org
      • hadoop.apache.org
      • hive.apache.org
      • spark.apache.org
    • reliable, scalable,distributed,computing. (可靠,可扩展,分布式,计算)
  • Hadoop核心组件

    • Hadoop Common
    • Hadoop Distributed FIle System(HDFS) :实现将文件分布式存储在很多的服务器上
    • Hadoop YARN :(job secheduling cluster resource management):
    • Hadoop MapReduce: 实现机器上分布式计算
  • Hadoop优势

    • 高可靠性

      • 数据存储:数据块多副本

      • 数据计算:重新调度作业计算

      • 高扩展性:横向扩展集群,一个集群中可以包含数以千集的节点

      • 成熟的生态圈

      • 降低成本:存储在廉价的机器上(去IoE)

  • Hadoop发展史 :每个版本加入了什么功能

    • hadoop十年发展史
  • Hadoo生态系统 :

    • 广义

      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jO3TH90w-1585626536778)(C:\Users\15209\Pictures\博客\images\大数据05.jpg)]
      • Hadoop 生态系统
        • 开源,社区活跃
        • 囊括了大数据处理的方方面面
        • 成熟的生态圈
      • 生态系统的每一个子系统只解决一个
    • 狭义
    • HDFS
    • YARN
    • MapReduce
  • Hadoop发行版的选择

    • Apache

      • 纯开源
      • 不同版本/不同框架之间整合 jar冲突非常多 。。。
      • 生产上不建议
    • CDH :https://www.cloudera.com 60%-70%
      • cm(cloudera manager) 通过页面一键安装各种框架,升级方便
      • 与spark结合非常紧密,文档非常详细,支持impala
      • cm不开源,与社区版本有些许出入
    • Hortonworks : HDP 企业发布自己的数据平台可以直接基于页面框架进行改造
      • 优点:原装Hadoop,纯开源支持tez
      • 企业级不开源

Hadoop:

  • 提供分布式存储(一个文件被拆分成很多块,并且以副本的方式存储在各个节点中)和计算,
  • 是一个分布式的系统集成架构:用户可以在不了解分布式底层细节的情况下使用

HDFS(分布式文件系统,数据存储框架):

  • HDFS是GFS的克隆版
  • HDFS特点:扩展性 & 容错性 &海量数量存储
  • HDFS将文件切分成指定大小的数据块,并以多副本的方式存储在机器上面
  • 文件:test.log 200M
  • 块:默认的blocksize是128M,2个块=1个128M+1个72M

MapReduce(分布式数据计算框架):

  • 特点:可扩展 & 容错性&海量数据离线处理
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rSTll5er-1585626536781)(C:\Users\15209\Pictures\博客\images\大数据图片03.jpg)]

YARN (资源调度系统):

  • 负责整个集群资源的管理和调度
  • 扩展性&容错性&多框架资源统一调度
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qHkj8szJ-1585626536785)(C:\Users\15209\Pictures\博客\images\大数据04.jpg)]

HDFS 概述:

  • 分布式
  • commodity hardware
  • 容错性
  • 高吞吐量
  • 使用于大的数据集

文件系统:linux,Windows,MAC。。。

  • 目录结构
  • 存放文件或者文件夹
  • 对外提供服务:创建,修改,删除,查看,移动

普通文件系统 VS 分布式文件系统

​ 单机

​ 分布式文件系统能横跨N个机器

HDFS前提和设计目标:

  • Hardware failure

    • 每个机器只存储文件部分数据,blocksize=128M
    • block存放在不同的机器上,HDFS默认采用3副本机制
  • Streaming Data Access
    • HDFS设计出来更多的是做批处理
    • 关注吞吐量而不是低延时
  • Large Data Sets 大规模数据集
    • 提供高的数据传输(带宽)
    • 支持tens of milions of files in a single instance
  • 移动计算比移动数据更划算

HDFS架构

  • NameNode(master) 和 DataNodes(slaver)
  • HDFS是一个master/slave架构
  • NN:the file system namespace
    • /home/hadoop/softwar

​ /app

​ regulates accesss to files by clients

  • DN: storage

  • HDFS exposes a file system namespace and allows user data to be stored in files.

  • a file is split into one or more blocks

​ blocksize :128M

​ 150M拆分成2个

  • blocks are strored in a set of DataNodes :容错

  • nameNode executes the system namespace operations :CURD

  • determines the mapping of blocks to DataNodes

    ​ a.txt 150M blocksize=128M

    ​ a.txt 拆分成2个block 一个是128M 另一个是22M

    ​ block1 存在那个DN上,block2存在哪个DN上?

    ​ a.txt

    ​ block1: 128M 192.168.199.1

    ​ block2: 22 M 192.168.199.2

    ​ get a.txt :访问NameNode得到各个block的ip

  • 通常情况下,一个Node部署一个组件

HDFS副本机制:

  • 把每个文件存储成一系列的block,
  • 所有的块(除了最后一块)的大小都是一样的
  • 应用程序可以指定副本系数,也可以改变
  • 文件在HDFS中是一次写入的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pEcD29Dm-1585626536787)(C:\Users\15209\Pictures\博客\images\大数据06.jpg)]

Linux 环境:

linux地址(centos7):182.92.110.18

创建目录(合适的文件存放在合适的目录):

  • module : 存放软件的安装目录
  • software :存放软件所需的安装包
  • data :存放使用的数据
  • lib :存放开发过的作业jar包存放的目录
  • shell :存放课程中相关的脚步
  • maven_resp :存放课程中使用到的maven依赖包

sudo -i :切换到root用户

su hadoop: 切换回普通用户

查看linux版本: uname -a

映射: vim /etc/hosts ip 名字

Hadoop环境搭建:

  • CDH 2.6.0-cdh5.15.1
  • Hive 版本: hive1.1.0-cdh5.15.1
  • hadoop 下载:wget http:…

Hadoop/Hive/Spark相关学习框架

  • 使用单机版足够
  • 使用linux/Mac学习

安装Java:

  • 拷贝本地软件包到服务器 scp
  • scp jdk-8u91… hadoop@192.168.199.233:~/software/
  • 解压到module目录下 tar -zxvf module/
  • 把jdk配置到环境变量中:vim /.bash_profile

配SSH无密码登录:

  • ssh-keygen -t rsa 一路回车
  • cd ~/ .ssh
  • id_rsa
  • id_rsa.pub
  • cat id_rsa.pub >> authorized_keys
  • chmod 600 authorized_keys

Hadoop(HDFS)安装

  • 下载
  • 解压
  • 添加HADOOP_HOME/bin到系统环境变量
  • 修改Hadoop配置文件:
    • bin :Hadoop客户端名单
    • etc/hadoop :Hadoop相关的配置文件存放目录
    • sbin :启动Hadoop相关进程的脚本
    • share :常用例子
  • 手工配Hadoop的JAVA_HOME (etc/hadoop/hadoop_env.sh)

HDFS格式化及启动

  • etc/hadoop/core-site.xml

    • fs.defaultFS hdfs://localhost:9000
  • etc/hdfs-site.xml :副本系数

    • dfs.replication 1 hadoop.tmp.dir /opt/module/tmp
  • vim slaves

    • ​ hadoop000

启动HDFS:第一次执行的时候一定要格式化文件系统,不要重复执行

  • hdfs namenode -format

启动集群:

  • sbin目录下面: ./sbin/start-dfs.sh
  • 验证:jps
    • ​ Namenode DataNode
    • 浏览器的方式访问:
      • http:… :50070
    • firewall -cmd --state :查看防火墙
    • sudo systemctl stop firewalld.service :关闭防火墙
    • sudo firewall-cmd --state :查看防火墙状态
    • 禁止防火墙开机启动?
  • 停止集群:
    • ./sbin/stop-dfs.sh
  • 注意:
    • ​ start/stop-dfs.sh与 hadoop-daemons.sh 的关系
    • start-dfs.sh

HDFS命令(bin ./hadoop fs)

  • hadoop fs -ls /
  • hadoop fs -put README.txt /

HDFS 存储扩展:

  • put : 1file==》1…n block ==>存储在不同节点上
  • get: 去NN上查找这个file对应的元数据信息
  • 了解底层的存储机制才是我们要学习的东西
  • /opt/module/tmp/dfs/data/current/BP-1296724486-162.13.200.213-1585478270657/current/finalized/subdir0/subdir0 元素据目录
  • 将俩个block合并可以使用
    • cat blk_1073741826>>jdk.tgz
    • cat blk_1073741827>>tgz

HDFS API编程开发环境搭建

  • IDEA/Eclipse
  • Java API
  • 使用Maven管理项目
    • 创建Maven项目quickstart
    • 添加依赖,Hadoop2.65
    • 创建filesystem项目

问题:IDEA中怎么连接到我的Hadoop?

卡在了第3-19.

存储扩展:

  • put : 1file==》1…n block ==>存储在不同节点上
  • get: 去NN上查找这个file对应的元数据信息
  • 了解底层的存储机制才是我们要学习的东西
  • /opt/module/tmp/dfs/data/current/BP-1296724486-162.13.200.213-1585478270657/current/finalized/subdir0/subdir0 元素据目录
  • 将俩个block合并可以使用
    • cat blk_1073741826>>jdk.tgz
    • cat blk_1073741827>>tgz

HDFS API编程开发环境搭建

  • IDEA/Eclipse
  • Java API
  • 使用Maven管理项目
    • 创建Maven项目quickstart
    • 添加依赖,Hadoop2.65
    • 创建filesystem项目

问题:IDEA中怎么连接到我的Hadoop?

卡在了第3-19.

Hadoop学习笔记(系统的学习)相关推荐

  1. 自控原理学习笔记-系统稳定性分析(2)-环路分析及Nyquist-Bode判据

    自控原理学习笔记 自控原理学习笔记专栏 文章目录 3. 环路分析 3.1环路分析基本思想: 3.2 稳定程度的性能指标(相对稳定) 3.3 环路整形 4.Nyquist判据 4.1 与幅角原理关系 4 ...

  2. 深度学习入门之PyTorch学习笔记:深度学习介绍

    深度学习入门之PyTorch学习笔记:深度学习介绍 绪论 1 深度学习介绍 1.1 人工智能 1.2 数据挖掘.机器学习.深度学习 1.2.1 数据挖掘 1.2.2 机器学习 1.2.3 深度学习 第 ...

  3. 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用

    目录 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用 16.1 LVM的工作原理 16.1.1 LVM常用术语 16.1.2 LVM优点 16.2 创建LVM的基本步骤 16.2 ...

  4. 学习笔记:强化学习与最优控制(Chapter 2)

    Approximation in Value Space 学习笔记:强化学习与最优控制(Chapter 2) Approximation in Value Space 1. 综述 2. 基于Value ...

  5. 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(二)

    长篇博文记录学习流程不容易,请关注.转发.点赞.评论,谢谢! 上一篇文章:Docker学习笔记与深度学习环境的搭建和部署(一) 文章末尾附加nvidia455.23.cuda11.1.cudnn8.0 ...

  6. 开源鸿蒙南向嵌入学习笔记——NAPI框架学习(一)

    开源鸿蒙南向嵌入学习笔记--NAPI框架学习(一) 前言--系列介绍 本系列文章主要是记录笔者在鸿蒙南向的学习与工作中的知识点笔记记录,其中不止会针对鸿蒙中的学习问题进行思考与记录,也会对涉及到的一些 ...

  7. motan学习笔记 五 opentracing学习入门

    motan学习笔记 一 微博轻量级RPC框架Motan motan学习笔记 二 motan架构分析 motan学习笔记 三 motan Demo 分析 motan学习笔记 四 motan Demo 之 ...

  8. 学习笔记:深度学习(3)——卷积神经网络(CNN)理论篇

    学习时间:2022.04.10~2022.04.12 文章目录 3. 卷积神经网络CNN 3.1 卷积神经网络的概念 3.1.1 什么是CNN? 3.1.2 为什么要用CNN? 3.1.3 人类的视觉 ...

  9. MATLAB学习笔记0:学习须知

    阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...

  10. 学习笔记:深度学习(6)——基于深度学习的语言模型

    学习时间:2022.04.22~2022.04.25 文章目录 5. 基于深度学习的语言模型 5.1 从NNLM到词嵌入 5.1.1 神经网络语言模型 NNLM 5.1.2 基于循环神经网络的语言模型 ...

最新文章

  1. 搜索引擎选择: Elasticsearch与Solr
  2. 微软一站式示例代码浏览器 v5.1 更新
  3. ***正传——著名网络安全人士郭鑫成长经历
  4. mysql+mybatis递归调用
  5. 【Blog.Core开源】快速预览Admin界面效果
  6. 小米8大幅降价促销 性价比十足!
  7. Promise面试题
  8. 判断数据类型的几种方法
  9. 一次解锁三个BIG分析图制作思路,畅快!
  10. 六种复杂控制系统简述:串级、分程、比值、前馈、选择性和三冲量控制
  11. axios设置headers
  12. 帝国插件自动采集文章主动推送给搜索引擎自动安装目录
  13. 联想笔记本无线网络无法使用(无线开关已打开,但搜不到无线网络)
  14. 百万数据进行查询与排序
  15. 《机器学习实战》代码记录--决策树
  16. 2021-05-30 vue-Element ui 省市级三级联动
  17. TPLINK TL-AP1300I-PoE功能失常导致网络故障一例
  18. 自动驾驶之点云与图像融合综述
  19. GD32F307VC+WIN10+VSCODE+GCC+JLINK环境build
  20. 一款炫酷Loading动画--加载成功

热门文章

  1. touchend在iphone 6s中不生效
  2. wait和sleep方法的区别
  3. Spring IOC原理理解
  4. 第 3 章 注释、关键字、标识符
  5. win7共享文件找不到计算机,Win7文件夹属性中找不到共享选项怎么解决
  6. ubuntu下和进入根目录 查找etc等文件
  7. C语言迷宫问题大全,c语言实现迷宫问题
  8. Java面试题(二)-----简述Java和C++的相同点和不同点
  9. 在CSGO中大家都知道VAC封禁 那么你知道OW的意思吗?
  10. 201819101001张佳兴