Hadoop简单介绍 一、Hadoop要解决的两个问题: 首先我们撇开Hadoop的历史、概念,我们先了解Hadoop是用来干啥的。 Hadoop解决两个问题: 1.海量数据存储 HDFS 2.海量的数据分析 MapReduce 二、Hadoop历史: 2002年的apache项目Nutch 2003年Google发表了关于G
Hadoop简单介绍
一、Hadoop要解决的两个问题:
首先我们撇开Hadoop的历史、概念,我们先了解Hadoop是用来干啥的。
Hadoop解决两个问题:
1.海量数据存储 HDFS
2.海量的数据分析 MapReduce
二、Hadoop历史:
2002年的apache项目Nutch
2003年Google发表了关于GFS的论文
2004年Nutch的开发者开发了NDFS
2004年Google发表了关于MapReduce的论文
2005年MapR被引入了NDFS
2006年改名为Hadoop,NDFS创始人加入了yahoo,yahoo成立了一个专门的小组发展Hadoop
三、学习Hadoop的目的:
Hadoop是IT行业一个新的热点,是云计算的一个具体实现
Hadoop本身具有很高的技术含量,是IT工程师学习的首选
四、HDFS设计目标:
1.Very large files
2.Streaming data access
write-once read-many-times
3.Commodity hardware
五、Hadoop不适合的场景:
1.low-latency data access
2.Lots of small files
3.Multiple writers,arbitrary file modifications
六、HDFS架构:
(1)假设有一个 600G的文件a.txt,由于我们的Hadoop默认一个块的大小是64M,故将这600G文件以64M为一块分别存储到所有的集群的主机上,这样我们的读取速度将会大大提高。
(2)同一个文件块在不同的节点中有多个副本,这样当集群里某一文件块损坏或者数据丢失时,会在另外一个节点得到补充。另外这些副本和原本都是在一个配置文件里配置的,Hadoop会根据配置信息自动寻找备份的内容块。
(3)刚刚我们提到的配置文件,我们需要一个集中的地方保存文件的分块信息:
/home/asdf/a.txt.part1,3,(dm1,dm2,dm3)
/home/asdf/a.txt.part2,3,(dm2,dm3,dm4)
/home/asdf/a.txt.part3,3,(dm6,dm11,dm28)
这里边的3是指加上备份有三份。
(4)Block:一个文件分块,默认64M
NameNode:保存整个文件系统的目录信息,文件信息以及文件相应的分块信息。
DataNode:用于存储Blocks
HDFS的HA策略:NameNode一旦宕机,整个文件系统将无法工作。 如果NameNode中的数据丢失,整个文件系统也就丢失了。 2.x开始,HDFS支持NameNode的active-standy模式。

MySQL使用的是GPL许可证。1)GPL许可证允许自由使用、修改和分发MySQL,但修改后的分发需遵循GPL。2)商业许可证可避免公开修改,适合需要保密的商业应用。

选择InnoDB而不是MyISAM的情况包括:1)需要事务支持,2)高并发环境,3)需要高数据一致性;反之,选择MyISAM的情况包括:1)主要是读操作,2)不需要事务支持。InnoDB适合需要高数据一致性和事务处理的应用,如电商平台,而MyISAM适合读密集型且无需事务的应用,如博客系统。

在MySQL中,外键的作用是建立表与表之间的关系,确保数据的一致性和完整性。外键通过引用完整性检查和级联操作维护数据的有效性,使用时需注意性能优化和避免常见错误。

MySQL中有四种主要的索引类型:B-Tree索引、哈希索引、全文索引和空间索引。1.B-Tree索引适用于范围查询、排序和分组,适合在employees表的name列上创建。2.哈希索引适用于等值查询,适合在MEMORY存储引擎的hash_table表的id列上创建。3.全文索引用于文本搜索,适合在articles表的content列上创建。4.空间索引用于地理空间查询,适合在locations表的geom列上创建。

toCreateAnIndexinMysql,usethecReateIndexStatement.1)forasingLecolumn,使用“ createIndexIdx_lastNameEnemployees(lastName); 2)foracompositeIndex,使用“ createIndexIndexIndexIndexIndexDx_nameOmplayees(lastName,firstName,firstName);” 3)forauniqe instex,creationexexexexex,

MySQL和SQLite的主要区别在于设计理念和使用场景:1.MySQL适用于大型应用和企业级解决方案,支持高性能和高并发;2.SQLite适合移动应用和桌面软件,轻量级且易于嵌入。

MySQL中的索引是数据库表中一列或多列的有序结构,用于加速数据检索。1)索引通过减少扫描数据量提升查询速度。2)B-Tree索引利用平衡树结构,适合范围查询和排序。3)创建索引使用CREATEINDEX语句,如CREATEINDEXidx_customer_idONorders(customer_id)。4)复合索引可优化多列查询,如CREATEINDEXidx_customer_orderONorders(customer_id,order_date)。5)使用EXPLAIN分析查询计划,避

在MySQL中使用事务可以确保数据一致性。1)通过STARTTRANSACTION开始事务,执行SQL操作后用COMMIT提交或ROLLBACK回滚。2)使用SAVEPOINT可以设置保存点,允许部分回滚。3)性能优化建议包括缩短事务时间、避免大规模查询和合理使用隔离级别。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具