大数据入门之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文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/731166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

几大开源免费的 JavaScript 富文本编辑器测评

MarkDown 编辑器用的时间长了,发现发现富文本编辑器用起来是真的舒服。 一直以来写博客都是用的 MarkDown 编辑器,MarkDown 文档简单方便,使用几个简单的符号就可以定义出样式统一的富文本内容。写博客的时间长了,小玖就越来越排…

Win11 没有网络bug

1.问题描述 没有网络,dns一直是固定的,但是dns已经是自动获取了(MAC地址随机) 2.解决办法 1.首先,删除所有网络的手动dns配置,控制中心那个dns管理没有用,在设置中删除网络,不然问题还会出现 - 2.然后,进入注册表\HKEY_LOCAL_MACH…

vue和react的diff算法源码

Vue.js 中的虚拟 DOM Diff 算法是其性能优化的关键之一。 Vue.js 的 Diff 算法主要基于 Snabbdom,以下是 Vue.js 中虚拟 DOM Diff 算法的简化版伪代码,以便说明其基本思想: function patch(oldVnode, vnode) {// 如果 oldVnode 不存在&…

PHP在线图像处理程序:基于Photoshop的网页版图片处理源码

PHP在线PS修图网页版源码:实现照片图片处理的便捷工具 众所周知,许多朋友都喜欢使用PS进行图像编辑。然而,PS需要下载软件并对电脑配置要求较高。今天我们为大家带来一款基于浏览器的在线PS网页版源码,让您轻松实现在线P图和作图…

编程笔记 html5cssjs 001 学习编程从网页开始 第一个网页

编程笔记 html5&css&js 001 学习编程从网页开始 第一个网页 一、代码二、解释 这是第一个网页&#xff0c;也是一个模板。 一、代码 <!-- 声明文档类型 --> <!DOCTYPE html> <html lang "zh-cn" ><!-- 页面头部开始 --><head &…

Apache Pulsar的分布式集群模式构建

1. 准备环境 6台带jdk8的Linux服务器&#xff08;CentOS7为例&#xff09; ip分别为&#xff1a; 主机名IP地址zookeeper1192.168.8.101zookeeper2192.168.8.102zookeeper3192.168.8.103pulsar1192.168.8.108pulsar2192.168.8.109pulsar3192.168.8.110 2. 下载Pulsar最新安…

JMeter VS RunnerGo :两大主流性能测试工具对比

说起JMeter&#xff0c;估计很多测试人员都耳熟能详。它小巧、开源&#xff0c;还能支持多种协议的接口和性能测试&#xff0c;所以在测试圈儿里很受欢迎&#xff0c;也是测试人员常用的工具&#xff0c;不少企业也基于JMeter建立起自己的自动化测试能力&#xff0c;提升工作效…

【重要公告】BSV区块链协会开始对Teranode节点软件进行技术测试

​​发表时间&#xff1a;2024年2月22日 Teranode节点软件将使BSV区块链网络的交易处理速度提升至每秒110万笔&#xff0c;从而拓宽企业和政府客户的区块链应用范围。 2024年2月22日&#xff0c;瑞士楚格 - BSV区块链协会宣布已经开始对Teranode节点软件进行技术测试&#xff…

BUUCTF-Misc4

镜子里面的世界1 1.打开附件 解压&#xff0c;是一张图片 2. zsteg工具 用zsteg分析图片 3.得到flag ningen1 1.打开附件 是一张图片 2.binwalk 用binwalk -e 分离文件 3.ARCHPR工具 打开分离后的文件夹&#xff0c;有一个加密的压缩包&#xff0c;用ARCHPR解密 4.解密 将…

superset连接Apache Spark SQL(hive)过程中的各种报错解决

superset连接数据库官方文档&#xff1a;Installing Database Drivers | Superset 我们用的是Apache Spark SQL&#xff0c;所以首先需要安装下pyhive #命令既下载了pyhive也下载了它所依赖的其他安装包 pip install pyhive#多个命令也可下载 pip install sasl pip install th…

‘ jupyter ‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

安装anaconda后&#xff0c;在 Dos黑窗口 运行 jupyter notebook 的两个问题 原因&#xff1a;没配置环境变量 解决方法&#xff1a; 在 系统环境变量Path 中 添加两个地址 这里以anaconda安装在 D:\anaconda\install 下为例 &#xff08;根据个人安装具体位置而定&#xff…

Elasticsearch:什么是 DevOps?

DevOps 定义 DevOps 是一种现代软件开发方法&#xff0c;它将公司软件开发 (Dev) 和 IT 运营 (Ops) 团队的工作结合起来并实现自动化。 DevOps 提倡这样一种理念&#xff1a;这些传统上独立的团队在协作方面比在孤岛中更有效。 理想情况下&#xff0c;DevOps 团队共同努力改进…

Prompt进阶系列1:LangGPT(从编程语言反思LLM的结构化可复用提示设计框架)

Prompt进阶系列1:LangGPT(从编程语言反思LLM的结构化可复用提示设计框架) 大语言模型 (Large Language Models, LLMs) 在不同领域都表现出了优异的性能。然而&#xff0c;对于非AI专家来说&#xff0c;制定高质量的提示来引导 LLMs 是目前AI应用领域的一项重要挑战。现有的提示…

优惠券秒杀案例 - CAS、Redis+Lua脚本解决高并发并行

目录 一、认识悲观锁和乐观锁&#xff1f; 二、一人一单问题&#xff08;优化&#xff09; 三、并行执行带来的问题 3.1Redis实现分布式锁 3.1.1 基础代码 3.1.2 保证释放的锁是自己的 3.1.3 Lua脚本保证原子性 情景介绍&#xff1a; 超卖问题在我们业务中很常见&#x…

Hive中UNION ALL和UNION的区别

1.概述 Hive官方提供了一种联合查询的语法&#xff0c;原名为Union Syntax&#xff0c;用于联合两个表的记录进行查询&#xff0c;此处的联合和join是不同的&#xff0c;join是将两个表的字段拼接到一起&#xff0c;而union是将两个表的记录拼接在一起。 换言之&#xff0c; jo…

合并有序数组

合并有序数组 题目描述&#xff1a;解法思路&#xff1a;解法代码&#xff1a;运行结果&#xff1a; 题目描述&#xff1a; 输入两个升序排列行的序列&#xff0c;将两个序列合并为一个有序序列并输出。 输入包含三行&#xff0c;第一包含两个正整数n, m&#xff0c;用空格分隔…

来说说看到的求职路上可以提高的地方——简历

要进行求职的时候应该遇到的第一件事情就是简历。 随着看到的简历越来越多&#xff0c;也发现了一些问题&#xff0c;来开个帖子来说说这些问题。 格式 让参加面试的人最头疼的地方就是简历格式没有空格。 最近发现好多人的简历格式上都不空格&#xff0c;很多内容完全都在…

AIGC启示录:深度解析AIGC技术的现代性与系统性的奇幻旅程

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

mysql笔记:11. 性能优化

文章目录 概览查询速度优化1. 分析查询语句1.1 EXPLAIN1.2 DESCRIBE 2. 使用索引优化查询3. 优化子查询 数据库结构优化1. 分解表2. 建立中间表3. 增加冗余字段4. 优化插入速度4.1. MyISAM引擎表4.2. InnoDB引擎表 5. 分析表、检查表和优化表5.1. 分析表5.2. 检查表5.3. 优化表…

php使用ElasticSearch

ElasticSearch简介 Elasticsearch 是一个分布式的、开源的搜索分析引擎&#xff0c;支持各种数据类型&#xff0c;包括文本、数字、地理、结构化、非结构化。 Lucene与ElasticSearch Apache Lucene是一款高性能的、可扩展的信息检索&#xff08;IR&#xff09;工具库&#xf…