首页 文章 精选 留言 我的

精选列表

搜索[hadoop],共8432篇文章
优秀的个人博客,低调大师

Big Data, MapReduce, Hadoop, and Spark with Python

此书不错,很短,且想打通PYTHON和大数据架构的关系。 先看一次,计划把这个文档作个翻译。 先来一个模拟MAPREDUCE的东东。。。 mapper.py class Mapper: def map(self, data): returnval = [] counts = {} for line in data: words = line.split() for w in words: counts[w] = counts.get(w, 0) + 1 for w, c in counts.iteritems(): returnval.append((w, c)) print "Mapper result:" print returnval return returnval reducer.py class Reducer: def reduce(self, d): returnval = [] for k, v in d.iteritems(): returnval.append("%s\t%s"%(k, sum(v))) print "Reducer result:" print returnval return returnval main.py from mapper import Mapper from reducer import Reducer class JobRunner: def run(self, Mapper, Reducer, data): # map mapper = Mapper() tuples = mapper.map(data) # combine combined = {} for k, v in tuples: if k not in combined: combined[k] = [] combined[k].append(v) print "combined result:" print combined # reduce reducer = Reducer() output = reducer.reduce(combined) # do something with output for line in output: print line runner = JobRunner() runner.run(Mapper, Reducer, open("input.txt"))

优秀的个人博客,低调大师

通过ambari安装hadoop集群(二)

开始安装,输入主机名字,然后选择私钥。 注意java_home那里需要改为/usr/jdk64/jdk1.6.0_31,然后点击确认,它会出一个警告提示,别管他就行。 等待安装完毕之后,就会出现成功的提示,下面出现黄字的,查看一下warning,除了有mysql账户的问题之外,别的都要处理掉,否则安装过程会出问题的。搞定了,要再检查一遍! 关闭它,然后进入下一步。 全选吧,都要,然后进入下一步,哈哈! 因为是小集群,所以我就随便弄了,实际上不能这么搞的,然后点下一步。 在HDFS这一页的高级设置里面,找到这个参数,我设置为2,也可以设置成1,但是不能大于前面设置的datanode的数量,比如我只有两个datanode,我就不能设置为2分,否则会出错的。 把这个安全认证也禁用了,否则用api访问的时候会说没权限的。 在HIVE页签 点击下一步,下一步,进入安装过程的等待界面,如下: 成功安装的界面,之后在主界面查看如下,全是绿的,行情一片大好啊! 注意:ambari-server和ambari-agent不会开机启动,ambari-server是通过ambari-agent来控制每一台机器的,每次重启都需要手动开启。 没关系,很简单!在每一台机器上执行一下这句命令就可以啦! chkconfig --add ambari-agent

优秀的个人博客,低调大师

Hadoop on Yarn 各组件详细原理

运行在独立的节点上的ResourceManager和NodeManager一起组成了yarn的核心,构建了整个平台。ApplicationMaster和相应的container一起组成了一个Yarn的应用系统。 ResourceManager提供应用程序的调度,每个应用程序由一个ApplicationMaster管理,以Container的形式请求每个任务的计算资源。Container由ResourceMangaer调度,由每个节点的NodeManager上进行本地的管理。 ResourceManager 组件 弄了一个大大的ResourceManager,醒目吧哈哈- -,扯淡到此为止,ResourceManager是Master,仲裁集群所有的可用资源,从而帮助管理运行在Yarn平台上的分布式应用程序。与其他组建的协作包括:接收ApplicationMaster的资源请求,每个节点的NodeManager从ResourceManager中获取指令,管理单个节点上的可用资源。(ApplicationMaster的职责就是向ResourceManager申请资源并且和NodeManager一起工作、启动、监控和停止Container。 一、客户端和ResourceManager交互 这里细说Client端的话,ResourceManager主要是通过Client Service、Admininistration Service、Application ACL Manager ResourceManager Web Application及Web Service组件与客户端交互。 1、Client Service 这个服务实现了基本的客户端到ResourceManager的接口ApplicationClientProtocol.该组件处理所有来自客户端到ResourceManager的远程过程调用(RPC)通信。包括:应用程序提交、应用程序终止、获取应用程序,队列,集群统计,用户ACL及更多信息。在安全模式下,Client Service确保所来自用户的请求都已经认证过(比如通过Kerberos),对于不能直接通过Kerberos认证的客户端,ClientRMService也提供了API,包括ResourceManager代理令牌,代理令牌是Kerberos认证客户端的一种特殊对象,能够第一次安全的与ResourceManager通信并传递给它自己额非认证的进程。 2、Administration Service 既然Client Service是负责处理一般用户应用程序的提交或终止,为了确保管理员的请求不会被一般用户的请求饿死,提供了搞优先级的操作命令,这里就多分离出了一个接口供管理员使用。通过ResourceManagerAdministrationProtocol来实现的通信协议。包含的主要操作有:刷新队列,重新分配队列或改变队列的属性、刷新ResourceManager处理的节点列表,例如:增加新安装的节点或退役现有节点等。 3、Application ACL Manager 类似客户端和管理员等的请求这样面向用户的API,ResourceManager可以通过设置配置属性yarn.acl.enable为true来启动应用程序的ACL。查看访问的ACL决定谁可以通过RPC接口查看一些货所有应用程序的相关细节,WEB UI服务及WEB服务,修改的ACL决定着哪些用户可以"修改"应用程序(杀死程序等) 当相同的ACL信息传递给ApplicationMaster,这样ApplicationMaster可以使用该信息让用户访问ApplicationMaster内部运行的一些服务,作为ContainerLaunchContext的一部分,当拉起一个容器时NodeManager也接收相同的ACL信息,然后使用它们控制针对应用程序/container的请求,主要包括它们的状态、应用日志等。 4、ResourceManager Web Application 和 Web Service 这个就是ResourceManager的一个web应用程序来输出集群的状态信息、指标、节点活跃列表等,指向ApplicationMaster Web接口的超链接及一个调度的专用接口。(就是我们在集群配置中加入的web.address) 二、应用程序与ResourceManager的通信 一旦应用程序通过ResourceManager中的面向客户端的服务,它就会穿过ResourceManager的内部,负责拉起ApplicationMaster的状态机。主要包括以下几个通信方面: 1、ApplicationMaster Service 该组件相应所有来自ApplicationMaster的请求,实现了ApplicationMasterProtocol协议,这是ApplicationMaster与ResourceManager通信的唯一协议。主要包括以下任务:注册新的ApplicationMaster、来自任意正在结束的ApplicationMaster的终止/取消注册请求、认证来自不同ApplicaitonMaster的所有请求,确保合法的ApplicationMaster发送的请求传递给ResourceManager中的应用程序对象、获取来自所有运行ApplicationMaster的Container的分配和释放请求、异步的转发给Yarn调度器. ApplicaitonMaster Service确保了任意时间点、任意ApplicaitionMaster只有一个线程可以发送请求给ResourceManager,因为在ResourceManager上所有来自ApplicaitonMaster的RPC请求都串行化了。 2、ApplicationMaster 存活监控 这个监控器跟踪每个ApplicationMaster以及它的最后的心跳时间。可在配置文件中配置时间,在配置时间内没有产生心跳的ApplicationMaster会被标记为死亡,ResourceManager会重新调度这个应用程序,在一个新的container上运行一个新的ApplicaitonMaster实例,默认情况下,最多允许两次这样的尝试。 三、节点和ResourceManager 通信 下列是ResourceManager的组件和运行在集群节点上的NodeManager进行通信。 1、ResourceManager Tracker Service NodeManager发送心跳给ResourceManager,ResourceManager的该组件负责相应来自所有节点的RPC。实现了ResourceTracker接口与所有NodeManager的通信。主要负责:注册新节点、接收前面注册节点的心跳、确保合法的节点可以和ResourceManager通信。Reource Tracker Service转发一个合法的心跳给YARN调度器,YARN调度器随后根据节点的空闲资源及不同应用程序的资源请求做调度决定。 2、NodeManagers 存活监控 为跟踪活跃的节点和确定已死的节点,该组件跟踪每一个节点的标识符(ID)和它最后的心跳时间。 3、Nodes-List Manager 是在ResourceManager内存中的一个集合,包括有效节点和被排除的节点。它也跟踪由管理员明确退役的节点。 ApplicationMaster 组件 ApplicationMaster负责管理已提交的应用程序的集合。在应用程序提交后,首先检查其合法性,然后,确定没有其他已提交的应用程序已经使用相同的ID.该组件还负责记录和管理已结束的应用程序,过段时间才会从ResourceManager的内存中清除。 一、ApplicationMaster Launcher 在Yarn中,每一个其他类型的Container的拉起都是由ApplicationMaster发起的,ApplicationMaster本身的Container是由ResourceManager申请,并在NodeManager上准备和拉起的。该组件维护一个线程池来设置环境,且和NodeManager通信来拉起新提交应用程序的ApplicationMaster,或者因为某些原因失败的先前应用程序实例所失败的ApplicationMaster。它也在以应用程序正常结束或者要强行终止时,负责告诉NodeManager来清理ApplicaitonMaster。(杀掉相应进程) 二、YarnScheduler Yarn调度器负责给正在运行的应用程序分配资源,这些应用程序受到容量、队列等各方面的限制。 三、ContainerAllocationExpirer 该组件负责确保所有分配的Container最终被ApplicationMaster使用,并在相应的NodeManager上拉起。 NodeManager 组件 NodeManager接受来自ApplicationMaster的启动或停止Container的请求,管理Container是NodeManager的核心功能。在真正拉起一个Container之前,NodeManager会将所有需要的库文件下载到本地,包括数据文件,可执行文件、tarball、JAR文件,shell脚本等待。这样下载好的库文件可以通过本地应用级别缓存被同一应用的多个Container共享。 NodeManager内部也可以划分为一些列嵌套组件,卧槽好多啊。。。 一、NodeStatusUpdater 在NodeManager刚启动时,NodeStatusUpdater组件会向ResourceManager注册,发送本节点的可用资源,以及NodeManager的Web server和RPC Server的监听端口。ResourceManager在注册过程中,向NodeManager发出安全相关的key,NodeManager将用这个KEY作为ApplicationMaster的Container请求做认证。 二、ContainerManager 是NodeManager的核心管理组件。其中也包含许多子组件:RPC Server、资源本地化服务、PUBLIC资源的本地化等等。 具体组件就不一一列举了。。。。太多了。。。。。。。 整个作业大体总体运行流程: 1、应用程序提交给ResourceManager。 2、ApplicationMaster启动,并向ResourceManager注册。 3、ApplicationMaster向ResourceManager请求Container执行实际的工作。 4、ApplicationMaster将从ResourceManager分配的Container信息(包括各种资源配置啊等信息)传递给NodeManager启动。 5、随之,计算过程在Container中进行,这些Container将与ApplicationMaster保持通信,发送心跳等告知任务过程。 6、当应用程序完成后,Container被停止,ApplicationMaster从ResourceManager中注销。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册