大数据学习-Hadoop

这篇具有很好参考价值的文章主要介绍了大数据学习-Hadoop。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大数据学习-Hadoop

1.大数据概念

  • 现状分析:实时计算
  • 原因分析:离线计算
  • 预测分析:机器学习(对未来趋势进行预测)

2.分布式与集群

  • 分布式:多台机器,不同组件

分布式存储,分布式集群,多台机器

  • 集群:多台机器,相同组件

3.Hadoop(卡大爷创建)

  • hadoop简介

大数据学习-Hadoop

4.docker搭建hadoop集群

hadoop-cluster-docker

  • 1.Docker安装

  • 2.拉取hadoop集群镜像

  • 3.克隆仓库并修改start.sh中的开放端口文件

大数据学习-Hadoop

  • 4.桥接网络 docker network ls

  • 5.运行容器并进入容器:docker exec -it hadoop-master bash

  • 6.启动hadoop:./start-hadoop.sh

  • 7.页面测试:本机127.0.01

  • HDFS集群:name node: [your ip address]:50070/ 浏览文件系统

大数据学习-Hadoop

  • YARN集群:resource manager: [your ip address]:8088/ 监控集群资源:MapReduce,Sprark,Flink等 大数据学习-Hadoop

  • 8.测试 word count:word count 是一个测试 hadoop 的 shell 脚本,即计算文本中的单词个数

  • docker进入hadoop容器命令

docker exec -it hadoop-master bash

  • Hadoop内部命令 :推荐全部使用 hadoop fs

创建文件夹命令:hdfs dfs -mkdir /hadoop

上传命令:hdfs dfs -put file.txt /hadoop/file.txt hdfs dfs -put file1.txt /hadoop/file1.txt

删除命令:hdfs dfs -rm -r /hadoop/file.text(可删除文件与文件夹)

查看文件夹命令:hadoop fs -ls /hadoop

查看文件内容:hdfs dfs -cat /hadoop/file.txt

  • Hadoop集群

一个大哥带几个小弟干活:hadoop-Master,hadoop-slave1,hadoop-slave2

MapReduce是计算框架,代码层面的组件,没有集群之说

大数据学习-Hadoop

大数据学习-Hadoop

5.hadoop初体验

  • 官方圆周率例子

hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 2 2

6.HDFS

Hadoop Distributed File Sytem分布式文件系统

6.1 HDFS简介
  • 主从架构,统一访问接口

大数据学习-Hadoop

  • 应用场景

大数据学习-Hadoop

  • 元数据

大数据学习-Hadoop

  • 分布式文件系统

大数据学习-Hadoop

  • 目录树->层次结构->namespave->namenode
6.2 HDFS命令

推荐全部使用 hadoop fs

6.2.1 创建文件夹

hadoop fs -mkdir [-p]

path 为待创建的目录

-p选项的行为与Unix mkdir -p非常相似,它会沿着路径创建父目录

hadoop fs -mkdir /ifnxs
6.2.2 查看指定目录下内容

hadoop fs -ls [-h] [-R] [

…]

path 指定目录路径

-h 人性化显示文件size

-R 递归查看指定目录及其子目录

hadoop fs -ls -h /
# 本地文件系统
hadoop fs -ls file:///
# HDFS分布式文件系统
hadoop fs -ls hdfs://hadoop-slave1:8020/
# 直接根目录,没有指定协议,将加载都去fs.defaultFS值(默认为当前文件的HDFS目录)
hadoop fs -ls /

大数据学习-Hadoop

6.2.3 上传文件到HDFS指定目录

hadoop fs -put [-f] [-p] …

-f 覆盖目标文件(已存在下)

-p 保留访问和修改时间,所有权和权限

localsrc 本地文件系统(客户端所在机器)

dst 目标文件系统(HDFS)

echo 1 > 1.txt  #创建一个值为1的txt文件
hadoop fs -put 1.txt /   #将1.txt上传到HDFS的根目录下
6.2.4 查看HDFS文件内容

hadoop fs -cat …

读取指定文件全部内容,显示在标准输出控制台

注意:对于大文件内容读取,慎重

hadoop fs -cat /ifnxs/1.txt
6.2.5 下载HDFS文件

hadoop fs -get [-f] [-p] …

下载文件到本地文件系统指定目录,localdst必须是目录

-f 覆盖目标文件(已存在下)

-p 保留访问和修改时间,所有权和权限

hadoop fs -get /ifnxs/1.txt ./2.txt
6.2.6 拷贝HDFS文件

hadoop fs -cp [-f] …

-f 覆盖目标文件(已存在下)

hadoop fs -cp /ifnxs/1.txt /ifnxs/3.txt
6.2.7 追加数据到HDFS文件中

hadoop fs -appendToFile …

将所有给定本地文件的内容追加到给定dst文件

dst如果文件不存在,将创建该文件

如果为-,则输入为从标准输入中读取

hadoop fs -appendToFile 2.txt 3.txt /1.txt
6.2.8 HDFS数据移动操作

hadoop fs -mv …

移动文件到指定文件夹下

可以使用该命令移动数据,重命名文件的名称

hadoop fs -mv /ifnxs/1.txt /ifnxs/333.txt
6.3 HDFS工作流程与机制
6.3.1 各角色职责介绍
  • nameNode:仅存储HDFS的元数据(需要大量内存)
  • secondaryNode:nameNode的秘书,负责帮助主角色进行元数据文件的合并动作
  • dataNode:负责数据块block的存储,也称slave ,会将自己注册到nameNode并汇报自己持有的块列表(需要大量硬盘空间)
6.3.2 HDFS写数据流程
  • Pipeline:管道,HDFS上传文件写数据过程中的数据传输方式
  • ACK应答响应:确认字符,保证数据传输安全
  • 默认3副本存储策略

大数据学习-Hadoop

大数据学习-Hadoop

7.MapReduce

7.1 MapReduce简介

分布式计算框架

  • 先分再合,分而治之
  • 用于离线作业 , 实时计算领域:spark,fink
  • 不能进行流式计算
7.2 设计思想
  • Map:拆分(映射)
  • Reduce:聚合

大数据学习-Hadoop

7.3 MapReduce实例进程

大数据学习-Hadoop

7.4 MapReduce官方示例
7.4.1官方圆周率例子
  • 提交命令:hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 2 2 (yarn jar也行)

  • 提交到YARN集群上分布式执行

  • 流程:连接Resourcemanager(yarn)请求资源

7.4.2 WordCount例子

大数据学习-Hadoop

大数据学习-Hadoop

  • 上传测试文件到HDFS:hadoop fs -put 1.txt /hadoop
  • 提交命令:hadoop jar hadoop-mapreduce-examples-3.3.0.jar wordcount /hadoop /output

输出路径一定是不存在的路径否则会报错

  • 查看词频统计的结果:hadoop fs -cat /output/part-r-00000
7.5 Map阶段执行过程

大数据学习-Hadoop

  1. 逻辑切片,默认Split size = Block size(128M)
  2. 对切片中的数据按照一定的规则读取解析返回[key,value]对。
  3. 默认是按行读取数据。key是每一行的起始位置偏移量,value是本行的文本内容
  4. 调用Mapper类中的map方法处理数据
  5. 按照一定的规则对Map输出的键值对进行分区partition。默认不分区,只有一个reducetask。分区的数量是reducetask运行的数量
  6. Map输出数据写入内存缓冲区,达到比例溢出到磁盘上。溢出spill的时候根据key进行排序sort。默认根据key字典序排序
  7. 对所有溢出文件进行最终的merge合并,成为一个文件
7.6 Reduce阶段
  1. ReduceTask会主动从MapTask复制拉取属于需要自己处理的数据
  2. 把拉取来数据,全部进行合并merge,即把分散的数据合并成一个大的数据。再对合并后的数据排序
  3. 对排序后的键值对调用reduce方法键相等的键值对调用一次reduce方法。最后把这些输出的键值对 写入到HDFS文件中

大数据学习-Hadoop

7.7 shffle机制

1.将map端的无规则输出按指定的规则“打乱”成具有一定规则的数据,以便reduce端接收处理

2.一般把从Map产生输出开始到Reduce取得数据作为输入之前的过程称作shuffle

3.Shuffle是MapReduce程序的核心与精髓,也是慢的原因

8.YARN

8.1 YARN简介

通用的集群资源管理(管理内存和CPU),任务调度平台(大家来申请资源,YARN为他们分配资源)

大数据学习-Hadoop

8.2 YARN架构

大数据学习-Hadoop

8.2.1 三大组件
  • ResourceManager(RM)

YARN集群中的主角色,决定系统中所有应用程序之间资源分配的最终权限,即最终仲裁者。接收用户的作业提交,并通过NM分配、管理各个机器上的计算资源。

  • NodeManager(NM)

YARN中的从角色,一台机器上一个,负责管理本机器上的计算资源。根据RM命令,启动Container容器、监视容器的资源使用情况。并且向RM主角色汇报资源使用情况。

  • ApplicationMaster(AM)(类似MR的MRAppMaster)

用户提交的每个应用程序均包含一个AM。应用程序内的“老大”,负责程序内部各阶段的资源申请,监督程序的执行情况。

8.3 YARN交互流程

大数据学习-Hadoop

大数据学习-Hadoop

8.4 YARN Scheduler资源调度器

没有最佳的策略,只有符合业务场景的策略

8.4.1 FIFO Scheduler 先进先出调度器(Hadoop1.x,使用较少)

FIFO Scheduler是一个先进先出的思想,即先提交的应用先运行。

大数据学习-Hadoop

8.4.2 Capacity Scheduler 容量调度器(Hadoop3.x 当前版本默认策略 )

Capacity Scheduler容量调度是Apache Hadoop3.x默认调度策略。该策略允许多个组织共享整个集群资源,每个组织可以获得集群的一部分计算能力。通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源,这样整个集群就可以通过设置多个队列的方式给多个组织提供服务了。

队列A提交大程序,队列B提交小程序 (可根据部门业务不同需求划分队列)

大数据学习-Hadoop

  • 层次化的队列设计:层次化的管理,可以更容易、更合理分配和限制资源的使用(队列下面划分子队列)
  • 容量保证:每个队列上都可以设置一个资源的占比,保证每个队列都不会占用整个集群的资源
  • 安全:每个队列有严格的访问控制。用户只能向自己的队列里面提交任务,而且不能修改或者访问其他队列的任务
  • 弹性分配:空闲的资源可以被分配给任何队列。当多个队列出现争用的时候,则会按照权重比例进行平衡
8.4.3 Fair Scheduler 公平调度器

使所有应用在平均情况下随着时间的流逝可以获得相等的资源份额。

大数据学习-Hadoop文章来源地址https://www.toymoban.com/news/detail-454969.html

到了这里,关于大数据学习-Hadoop的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据学习-Hadoop

    1.大数据概念 现状分析:实时计算 原因分析:离线计算 预测分析:机器学习(对未来趋势进行预测) 2.分布式与集群 分布式:多台机器,不同组件 分布式存储,分布式集群,多台机器 集群:多台机器,相同组件 3.Hadoop(卡大爷创建) hadoop简介 4.docker搭建hadoop集群 hadoop-clust

    2024年02月05日
    浏览(24)
  • Hadoop学习一(初识大数据)

    目录 一 什么是大数据? 二 大数据特征 三 分布式计算 四 Hadoop是什么? 五 Hadoop发展及版本 六 为什么要使用Hadoop 七 Hadoop vs. RDBMS 八 Hadoop生态圈 九 Hadoop架构  大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。 大数据技术要解决的

    2024年02月11日
    浏览(23)
  • 大数据Hadoop教程-学习笔记06【Hadoop生态综合案例:陌陌聊天数据分析】

    视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程,总时长:14:22:04 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g,提取码:6666 【P001-P017】大数据Hadoop教程-学习笔记01【大数据导论与Linux基础】【17p】 【P018-P037】大数据Hadoop教程-学习笔记02【Apache Hadoop、HDFS】【20p】

    2024年02月02日
    浏览(35)
  • 【Hadoop】Hadoop入门概念简介

    🦄 个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🪁🍁🪁 🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步

    2024年02月11日
    浏览(26)
  • 【Hadoop】Hadoop概念与实践

    安装 HomeBrew 参考官方文档进行安装 配置本机 ssh 免密登录 hadoop 运行过程中需要 ssh localhost ,需要做一些配置保证可以执行成功 允许远程登录 偏好设置 - 共享 - 勾选「远程登录」 配置 SSH 通过 ssh-keygen 生成 ssh key ssh-copy-id -i [key 文件] localhost 配置免密登录 ssh localhost 也只能正

    2024年02月06日
    浏览(32)
  • Hadoop学习指南:探索大数据时代的重要组成——Hadoop概述

    在当今大数据时代,处理海量数据成为了一项关键任务。Hadoop作为一种开源的分布式计算框架,为大规模数据处理和存储提供了强大的解决方案。本文将介绍Hadoop的组成和其在大数据处理中的重要作用,让我们一同踏上学习Hadoop的旅程。 1)Hadoop是一个由Apache基金会所开发的

    2024年02月14日
    浏览(34)
  • 大数据技术之Hadoop学习(七)——Hive数据仓库

    目录 素材 一、数据仓库简介 1、数据仓库的认识 (1)数据仓库是面向主题的。 (2)数据仓库是随时间变化的。 (3)数据仓库相对稳定 (4)OLTP和OLAP 2、数据仓库的结构 (1)数据源 (2)数据存储及管理 (3)OLAP 服务器 (4)前端工具 3、数据仓库的数据模型 (1)星状模

    2024年02月17日
    浏览(33)
  • 【大数据学习篇2】Hadoop集群安装

    IP 机器名 root密码 用户名 密码 进程 192.168.20.44 master hd hd hd namenode,ResourceManager,SecondaryNameNode 192.168.20.45 slave01 hd hd hd datanode,NodeManager 192.168.20.46 slave02 hd hd hd datanode,NodeManager 密码统一设置成:hd 或者 123456 设置网卡为静态的地址 Linux常用的命令 使用vi编辑器,在/etc/profile增

    2024年02月04日
    浏览(40)
  • 一篇搞定分布式大数据系统所有概念,包括有Hadoop、MapReduce、HDFS、HBASE、NoSql 、ZooKeeper 、Reidis 、Nginx 、BASE、CAP定义、特点和应用场景

    1.1hadoop定义和特点 Hadoop定义: Hadoop是一个开源的分布式计算框架,用于存储和处理大规模数据集。它基于Google的MapReduce论文和Google文件系统(GFS)的设计理念,并由Apache软件基金会进行开发和维护。 Hadoop的主要特点包括: 分布式存储:Hadoop通过分布式文件系统(Hadoop Dist

    2024年02月03日
    浏览(38)
  • hadoop生态圈-- 个人笔记学习04 数据迁移

    数据迁移场景 冷热集群数据同步、分类存储 集群数据整体迁移 准实时同步 双备份 线上把集群切向B的同步集群 要素考量 bandwdith performance 1… 单机?分布式? data-increment 可以配合HDFS快照等技术实现增量数据同步。 syncable .数据指定周期内未完成同步,下一周期开始,无法做

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包