当前位置: 首页 > news >正文

大数据入门之hadoop学习

大数据

1. 学习hadoop之前,我们先了解一下什么是大数据?

大数据通常指的是数据集规模非常庞大且难以在常规数据库和数据处理工具中有效处理的数据。

大数据的特点:

  • 容量:大数据具有庞大的规模,远远超出了传统数据库和数据处理工具处理的能力。这可能涉及到以亿计或更多行的数据
  • 种类:数据类型的多样性,大数据可以包括来自不同来源、以不同格式存在的各种数据类型,如结构化数据(表格形式的数据,如数据库中的数据)、半结构化数据(XML、JSON等)和非结构化数据(文本、图像、音频等)
  • 速度:大数据通常以极快的速度生成、传输和累积。实时或近实时的数据流是大数据环境下的一种常见情况
  • 真实性:即数据的质量。数据的真实性低。
  • 价值:价值密度低,需要我们合理应用大数据,以低成本创造高价值

2. 大数据的应用场景

  • 数据处理的最典型应用:公司的产品运营情况分析
  • 电商推荐系统:基于海量的浏览行为,购物行为数据,进行大量的算法模型的运算,得出各类推荐结论,以供电商网站页面来为用户进行商品推荐
  • 精准广告推送系统:基于海量的互联网用户的各类数据,统计分析,进行用户画像(得到用户的各种属性标签),然后科研为广告主进行有针对性的精准的广告投放

大数据技术点

存储框架

  • HDFS——分布式文件存储系统(hadoop中的存储框架)
  • HBase——分布式数据库系统
  • Kafka——分布式消息缓存系统(实时流式数据处理场景中应用广泛)
  • Elasticsearch——分布式的搜索引擎
    计算框架
    要解决的核心问题就是帮用户将处理逻辑在很多机器上并行
  • MapReduce——离线批处理/hadoop中的运算框架
  • spark——离线处理/微批处理
  • storm——实时流式计算
  • flink——离线处理/微批处理/实时流处理
  • blink——与flink类似(国产)
    辅助类的工具
  • hive——数据仓库工具,可以接收SQL,翻译成MapReduce或者spark程序运行
  • flume——用于数据采集
  • sqoop——数据迁移,etl工具
  • kibana——数据分析和可视化
  • logstach——数据收集工具
    等等

hadoop框架

1. hadoop是什么

  • Hadoop是一个有Apache基金会所开发的分布式系统基础框架
  • 主要解决:海量数据的存储问题和海量数据的分析计算问题
  • 广义上来说,hadoop通常是指一个更广泛的概念——Hadoop生态圈

2. Hadoop的优势

(1)高可靠性
因为Hadoop假设计算元素和存储会出现故障,所以它会维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理
(2)高扩展性
在集群间分配任务数据,可方便的扩展数以千计的节点
(3)高效性
在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度
(4)高容错性
自动保存多分副本数据,并且能够自动将失败的任务重新分配

3. Hadoop的组成

  • Hadoop HDFS
    一个高可靠、高吞吐量的分布式文件系统
  • Hadoop MapReduce
    一个分布式的离线并行计算框架
  • Hadoop YARN
    作业调度与集群资源管理的框架
  • Hadoop Commen
    支持其他模块的工具模块(configuration、RPC、序列化机制,日志操作)

4. Hadoop发行版

  • Apache版本最原始(最基础)的版本,对于入门学习最好
  • cloudera在大型互联网企业中用的最多
  • hortonworks文档最好

Hadoop环境搭建

这里不再过多赘述,具体操作请查看https://blog.csdn.net/David_house/article/details/108627515

Hadoop运行环境

Hadoop运行环境有三种模式:本地模式,伪分布模式,完全分布模式
本地模式(standard mode)
默认情况下,Hadoop即处于该模式,用于开发和调试
①不对配置文件进行修改
②使用本地文件系统,而不是分布式文件系统
③不会启动任何Hadoop守护进程,map任务和reduce任务作为同一个进程的不同部分来执行
④用于对MapReduce应用程序的开发或调试,确保程序正确
⑤当首次解压hadoop的源码包时,默认选择了最低的配置。这时,三个xml文件均为空,当配置文件为空时,hadoop会完全运行在本地
伪分布模式(pseudo-distribution mode):
Hadoop的守护进程运行在本机机器,模拟一个小规模的集群
①在一台主机上模拟一个小规模集群,使用分布式文件系统,一般用于程序调试与测试,可以说伪分布是完全分布的一个特例
②所有的守护进行运行在一台机器上,每个hadoop守护进程都是一个独立的java进程
③该模式在本地模式的基础上添加了代码的调试功能,允许你检查内存的使用情况、HDFS输入输出、其它的守护进程的交互
④需要修改配置文件以及格式化文件系统
⑤伪分布式模式也需要配置SSH无密码本机连接本机

注:

  • 从分布式存储的角度来说,集群中的结点由一个NameNode和若干个DataNode组成,另有一个SecondaryNameNode作为NameNode的备份。
  • 从分布式应用的角度来说,集群中的结点由一个JobTracker和若干个TaskTracker组成,JobTracker负责任务的调度,TaskTracker负责并行执行任务。TaskTracker必须运行在DataNode上,这样便于数据的本地计算。JobTracker和NameNode则无须在同一台机器上。
  • 一个机器上,既当namenode,又当datanode,或者说既是jobtracker,又是tasktracker。没有所谓的在多台机器上进行真正的分布式计算,故称为"伪分布式"。

完全分布模式(cluster mode):

Hadoop运行在由多台主机搭建的集群上,是真正的生产环境

  • 多个节点组成的hadoop集群,NameNode和DataNode节点分开
xml文件属性名称本地模式伪分布模式完全分布模式
core-site.xmlfs.defaultFs(fs.default.name)file:///(默认)hdfs://localhosthdfs://node1
hdfs.site.xmldfs.replicationN/A13(默认)
mapres-site.xmlmapreduce.framework.namelocal(默认)yarnyarn
yarn-site.xmlyarn.resourcemanager.hostnameN/Alocalhostresourcemanager
yarn-site.xmlyarn.nodemanager.auxserviceN/Amapreduce_shufflemaprecude_shuffle

Hadoop进程

Hadoop集群一般有两种节点:主节点(master)和从节点(slave)
这些节点上一般有如下进程:
1)NameNode(hdfs服务):Master,它是一个主管、管理者

  • 管理HDFS的名称空间;
  • 管理数据块(Block)映射信息;
  • 配置副本策略;
  • 处理客户端读写请求。

2)DataNode(hdfs服务):Slave,NameNode下达命令,DataNode执行实际的操作

  • 存储实际的数据块;
  • 执行数据块的读/写操作。

3)Secondary NameNode:namenode的冷备,并非NameNode的热备。当NameNode挂掉的时候,它并不能马上替换NameNode并提供服务

  • 辅助NameNode,分担其工作量;
  • 定期合并Fsimage(文件系统镜像)和Edits log(编辑日志),并推送给NameNode;
  • 在紧急情况下,可辅助恢复NameNode。

4)ResourceManager(JobTracker):(yarn服务)

  • 处理客户端请求
  • 监控NodeManager
  • 启动或监控ApplicationMaster
  • 资源的分配与调度

5)NodeManager(TaskTracker):(yarn服务)

  • 管理单个节点上的资源
  • 处理来自ResourceManager的命令
  • 处理来自ApplicationMaster的命令

6)JobHistoryServer

  • 负责管理MapReduce作业的历史记录和统计信息

7)HttpServer

  • Hadoop的Web服务器,用于显示各种监控和管理信息

8)DFSZKFailoverController
高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。
9)JournalNode
高可用情况下存放namenode的editlog文件。

相关文章:

大数据入门之hadoop学习

大数据 1. 学习hadoop之前,我们先了解一下什么是大数据? 大数据通常指的是数据集规模非常庞大且难以在常规数据库和数据处理工具中有效处理的数据。 大数据的特点: 容量:大数据具有庞大的规模,远远超出了传统数据库和…...

MySQL安装使用(mac、windows)

目录 macOS环境 一、下载MySQL 二、环境变量 三、启动 MySql 四、初始化密码设置 windows环境 一、下载 二、 环境配置 三、安装mysql 1.初始化mysql 2.安装Mysql服务 3.更改密码 四、检验 1.查看默认安装的数据库 2.其他操作 macOS环境 一、下载MySQL 打开 MyS…...

Day27:安全开发-PHP应用TP框架路由访问对象操作内置过滤绕过核心漏洞

目录 TP框架-开发-配置架构&路由&MVC模型 TP框架-安全-不安全写法&版本过滤绕过 思维导图 PHP知识点 功能:新闻列表,会员中心,资源下载,留言版,后台模块,模版引用,框架开发等 技…...

c++: 引用能否替代指针? 详解引用与指针的区别.

文章目录 前言1. 引用和指针的最大区别:引用不能改变指向2. 引用和指针在底层上面是一样的3. 引用和指针在sizeof面前大小不同4. 有多级指针,没有多级引用5.引用是引用的实体,指针会向后偏移同一个类型的大小 总结 前言 新来的小伙伴如果不知道引用是什么?可以看我的上一篇文…...

Java项目源码基于springboot的家政服务平台的设计与实现

大家好我是程序员阿存,在java圈的辛苦码农。辛辛苦苦板砖,今天要和大家聊的是一款Java项目源码基于springboot的家政服务平台的设计与实现,项目源码以及部署相关请联系存哥,文末附上联系信息 。 项目源码:Java基于spr…...

十大排序算法(冒泡排序、插入排序、选择排序、希尔排序、堆排序、快排、归并排序、桶排序、计数排序、基数排序)

目录 一、冒泡排序: 二、插入排序: 三、选择排序: 四、希尔排序: 五、堆排序: 六、快速排序: 6.1挖坑法: 6.2左右指针法 6.3前后指针法: 七、归并排序: 八、桶…...

matplotlib 画多子图的时候添加图例/legend

一开始搞不懂图例是什么意思,以为是整个图,最后发现原来图例就是代码中的legend: 子图的图例(legend)用于解释图表中各条线、点或其他元素所代表的含义。图例通常位于图表的一角,以帮助观众理解图表中展示的…...

手写一个线程池

自己手动写一个线程池的必要条件需要先了解我们使用的线程池的功能。为什么会有线程池?这是为了减少线程创建和销毁的开销。复用线程的目的。为了达到这个目的。预计方案是:需要一个存放任务的队列,主线程相当于生产者,在这个队列…...

Spring Boot 多环境配置

Spring Boot 多环境配置 在现代的软件开发中,通常需要将应用程序部署到不同的环境中,如开发环境、生产环境和测试环境等。每个环境可能需要不同的配置参数,例如数据库连接信息、日志级别等。在 Spring Boot 中,我们可以通过简单的…...

【Python】一文带你详解sys.executable函数的作用

【Python】一文带你详解sys.executable函数的作用 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支…...

thingsboard如何自定义udp-transport

0、参考netty实现udp的文章 https://github.com/narkhedesam/Netty-Simple-UDP-TCP-server-client/blob/master/netty-udp/src/com/sam/netty_udp/server/MessageDecoder.java 调试工具使用的是:卓岚TCP&UDP调试工具 1、在common\transport下面创建udp模块,仿照mqtt的创…...

【汇编】#3 8086与数据有关的寻址方式

文章目录 操作码与操作数1. 8086处理器的与数据有关的寻址方式1.1 立即数寻址方式1.2 寄存器寻址方式 2. 有效(偏移)地址(effective address,EA)与缺省段寄存器选择tips:段跨越前缀2.1 直接寻址tips:直接寻址与立即寻址…...

【数据结构】单链表的层层实现!! !

关注小庄 顿顿解馋(●’◡’●) 上篇回顾 我们上篇学习了本质为数组的数据结构—顺序表,顺序表支持下标随机访问而且高速缓存命中率高,然而可能造成空间的浪费,同时增加数据时多次移动会造成效率低下,那有什么解决之法呢&#xff…...

丰田研究所(TRI)最新成果——可实现全身操控的软体机器人Punyo

文 | BFT机器人 人形机器人在近年的科技浪潮中迅速崛起,成为了各界瞩目的焦点,众多企业纷纷推出自家的机器人模型,但仔细观察,不难发现它们中的许多在操作方式上仍显得颇为相似。这些典型的人形机器人,以其机械臂和抓…...

【PyTorch实战演练】深入剖析MTCNN(多任务级联卷积神经网络)并使用30行代码实现人脸识别

文章目录 0. 前言1. 级联神经网络介绍2. MTCNN介绍2.1 MTCNN提出背景2.2 MTCNN结构 3. MTCNN PyTorch实战3.1 facenet_pytorch库中的MTCNN3.2 识别图像数据3.3 人脸识别3.4 关键点定位 0. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解&#xff…...

MFC中字符串string类型和CString类型互转方法

在Microsoft Foundation Classes (MFC)中,CString是一个非常方便的类,用于处理C风格的字符串。有时,你可能需要在MFC的CString和C标准库中的std::string之间进行转换。下面是如何在两者之间进行转换的方法: CString转std::string…...

Jmeter-使用http proxy代理录制脚本

Jmeter-使用http proxy代理录制脚本 第1步:打卡jmeter工具新增1个线程组 第2步:给线程组添加1个HTTP请求默认值 第3步:设置下HTTP请求默认值第4步:在工作台中新增1个----HTTP代理服务器 第5步:设置HTTP代理服务器 …...

C++训练营:new 运算符

大家好: 衷心希望各位点赞。 您的问题请留在评论区,我会及时回答。 一、new 运算符 new 运算符用于动态分配一片内存空间,并返回这片内存空间的首地址,可将该首地址存入一个指针变量中,主要有以下三种格式。 二、格…...

C# 用Trace.WriteLine输出调试信息无法查看

写程序就会遇见BUG,这时候在代码不同部位输出一些标记的信息对查找错误非常有必要,一般情况下我们都是使用Console.WriteLine()方法来打印信息到控制台窗口,但有时候使用Console.WriteLine()方法会存在不方便的情况,比如鄙人遇到的…...

【Echarts】柱状图上方显示数字以及自定义值,标题和副标题居中,鼠标上显示信息以及自定义信息

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《前端》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异&#xff…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...