精华内容
下载资源
问答
  • hadoop yarn web无法访问

    2021-10-11 16:48:15
    hadoop集群正常启动后,hdfs的web可以访问,但是yarn的web页面无法访问,查看yarn的日志,也是正常启动,没有异常日志,后来以为端口的问题,查看端口的时候,发现了不同: 8088对应的local Address是docker本身...

    hadoop集群正常启动后,hdfs的web可以访问,但是yarn的web页面无法访问,查看yarn的日志,也是正常启动,没有异常日志,后来以为端口的问题,查看端口的时候,发现了不同:

    8088对应的local Address是docker本身的ip,和50070对应的是不一样,然后在yarn-site.xml添加配置:    

    <!--yarn总管理器的web http通讯地址-->
        <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>0.0.0.0:8088</value>
        </property>

    再重新启动就可以访问了;

    网上查询了一下IP和0.0.0.0的区别,好像是否允许外网ip访问的区别,具体为什么不是很懂。

     

     

    展开全文
  • 一个Applciation运行在YARN上的流程为,从YARN Client向ResourceManager提交任务,将Applciation所需资源提交到HDFS中,然后Resource...

    一个Applciation运行在YARN上的流程为,从YARN Client向ResourceManager提交任务,将Applciation所需资源提交到HDFS中,然后ResourceManager启动APPMaster,APPMaster通知各个NodeManager启动container执行具体到计算任务。在启动container之前需要从HDFS上下载该container执行所依赖的资源,这些资源包括jar、依赖的jar或者其它文件,这个过程就称为资源本地化(Resource Localization)。

    本篇主要介绍下资源本地化相关的内容。

    相关概念

    本地化(Localization)

    本地化是指将HDFS上的资源下载到本地的过程。将资源本地化,使container不用总是访问HDFS上的数据,而是直接访问本地数据,提高效率。

    本地资源(LocalResource)

    本地资源是指container运行时所需要的资源,可以是某个文件或者依赖的library,这些资源存在HDFS中。NodeManager在container启动之前负责将这些资源进行本地化。对于Application来说,本地资源指:

    • URL: 需要从HDFS上下载的本地资源地址

    • Size: 本地资源的大小

    • timestamp: 本地资源在HDFS上创建时的时间戳

    • LocalResourceType: NodeManager本地化资源时指定的资源类型,有FILE、ARCHIVE和PATTERN

    • Pattern: 从archive中解压具体内容时使用的规则匹配方式(只有LocalResourceType是PATTERN时才生效)。

    • LocalResourceVisibility: NodeManager将资源本地化之后针对该Nodemanager上其它用户和Application的可见性。可见范围为PUBLIC、PRIVATE和APPLICATION。

    NOTE: 本地资源并不是指在本地磁盘的资源,而是需要从HDFS下载到本地的资源。

    那么container会请求什么样的资源进行本地化呢?可以是任意的文件,但是这些文件对contianer必须是只读的。

    下面举几个比较适合做本地资源的典型例子:

    • container启动的时候需要的代码库,如jar文件

    • container启动时所需要的configure文件

    • 静态的文件目录

    一些动态资源不适合作为本地资源,例如:container需要的资源有可能被其它组件进行更新,application自己会直接更新的文件或者application想跟其它服务共享文件的变化情况的。

    ResourceLocalizationService

    ResourceLocalizationService是NodeManager内部的一个服务,主要负责下载和管理container所需的各种资源。下载时会对所有可用的磁盘进行负载均衡,对下载的资源会严格控制他们的访问权限。

    DeletionService

    DeletionService也是NodeManager内部的一个服务,主要负责在收到指令之后删除本地目录

    Localizer

    Localizer实际上是一个线程,用于资源本地化。Localizer有两种类型,一种是指用与下载PUBLIC访问类型资源的PublicLocalizer,另一种是下载PRIVATE和APPLICATION访问类型的ContainerLocalizers。

    LocalCache

    LocalCache是NodeManager维护所有下载到本地的文件的local-cache。这些资源通过下载时指定的HDFS地址来唯一标识。

    概念补充

    LOCALRESOURCE TIMESTAMPS

    timestamp反应了本地资源的一个版本,NodeManager在下载本地资源时会检查timestamp,这样Application在运行时看到的文件内容都一样。

    利用timestamp,YARN能发现资源是否发生过变化,如果发生变化将使container失败避免不一致发生。因为在HDFS上的资源一旦被NodeManager本地化到本地磁盘,这个文件就不再与源文件有任何联系,只会记录下原来的URL用来在本地进行唯一标识。此时即使源文件发生变化,NodeManager也不会跟踪此变化再次下载文件。

    这里需要注意的是当container启动时,ApplicationMaster会向运行container的NodeManager指定资源的timestamp,同样当运行ApplicationMaster的container启动时,也需要资源的timestamp,此时这个timestamp就需要由client指定。以MapReduce on YARN为例,MapReduce的JobClient决定ApplicationMaster需要的资源的timestamp,然后由ApplicationMaster自己决定map和reduce所需资源的timestamp。

    LOCALRESOURCE TYPES

    上一节中提到LocalResourceType为FILE、ARCHIVE和PATTERN,下面介绍下三种type的具体含义。FILE类型是指普通的文件,文本类型或者二进制文件

    • ARCHIVE类型是指一些可以被NodeManager自动识别解压的归档文件,比如jars、tars、tar.gz和zip

    • PATTERN是ARCHIVE和FILE的一种混合体。这种类型下载到本地的源文件会保留,并且在本地化时只有解压的文件会留存在本地文件系统中。源文件和解压的文件在同一个目录中。哪些文件需要从ARCHIVE中抽取出来,哪些不需要这些都是由pattern决定的。目前只有jar支持PATTERN,其它都被认为正常的ARCHIVE。

    LOCALRESOURCE VISIBILITES

    上一节LocalResourceVisibility中提到本地资源有三种可见性,分别为PUBLIC、PRIVATE和APPLICATION。其中

    • PUBLIC的访问权限是指任何用户的任意Application的container都可以访问。典型的PUBLIC资源是那些在HDFS上可以被任何人访问的文件,当这些资源被本地化之后会保留相同的访问权限。如果一个资源是PUBLIC,当有container(container可以是当前Attempt,也可以是其它用户的任意Application中的container)请求相同的本地资源时,只要此资源没有被LocalCache删除,都可以直接从LocalCache里直接使用,而不需要再次下载。

    • PUBLIC资源存储在NodeManager本地磁盘的 <local-dir>/filecache 目录下,此目录中的所有文件的owner是NodeManager进程启动时的用户,并且所有用户都有读权限,因此这些资源可以在此NodeManager上运行的所有用户的container共享。

    • PRIVATE权限本地资源只能在当前节点上相同用户的application之间共享,这些资源存储在NodeManager本地磁盘的 <local-dir>/usercache/$username/filecache 目录下,这些文件的owner是启动Application的user,并且其它用户没有访问权限。类似PUBLIC,一旦资源本地化,所有的用户都没有写权限,即使是提交任务的user。这样是为了避免恶意的container去修改文件。

    • APPLICATION只在当前节点上同一个application的container之间共享。这些资源存储在NodeManager本地磁盘的 <local-dir>/usercache/$username/appcache/<app-id>/ 目录下,文件的owner是Application的提交者,并且只有读权限。

    这里需要注意的是LOCALRESOURCE VISIBILITIES与LOCALRESOURCE TIMESTAMPS类似,都是由ApplicationMaster指定本地资源的可见性,NodeManager并不会对资源的可见性做任何决定。同样当运行ApplicationMaster的container启动时,也需要资源的可见性,此时这个可见性就需要由client指定。以MapReduce on YARN为例,MapReduce的JobClient决定ApplicationMaster需要的资源的可见性,然后由ApplicationMaster自己决定map和reduce所需资源的可见性。

    本地化流程

    PUBLIC资源本地化是由PublicLocalizer实现的,在NodeManager进程中会有一个线程池PublicLocalizers,其个数是由yarn.nodemanager.localizer.fetch.thread-count决定,线程池的大小决定并行下载PUBLIC资源的线程最大个数。当PublicLocalizer本地化PUBLIC资源时,会通过检查这些资源在HDFS上的权限来确定所申请的资源确实为PUBLIC。只要有资源不符合就拒绝本地化。PublicLocalizer能安全的从HDFS上下载资源是向ContainerLaunchContext传递了证书。

    PRIVATE/APPLICATON资源的本地化是由ContainerLocalizer实现的,不同与PUBLIC的PublicLocalizer实现。PublicLocalizer是直接在NodeManager中启动一个线程池进行本地化,而ContainerLocalizer出于安全问题,并没有在NodeManager进程中直接实现,而是在continer中实现的。

    PRIVATE/APPLICATON资源的本地化是由ContainerLocalizer实现,这是一个单独的进程,这个进程由LocalizerRunner线程管理,LocalizerRunner是NodeManager中的一个线程,只要某个container有资源还没有下载,那么此container就会触发一个LocalizerRunner。下面看下具体的细节:

    当某个container第一次请求PRIVATE/APPLICATION类型的本地资源时,如果没有在LocalResourcesTracker中找到,则加入pending-resources列表。随后是否需要创建LocalizerRunner线程取决于是否有必要下载资源,如果需要就将本地资源加入LocalizerRunner维护的pending-resources列表。

    NodeManager在安全模式时,本地资源本地化时需要所用的user是application的提交用户而不是NodeManager的启动用户。因此LocalizerRunner会以application提交者的身份启动LinuxContainerExecutor(LCE)进程,然后LCE会执行ContainerLocalizer下载资源。ContainerLocalizer启动之后会与NodeManager维持一个心跳,通过心跳,LocalizerRunner给ContainerLocalizer分配需要下载的资源或者停止ContainerLocalizer进程,而ContainerLocalizer会通知LocalizerRunner自己的下载进度。如果资源下载失败,这个资源将会从LocalResourcesTracker中移除,并且container最终也会失败。如果下载成功,LocalizerRunner会通过心跳给ContainerLocalizer另一个资源进行下载,直到所有的资源都下载完。

    本地资源的生命周期

    由于本地资源的访问权限不一样,则不同的LocalResourceType在本地保留的时间也会不一样。

    • PUBLIC由于是在任何用户的任意Application之间共享,所以并不会在某个container或者application结束之后被删除,只有在本地目录达到存储阈值时才会被删除,这个阈值由yarn.nodemanager.localizer.cache.target-size-mb控制。

    • PRIVATE和PUBLIC的生命周期一样。

    • APPLICATION会在application结束之后立即删除。

    本地化相关的配置

    在yarn-site.xml中有一些资源本地化相关的配置。

    • yarn.nodemanager.local-dirs: 资源本地化时所在的本地目录,可以是以逗号分隔的多个磁盘目录。

    • yarn.nodemanager.local-cache.max-files-per-directory: 每个目录中最多本地化文件的个数,PUBLIC / PRIVATE / APPLICATION分别统计。

    • yarn.nodemanager.localizer.address: ResourceLocalizationService服务监听的RPC地址,用来接收不同localizers

    • yarn.nodemanager.localizer.client.thread-count: ResourceLocalizationService中用来处理来自localizers请求的线程数。默认是5

    • yarn.nodemanager.localizer.fetch.thread-count: 本地化PUBLIC资源时PublicLocalizer的线程数。默认是4

    • yarn.nodemanager.delete.thread-count: DeletionService中删除文件的线程数,默认是4。

    • yarn.nodemanager.localizer.cache.target-size-mb: 本地化资源所占的最大磁盘空间,单位是MB,比包括APPLICATION资源。

    • yarn.nodemanager.localizer.cache.cleanup.interval-ms: 每隔固定时间,去检查下磁盘的使用量。在此间隔之后,如果存储的磁盘空间超过了配置的阈值,会删除未用的资源。

    未使用的资源是指没有被正在运行的container引用的资源。每次container请求资源时,container会被加入到一个资源引用列表中,直到container结束之后才会被移除。所以当引用数为0时,可以被删除。

    参考

    • Management of Application Dependencies in YARN

    • Resource Localization in YARN: Deep Dive

    本文转载自 http://bigdatadecode.club/YARN-Resource-Localization.html

    
    
    
    Flink 从入门到精通 系列文章
    基于 Apache Flink 的实时监控告警系统关于数据中台的深度思考与总结(干干货)日志收集Agent,阴暗潮湿的地底世界
    
    

    公众号(zhisheng)里回复 面经、ClickHouse、ES、Flink、 Spring、Java、Kafka、监控 等关键字可以查看更多关键字对应的文章。
    
    
    点个赞+在看,少个 bug ????
    
    展开全文
  • 本地监听等待反弹 shell 连接 调用 New Application API 创建 Application 调用 Submit Application API 提交 我这里使用的是vulhub的环境,环境内自带exp脚本 自行更改脚本内容: 监听端口准备反弹shell: ...

    漏洞复现

    利用过程如下:

    1. 在本地监听等待反弹 shell 连接
    2. 调用 New Application API 创建 Application
    3. 调用 Submit Application API 提交

    我这里使用的是vulhub的环境,环境内自带exp脚本
    自行更改脚本内容:
    在这里插入图片描述
    监听端口准备反弹shell:
    在这里插入图片描述
    运行python,查看反弹shell
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • YARN提供有默认开放在8088和8090的REST API(默认前者)允许用户直接通过API进行相关的应用创建、任务提交执行等操作,如果配置不当,REST API将会开放在公网导致未授权访问的问题,那么任何黑客则就均可利用其进行.

    简介

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一管理和调度,可以把MapReduce计算框架作为一个应用程序运行在YARN系统之上,通过YARN来管理资源。

     

    漏洞概述

    YARN提供有默认开放在8088和8090的REST API(默认前者)允许用户直接通过API进行相关的应用创建、任务提交执行等操作,如果配置不当,REST API将会开放在公网导致未授权访问的问题,那么任何黑客则就均可利用其进行远程命令执行,从而进行挖矿等行为。

     

    受影响范围:

    Apache Hadoop YARN资源管理系统

     

    环境搭建

    进入目录
    
    cd vulhub-master/hadoop/unauthorized-yarn
    
    启动环境
    
    docker-compose up -d

    访问http://your-ip:8088即可看到页面

    漏洞复现

     

    在目录里就有exp

    修改lhost反弹shell的IP即可

    在本地监听9999端口,然后运行exp即可收获shell

    nc -lvvp 9999
    
    python exploit.py

    修复建议

     

    升级到安全版本

    展开全文
  • Hadoop Hadoop就是存储海量数据和分析海量数据的工具。Hadoop到底是干什么用的? 思路 由于服务器直接在开放了 ...在本地监听等待反弹 shell 连接 调用 New Application API 创建 Application 调用 Submit Application
  • hadoop的配置文件中的不要填写localhost,都填写主机名,用hostname可以打印出主机名
  • Yarn配置

    千次阅读 2021-01-13 14:19:47
    参数名参数值描述在在平台情况、在哪个文件hdpapacheyarn.resourcemanager.am.max-attempts2http地址yarn.resourcemanager.address${yarn....客户端通过该地址向RM提交应用程序,杀死应用程序等yarn.resource...
  • 1. 本地Master负责调度资源 1.1 命令行 bin/spark-submit --class cn.spark.com.WordCountForHDFS \ --master spark:node01:8080 \ --executor-memory 1g \ //每个executor分配1g的内存 --total-executor-cores 4 \ ...
  • Windows或者Linux上yarn模式运行 Windows或者Linux上远程提交到yarn (1)问题一 2021-02-22 20:24:16,478 INFO [main] client.RMProxy (RMProxy.java:createRMProxy(98)) - Connecting to ResourceManager ...
  • -- 允许跨域访问的来源,如果有多个,用逗号(,)分隔 --> <property> <name>hadoop.http.cross-origin.allowed-origins</name> <value>*</value> </property><-- 与 ...
  •  ContainerManagerImpl内部包含一个负责资源本地化的服务,它负责Container所需资源的本地化,能够根据描述从HDFS上下载Container所需的文件资源并尽量将他们分摊到各个磁盘上,以防止出现访问热点。此外还会为下载...
  • Apache Hadoop YARN

    2021-02-24 09:07:03
    官方文档:https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html 1、概述 1.1 什么是YARN? Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 ...
  • 1、yarn产生背景mapReduce存在问题:JobTracker单点故障JobTracker承受的访问压力大,影响系统扩展不支持MapReduce之外的计算框架,比如Storm,spark,flink2、yarn的核心思想是一种新的 Hadoop 资源管理器,它是一个...
  • 1.访问步骤 先确保你的手机和电脑连在同一个局域网内. 在VScode中输入ipconfig,获取以太网或者无线的IPv4地址(或Window + R, 然后输入 ipconfig,然后获取ip地址) 长这样: 192.168.XX.XX 手机浏览器里输入这个...
  • Hadoop YARN ResourceManager 未授权访问Vulnhub官方复现教程漏洞原理复现过程启动环境漏洞复现EXP Vulnhub官方复现教程 https://vulhub.org/#/environments/hadoop/unauthorized-yarn/ 漏洞原理 ...
  • 文章目录Spark安装配置2.1 Spark安装2.2 本地模式2.3 伪分布式2.4 集群模式--Standalone模式2.4.1 Standalone 配置2.4.2 运行模式(cluster / client) 2.1 Spark安装 官网地址:http://spark.apache.org/ 文档地址...
  • YARN Container的NUMA感知支持

    千次阅读 2018-09-16 23:31:54
    当然,这些处理器也可以访问别的Node区域的内存,只是说跨区域内存访问会慢于本地内存访问的速度。下面是NUMA架构体系。 P代表的是处理器。上图显示的左边为一个Node区域,一块内存被5个处理器所共享,...
  • Yarn详解

    千次阅读 2016-12-31 17:04:32
    1. Yarn架构1.1 简介1.1.1 架构YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等几个组件构成。YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,...
  • YARN上运行Spark API

    千次阅读 2018-12-18 11:39:55
    启动命令格式: $ ./bin/spark-submit --class ...--master yarn --deploy-mode cluster [options] &lt;app jar&gt; [app options] 实例: $ ./bin/spark-submit --class org.apache.spark.exam...
  • -yarn serve Network: unavailable
  • 本文针对在YARN上运行Spark的常用配置参数进行讲解 1. 在yarn上启动spark application 确保HADOOP_CONF_DIR或YARN_CONF_DIR指向包含Hadoop集群(客户端)配置文件的目录。 这些configs用于写入HDFS并连接YARN ...
  • //flink的本地配置目录,为了得到flink的配置 // 如果出现org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot instantiate user function.错误 // 则在flink-config.yaml加入 // classloader....
  • 安装YARN环境二 .安装YARN2.1. 添加用户2.2. 配置YARN相关的Kerberos账户2.2.1. 创建keytab存放目录2.2.2. 配置master01上面运行的服务对应的Kerberos账户2.2.3. 权限设置2.2.4. 编译源码构建Linux-Container-...
  • 1.安装yarn方法一:使用安装包安装官方下载安装包,https://yarnpkg.com/zh-Hans/docs/install,安装完毕后,一定要配置环境变量方法二:使用npm安装npm i yarn -g-i:install-g:全局安装(global),使用 -g 或 --...
  • 如图所示, 感觉是路由加载的问题,麻烦大佬看下代码 name 报undefined的地方是这里 index.tsimport Vue from 'vue';...所以路由最后成这样了 这是本地的。因此redirect 会一直跳不到homePage,然后就内存溢出了。
  • Yarn 的 多队列 模式

    2021-03-23 20:35:05
    文章目录Yarn 容量调度器并发度问题演示增加 ApplicationMaster 资源比例配置 Yarn 容量调度器多队列1)增加容量调度器队列2)测试新队列 Yarn 容量调度器并发度问题演示 Yarn 默认调度器为 Capacity Scheduler...
  • --- https://registry.yarnpkg.com # 使用淘宝镜像源 yrm use taobao # 测试访问速度 yrm test taobao YARN命令 版本查看 yarn -v 建立新工程 yarn init # 初始化项目,生成 package.json 文件(需要手动选择配置)...
  • 解决办法一:控制台输入yarn add@babel/core @babel/preset-env,再重新yarn start即可运行。报错如图 解决办法二:控制台输入npm install @babel/core @babel/preset-env,再重新yarn start即可运行。继续报错 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,206
精华内容 9,682
关键字:

本地访问yarn