大数据入门之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.xml | fs.defaultFs(fs.default.name) | file:///(默认) | hdfs://localhost | hdfs://node1 |
hdfs.site.xml | dfs.replication | N/A | 1 | 3(默认) |
mapres-site.xml | mapreduce.framework.name | local(默认) | yarn | yarn |
yarn-site.xml | yarn.resourcemanager.hostname | N/A | localhost | resourcemanager |
yarn-site.xml | yarn.nodemanager.auxservice | N/A | mapreduce_shuffle | maprecude_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:直接寻址与立即寻址…...

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

丰田研究所(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. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解ÿ…...
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。 这是《前端》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...