Hadoop入门教程(一):Hadoop 是什么 Hadoop 由什么组成
在上一大章节我们讲了大数据仓库的概念,我们了解了数仓的建设思想,接下来我们就开始让我们的思想慢慢变为现实,承载这一切的基础就是 Hadoop 生态圈中的各种大数据组件,慢慢形成我们的大数据仓库和平台。
Hadoop是什么
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。注意它是基础架构,也就是说他是一个最底层的架构,单独使用它是做不了什么的。它提供了一个海量数据存储和分析计算的能力。广义上来说Hadoop这个词代表了Hadoop生态圈。
Hadoop三大发行版本
Apache Hadoop
Apache版本最原始(最基础)的版本,对于入门学习最好。
官网地址:http://hadoop.apache.org
下载地址:https://archive.apache.org/dist/hadoop/common/
Cloudera Hadoop
2008年成立的 Cloudera 是最早将 Hadoop 商用的公司,为合作伙伴提供Hadoop的商用解决方案。2009年 Hadoop 的创始人 Doug Cutting 也加盟 Cloudera 公司。Cloudera产品主要为CDH。
官网地址:https://www.cloudera.com/downloads/cdh.html
下载地址:https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_6_download.html
Hortonworks
2011年成立的 Hortonworks 是雅虎与硅谷风投公司 Benchmark Capital 合资组建的。公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop80%的代码。主打产品是Hortonworks Data Platform(HDP)。
Hadoop组成
Hadoop 在 1.X 和 2.x 版本有一些区别,Hadoop1.X 由Common(辅助工具)、HDFS(数据存储)、MapReduce(计算+调度)构成。
Hadoop2.x 由Common(辅助工具)、HDFS(数据存储)、Yarn(资源调度)、MapReduce(计算)构成。
Hadoop2.x 比 Hadoop1.X 多了一个 Yarn(资源调度),并且 MapReduce 只负责计算工作。
HDFS简介
Hadoop分布式文件系统(HDFS)是非常重要的核心功能,有着高容错性的特点,将文件分块存储在分布式的节点中,并且是冗余存储,即使单个节点发生灾难性事故,也不会丢失数据。
- NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性,以及每个文件的块列表和块所在的DataNode。
- DataNode(dn):在本地文件系统中存储文件块数据,以及块数据的校验和。
- Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
NameNode可以理解为数据的索引,DataNode存储数据本身,Secondary NameNode是索引的快照。由于这里只是简单介绍Hadoop,后续会详细讲解,此处不展开说了。
YARN简介
上面我们说了 Hadoop2.x 中增加了 Yarn(资源调度),那资源调度是在调度什么呢?在计算机中资源就是CPU和内存,CPU和内存都是有上限的,所以需要分配给更需要的进程来使用。
ResourceManager(RM)就是资源管理者,外部的客户端提交作业请求都会先到 ResourceManager(RM),他代表了集群所有的资源,并监控 NodeManager、启动或监控ApplicationMaster。
NodeManager(NM) 只管理一个节点的资源,处理来自ResourceManager(RM)的命令和来自ApplicationMaster的命令。
ApplicationMaster(AM)负责数据的切分、为应用程序申请资源分配内部任务和任务的监控容错。当一个任务提交到 ResourceManager(RM)时就会选择一个节点启动一个ApplicationMaster(AM)来负责这个任务的跟进,也就是对这个任务的一个负责人。也就是说有一个作业任务就会有对应的一个ApplicationMaster(AM)来跟进这个作业任务的执行和调度。
Container 是对资源的一个抽象封装,里面会包含内存、CPU、磁盘、网络等资源,NodeManager(NM) 就是通过打开和关闭 Container 来调度资源的。
MapReduce简介
MapReduce其实是两个部分,分为 Map 和 Reduce,可以说是一种思想和处理算法。
Map 负责将数据拆分成很多份,例如我们有100T的数据,在里面找一个数据,Map 就是先将这 100T数据拆分成一千份,每份100G,分发给各个节点,这样就将100T的数据转换成100G了,一千个节点同时查找提高效率。
Reduce 就是将上面拆分给一千个节点的查询结果汇总起来,把大家的结果收集起来,成为最终的结果。
这里只做开门见山的简单介绍,后面会详细说明,此处不展开说了。
商业用途请联系作者获得授权。
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
相关推荐
猜你还喜欢这些内容,不妨试试阅读一下评论与留言
以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。微信订阅号
扫码关注「任霏博客」微信订阅号- 大佬 引入jar包那里的 driver class 怎么选的?
- 我也遇到了这个问题,已经解决了,在此分享一下 1、宿主机也要创建kingbase的用户和用户组,并且要查看一下用户和用户组的ID(这个很重要) 2、把data目录的用户和用户组设置为kingbase 3、先不要把data路径挂载到宿主机上,这时就可以正常启动,启动后进入容器,查看一下容器内的kingbase的用户和用户组ID是多少,和第一步的ID是否一致,如果ID一致,那正常挂载目录就行;如果ID不一致,那就需要修改Dockerfile文件,在构建镜像时,修改容器内的用户和用户组ID,必须和宿主机的保持一致。然后重新构建镜像,就可以正常挂载宿主机目录了 4、其实直接修改宿主机的用户和用户组ID也是可以的,但是容器内的ID一般是1000,但是宿主机的这个ID很可能已经被占用了,无法修改,就只能修改容器内的ID
- 接口已经允许跨域请求,也就是说你可以在你的页面上调用,获取用户的公网 IP。 如果你还需要其他需求,可以提交 Issue 给我。
- V008R003C002B0320 这个对应的jdbc链接驱动你在哪里找到的?我也遇到了这个问题。
- WARNING: max_connections should be less than orequal than 10 (restricted by license) HINT: the value of max_connect is set 10 WARNING: max_connections should be less than orequal than 10 (restricted by license) HINT: the value of max_connect is set 10 kingbase: superuser_reserved_connections must be less than max_connections 我按照文档修改了以后,不知道如何重启。
- 然后把数字都改成 1 再启动。 如何重新启动?
- ksql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.KINGBASE.54321"
- 进入容器查看一下日志,是不是启动失败了,日志文件在:/opt/kingbase/logfile
- ksql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.KINGBASE.54321"?
- 先通过 docker exec -it 容器名/id /bin/bash 进入容器,然后在容器中使用 ksql 客户端进行连接数据库:/opt/kingbase/Server/bin/ksql -U system test
- 免费.ml域名10年委托合同到期被马里共和国收回域名经营权
- 从极狐Gitlab看各种中间件技术选型
- 时隔十年首次收到 Google AdSense 的付款
- ga域名被加蓬共和国从Freenom公司手中收回域名经营权
- Freenom 被 Meta(Facebook) 起诉导致暂停 .tk/.ga/.ml/.cf/.gq 等新域名注册
- 生花妙笔信手来 – 基于 Amazon SageMaker 使用 Grounded-SAM 加速电商广告素材生成 [1]
- github.renfei.net 不再完整代理 Github 页面改为代理指定文件
- 优雅的源代码管理(三):本地优雅的使用 Git Rebase 变基
- 优雅的源代码管理(二):Git 的工作原理
- 优雅的源代码管理(一):版本控制系统 VCS(Version Control System)与软件配置管理 SCM(Software Configuration Management)