v-java crash log-log是什么文件夹?里面都是文本文件,时刻记录着通话、网络记录,是不是木马程序?

iOS应用崩溃(一)——Crash文件解析
一、Crash文件结构当程序运行Crash的时候,系统会把运行的最后时刻的运行信息记录下来,存储到一个文件中,也就是我们所说的Crash文件。iOS的Crash日志通常由以下6个部分组成;(1)、Incident Identifier:崩溃报告的唯一标识符,不同的Crash;(2)、CrashReporter Key :是与设备标识相对应的唯一键值。虽然它不是真正的设备标识符,但也是一个非常有用的情报:如果你看到100个崩溃日志的CrashReporter Key值都是相同的,或者只有少数几个不同的CrashReport值,说明这不是一个普遍的问题,只发生在一个或少数几个设备上。(3)、Hardware Model :标识设备类型。 如果很多崩溃日志都是来自相同的设备类型,说明应用只在某特定类型的设备上有问题。上面的日志里,崩溃日志产生的设备是iPhone 7,1。对照表参考:/wiki/Models(4)、Process :是应用包名称。中括号里面的数字是闪退时应用的进程ID。(5)、Path:可执行程序再手机上的存储位置;(6)、Identifier:你的App的Identifier,通常为『com.xxx.yyy』,一般情况下xxx代表你们公司的域名,yyy代表某一个App;(7)、Version:当前App的版本号,由Info.plist中的两个字段组成,CFBundleShortVersionString and CFBundleVersion;(8)、Code Type:当前App的CPU框架;(9)、Parent Process:当前进行的父进程,由于iOS中App通常是单进程的,一般父进程都是launchd;(1)、Date/Time:Crash发生的时间,可读的字符串;(2)、OS Version:系统版本,()内的数字代表的是Build号;(3)、Report Version:Crash日志的格式;3、Exception (非常重要)(1)、Exception Type:异常类型;(2)、Exception Codes:异常编号;(3)、Crashed Thread:发生异常的线程号;可以根据这个编号找到对应的crash调用堆栈;4、Thread Backtrace发生Crash的线程的Crash调用栈,从上到下分别代表调用顺序,最上面的一个表示抛出异常的位置,依次往下可以看到API的调用顺序。5、Thread StateCrash时发生的时刻,线程的状态,通常我们根据Crash栈即可获取到相关信息;6、Binary ImageCrash时刻App加载的所有的库,其中第一行是Crash发生时我们的App可执行文件的信息;二、常见的Crash类型Exception Code:0x8badf00d, 不太直观,可以读成“eat bad food”,意思是don‘t block main thread 紧接着下面会有一段描述:Application Specific Information:com.xxx.yyy
failed to resume in time对于此类Crash,我们应该去审视自己App初始化时做的事情是否正确,是否在主线程请求了网络,或者其他耗时的事情卡住了正常初始化流程。通常系统允许一个App从启动到可以相应用户事件的时间最多为5S,如果超过了5S,App就会被系统终止掉。在Launch,resume,suspend,quit时都会有相应的时间要求。在Highlight Thread里面我们可以看到被终止时调用到的位置,xxxAppDelegate加上行号。
PS. 在连接Xcode调试时为了便于调试,系统会暂时禁用掉Watchdog,所以此类问题的发现需要使用正常的启动模式。2、User force-quitException Codes: 0xdeadfa11, deadfall这个强制退出跟我们平时所说的kill掉后台任务操作还不太一样,通常在程序bug造成系统无法响应时可以采用长按电源键,当屏幕出现关机确认画面时按下Home键即可关闭当前程序。3、Low Memory termination跟一般的Crash结构不太一样,通常有Free pages,Wired Pages,Purgeable pages,largest process 组成,同事会列出当前时刻系统运行所有进程的信息。App在运行过程中,系统内存紧张时通常会先发警告,同时把后台挂起的程序终止掉,最终如果还是内存不够的话就会终止掉当前前台的进程。当接受到内存警告的事后,我们应该释放尽可能多的内存,Crash其实也可以看做是对App的一种保护。4、Crash due to bugs因为程序bug导致的Crash通常千奇百怪,很难一概而论。大部分情况通过Crash日志就可以定位出问题,当然也不排除部分疑难杂症看半天都不值问题出在哪儿。这个就只能看功底了,一点点找,总是能发现蛛丝马迹。是在看不出来时还可以求助于Google大神,总有人遇到和你一样的Bug三、常见的Exception Type & Exception Code1、Exception Type(1)、EXC_BAD_ACCESS 此类型的Excpetion是我们最长碰到的Crash,通常用于访问了不改访问的内存导致。一般EXC_BAD_ACCESS后面的”()”还会带有补充信息。SIGSEGV: 通常由于重复释放对象导致,这种类型在切换了ARC以后应该已经很少见到了。SIGABRT:
收到Abort信号退出,通常Foundation库中的容器为了保护状态正常会做一些检测,例如插入nil到数组中等会遇到此类错误。SEGV:(Segmentation
Violation),代表无效内存地址,比如空指针,未初始化指针,栈溢出等;SIGBUS:总线错误,与 SIGSEGV 不同的是,SIGSEGV 访问的是无效地址,而 SIGBUS 访问的是有效地址,但总线访问异常(如地址对齐问题)SIGILL:尝试执行非法的指令,可能不被识别或者没有权限(2)、EXC_BAD_INSTRUCTION 此类异常通常由于线程执行非法指令导致(3)、EXC_ARITHMETIC 除零错误会抛出此类异常2、Exception Code(1)、0xbaaaaaad 此种类型的log意味着该Crash log并非一个真正的Crash,它仅仅只是包含了整个系统某一时刻的运行状态。通常可以通过同时按Home键和音量键,可能由于用户不小心触发(2)、0xbad22222 当VOIP程序在后台太过频繁的激活时,系统可能会终止此类程序(3)、0x8badf00d 程序启动或者恢复时间过长被watch dog终止(4)、0xc00010ff 程序执行大量耗费CPU和GPU的运算,导致设备过热,触发系统过热保护被系统终止(5)、0xdead10cc 程序退到后台时还占用系统资源,如通讯录被系统终止(6)、0xdeadfa11的 程序无响应用户强制关闭四、获取Crash的途径1、模拟器崩溃模拟器崩溃后可以在“~/Library/Logs/DiagnosticReports/”下找到crash日志。2、真机 手机和mac连接后,打开Xcode选择window进入Devices(快捷方式是 Shift-CMD-2),选中View Device Logs可展示该设备的crash日志;3、itunes connect 应用提交到App Store后,你也能从 iTunes Connect 获取到用户的崩溃日志. 登录到 iTunes Connect 上, 选择App分析, 点击相应的应用, 点击应用图标下面的指标按钮, 即可查看到崩溃选项4、第三方的Crash手机系统 友盟等5、手动获取日志设备与电脑上的iTunes Store同步后,会将崩溃日志保存在电脑上。根据电脑操作系统的不同,崩溃日志将保存在以下位置:①、Mac OS X:~/Library/Logs/CrashReporter/MobileDevice/②、Windows XP: C:Documents and SettingsApplication DataApple ComputerLogsCrashReporterMobileDevice③、Windows Vista or 7:
C:UsersAppDataRoamingApple ComputerLogsCrashReporterMobileDevice
最新教程周点击榜
微信扫一扫手机文件夹全解_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
手机文件夹全解
上传于||文档简介
&&手​机​文​件​夹​全​解
你可能喜欢看网络小说时会总卡死是怎么回事?_百度知道查看: 28211|回复: 1
什么是 flume 日志收集,flume的原理是什么,flume会遇到什么问题
主题帖子积分
可以带着下面问题阅读本文章:
1.Flume为什么能够收集日志
2.如何定义Flume
3.Flume安装应该注意什么问题
一、Flume介绍
Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
flume可以搜集数据,合并数据。合并到什么地方,可以是hdfs。也就是flume可以与hadoop相结合复制代码设计目标:
(1) 可靠性
当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to-end(收到数据agent首先将event写到磁盘上,当数据传送成功后,再删除;如果数据发送失败,可以重新发送。),Store on failure(这也是scribe采用的策略,当数据接收方crash时,将数据写到本地,待恢复后,继续发送),Best effort(数据发送到接收方后,不会进行确认)。
(2) 可扩展性
采用了三层架构,分别为agent,collector和storage,每一层均可以水平扩展。其中,所有agent和collector由master统一管理,这使得系统容易监控和维护,且master允许有多个(使用ZooKeeper进行管理和负载均衡),这就避免了单点故障问题。
(3) 可管理性
所有agent和colletor由master统一管理,这使得系统便于维护。多master情况,Flume利用ZooKeeper和gossip,保证动态配置数据的一致性。用户可以在master上查看各个数据源或者数据流执行情况,且可以对各个数据源配置和动态加载。Flume提供了web 和shell script command两种形式对数据流进行管理。
(4) 功能可扩展性
用户可以根据需要添加自己的agent,collector或者storage。此外,Flume自带了很多组件,包括各种agent(file, syslog等),collector和storage(file,HDFS等)。Flume的四个特性:需要明白功能可扩展与三层可扩展,Flume多个master怎么管理的复制代码二、Flume架构
flume的逻辑架构:
2437.jpg (22.11 KB, 下载次数: 42)
15:59 上传
正如前面提到的,Flume采用了分层架构:分别为agent,collector和storage。其中,agent和collector均由两部分组成:source和sink,source是数据来源,sink是数据去向。
Flume使用两个组件:Master和Node,Node根据在Master shell或web中动态配置,决定其是作为Agent还是Collector。
agent的作用是将数据源的数据发送给collector。
Flume自带了很多直接可用的数据源(source),如:
text(“filename”):将文件filename作为数据源,按行发送
tail(“filename”):探测filename新产生的数据,按行发送出去
fsyslogTcp(5140):监听TCP的5140端口,并且接收到的数据发送出去
tailDir(&dirname&[, fileregex=&.*&[, startFromEnd=false[, recurseDepth=0]]]):监听目录中的文件末尾,使用正则去选定需要监听的文件(不包含目录),recurseDepth为递归监听其下子目录的深度
更多可参见这位朋友的整理:
同时提供了很多sink,如:
console[(&format&)] :直接将将数据显示在consolr上
text(“txtfile”):将数据写到文件txtfile中
dfs(“dfsfile”):将数据写到HDFS上的dfsfile文件中
syslogTcp(“host”,port):将数据通过TCP传递给host节点
agentSink[(&machine&[,port])]:等价于agentE2ESink,如果省略,machine参数,默认使用flume.collector.event.host与flume.collector.event.port作为默认collecotr
agentDFOSink[(&machine& [,port])]:本地热备agent,agent发现collector节点故障后,不断检查collector的存活状态以便重新发送event,在此间产生的数据将缓存到本地磁盘中
agentBESink[(&machine&[,port])]:不负责的agent,如果collector故障,将不做任何处理,它发送的数据也将被直接丢弃
agentE2EChain:指定多个collector提高可用性。 当向主collector发送event失效后,转向第二个collector发送,当所有的collector失败后,它会非常执着的再来一遍
更多可参见这位朋友的整理:$wget /downloads/cloudera/flume/flume-distribution-0.9.4-bin.tar.gz
$tar -xzvf flume-distribution-0.9.4-bin.tar.gz
$cp -rf flume-distribution-0.9.4-bin /usr/local/flume
$vi /etc/profile&&#添加环境配置
& & export FLUME_HOME=/usr/local/flume
& & export PATH=.:$PATH::$FLUME_HOME/bin
$source /etc/profile
$flume #验证安装复制代码(2) collector
collector的作用是将多个agent的数据汇总后,加载到storage中。
它的source和sink与agent类似。
数据源(source),如:
collectorSource[(port)]:Collector source,监听端口汇聚数据
autoCollectorSource:通过master协调物理节点自动汇聚数据
logicalSource:逻辑source,由master分配端口并监听rpcSink
sink,如:
collectorSink( &fsdir&,&fsfileprefix&,rollmillis):collectorSink,数据通过collector汇聚之后发送到hdfs, fsdir 是hdfs目录,fsfileprefix为文件前缀码
customdfs(&hdfspath&[, &format&]):自定义格式dfs
(3) storage
storage是存储系统,可以是一个普通file,也可以是HDFS,HIVE,HBase,分布式存储等。
(4) Master
Master是管理协调agent和collector的配置等信息,是flume集群的控制器。
在Flume中,最重要的抽象是data flow(数据流),data flow描述了数据从产生,传输、处理并最终写入目标的一条路径。
2.jpg (9.99 KB, 下载次数: 53)
16:03 上传
对于agent数据流配置就是从哪得到数据,把数据发送到哪个collector。
对于collector是接收agent发过来的数据,把数据发送到指定的目标机器上。
注:Flume框架对hadoop和zookeeper的依赖只是在jar包上,并不要求flume启动时必须将hadoop和zookeeper服务也启动。
三、Flume分布式环境部署
1.实验场景
操作系统版本:RedHat 5.6
Hadoop版本:0.20.2
Jdk版本:jdk1.6.0_26
安装flume版本:flume-distribution-0.9.4-bin
部署flume在集群上,按照如下步骤:
在集群上的每台机器上安装flume
选择一个或多个节点当做master
修改静态配置文件
在至少一台机器上启动一个master ,所有节点启动flume node
需要在集群的每台机器上部署Flume。
注意:flume集群整个集群的网络环境要保证稳定,可靠,否则会出现一些莫名错误(比如:agent端发送不了数据到collector)。
1.Flume环境安装$wget /downloads/cloudera/flume/flume-distribution-0.9.4-bin.tar.gz
$tar -xzvf flume-distribution-0.9.4-bin.tar.gz
$cp -rf flume-distribution-0.9.4-bin /usr/local/flume
$vi /etc/profile&&#添加环境配置
& & export FLUME_HOME=/usr/local/flume
& & export PATH=.:$PATH::$FLUME_HOME/bin
$source /etc/profile
$flume #验证安装复制代码2.选择一个或多个节点当做master
对于master的选择情况,可以在集群上定义一个master,也可以为了提高可用性选择多个节点做为master。
单点master模式:容易管理,但在系统的容错和扩展性有缺陷
多点master模式:通常是运行3/5个master,能很好的容错
Flume master数量的选择原则:
& && &分布式的master能够继续正常工作不会崩溃的前提是正常工作的master数量超过总master数量的一半。
Flume master 的作用主要有两个:
跟踪各节点的配置情况,通知节点配置的改变;
跟踪来自flow的结尾操控在可靠模式下(E2E)的信息,以至于让flow的源头知道什么时候停止传输event。
3.修改静态配置文件
site-specific设置对于flume节点和master通过在每一个集群节点的conf/flume-site.xml是可配置的,如果这个文件不存在,设置的属性默认的在conf/flume--conf.xml中,在接下来的例子中,在flume的节点上设置master名,让节点自己去寻找叫“master”的flume Master。&?xml version=&1.0&?&
& & &?xml-stylesheet type=&text/xsl&&&href=&configuration.xsl&?&
& & &configuration&
& && &&&&property&
& && && && &&name&flume.master.servers&/name&
& && && && &&value&master&/value&
& && && &&/property&
& & &/configuration&复制代码在多master的情况下需要如下配置:&property&
& & &name&flume.master.servers&/name&
& &&value&,,&/value&
& & &description&A comma-separated list of hostnames, one for each machine in the Flume Master.&/description&
&/property&
&property&
& & &name&flume.master.store&/name&
& & &value&zookeeper&/value&
& & &description&How the Flume Master stores node configurations. Must be either 'zookeeper' or 'memory'.&/description&
&/property&
&property&
& & &name&flume.master.serverid&/name&
& & &value&2&/value&
& & &description&The unique identifier for a machine in a Flume Master ensemble. Must be different on every master instance.&/description&
&/property&复制代码注意:flume.master.serverid 属性的配置主要是针对master,集群上Master节点的flume.master.serverid 必须是不能相同的,该属性的值以0开始。
当使用agent角色时,你可以通过添加下面的配置文件在flume-conf.xml中,来设置默认的collector主机:property&
& & &name&flume.collector.event.host&/name&
& & &value&collector&/value&
& & &description&This is the host name of the default &remote&&&collector.&/description&
&/property&
&property&
& & &name&flume.collector.port&/name&
& & &value&35853&/value&
& & &description&This default tcp port that the collector listens to in order to receive events it is collecting.&/description&
&/property&复制代码4.启动集群
集群上节点启动:
在命令行输入:flume master 启动master节点
在命令行输入:flume node –n nodeName 启动其他节点,nodeName最好根据集群逻辑的划分来取名子,这样在 master进行配置的时候比较清晰。
名字规则自己定义,方便记忆和动态配置即可(后续会有介绍动态配置)
5.基于flume shell的动态配置
关于flume shell 中的command参见:
假设我们目前部署的Flume集群结构如下:
4.jpg (14.48 KB, 下载次数: 43)
16:08 上传
我们想将A-F所在的机器的系统日志收集到HDFS中,怎么样在flume shell中配置达到我们的目的呢?
1. 设置逻辑节点(logical node)$flume shell
&connect localhost
&help
&exec map 192.168.0.1 agentA
&exec map 192.168.0.2 agentB
&exec map 192.168.0.3 agentC
&exec map 192.168.0.4 agentD
&exec map 192.168.0.5 agentE
&exec map 192.168.0.6 agentF
&getnodestatus
& && &&&192.168.0.1 --& IDLE
& && &&&192.168.0.2 --& IDLE
& && &&&192.168.0.3 --& IDLE
& && &&&192.168.0.4 --& IDLE
& && &&&192.168.0.5 --& IDLE
& && &&&192.168.0.6 --& IDLE
& && &&&agentA --& IDLE
& && &&&agentB --& IDLE
& && &&&agentC --& IDLE
& && &&&agentD --& IDLE
& && &&&agentE --& IDLE
& && &&&agentF --& IDLE
&exec map 192.168.0.11 collector复制代码这里你也可以打开web master界面查看。
2.启动Collector的监听端口&exec config collector 'collectorSource(35853)' 'collectorSink(&&,&&)'#collector节点监听35853端口过来的数据,这一部非常重要
复制代码登陆到collector服务器进行端口检测$netstat -nalp|grep 35853
复制代码如果在master中未进行上述配置,在collector上检测不到此打开端口
3.设置各节点的source和sink&exec config collector 'collectorSource(35853)' 'collectorSink(&hdfs://namenode/flume/&,&syslog&)'
&exec config agentA 'tail(&/tmp/log/message&)' 'agentBESink(&192.168.0.11&)' #经过实验,好像一个逻辑节点,最多只能有一个source和sink.
&...
&exec config agentF 'tail(&/tmp/log/message&)' 'agentBESink(&192.168.0.11&)'复制代码这时的配置情况可从master web中一目了然,此时已经可以达到我们最初的目的了。
以上通过flume shell进行的动态配置,在flume master web中都可以进行,在此不做进一步说明。
四、高级动态配置
高级配置其实就是在上述简单配置中增加了以下几个特性来保证系统更好的运行:
多Master(Master节点的高可用)
Collector Chain(Collector的高可用)
多Master的情况在上面已经有过介绍,包括用途和master个数等。下面来简单看一下Collector Chain,其实也很简单,就是在动态配置时,使用agent*Chain来指定多个Collector来保证其日志传输的可用性。看一下一般正式环境中flume的逻辑图:
5.jpg (16.11 KB, 下载次数: 39)
16:09 上传
这里agentA和agentB指向collectorA,如果CollectorA crach了,根据配置的可靠性级别agent会有相应的动作,我们很可能为了保障高效传输而没有选择E2E(即使是这种方式,Agent本地日志累积过多依然是一个问题),一般会配置多个Collector,形成collector chain。&exec config agentC 'tail(&/tmp/log/message&)' 'agentE2EChain(&collectorB:35853&,&collectorA:35853&)'
&exec config agentD 'tail(&/tmp/log/message&)' 'agentE2EChain(&collectorB:35853&,&collectorC:35853&)'复制代码这样collectorB在出问题时:
6.jpg (16.44 KB, 下载次数: 30)
16:10 上传
本帖被以下淘专辑推荐:
& |主题: 23, 订阅: 2
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
问题和总结
上述节点有如下几类:master、agent、collector、storage,针对每类节点我们看一下高可用和有没有可能引起性能瓶颈问题。
首先,storage层的失败和collector层的失败是一样的,只要数据放不到最终的位置,就认为节点是失败的。我们一定会根据收集数据的可靠性设定合适的传输模式,而且会根据我们的配置,自己控制collector接收数据的情况,collector的性能影响的是整个flume集群的数据吞吐量,所以collector最好单独部署,所以一般不用考虑高可用问题。
然后,agent层的失败,Flume数据安全级别的配置主要Agent的配置上,Agent提供三种级别发送数据到collector:E2E、DFO、BF,在些不赘述。看一下一位大牛的总结:
agent节点监控日志文件夹下的所有文件,每一个agent最多监听1024个文件,每一个文件在agent的都会有一个类似游标的东西,记录监听文件读取的位置,这样每次文件有新的记录产生,那么游标就会读取增量记录,根据agent配置发送到collector的安全层级属性有E2E,DFO。
如果是E2E的情况那么agent节点会首先把文件写入到agent节点的文件夹下,然后发送给collector,如果最终数据最终成功存储到storage层,那么agent删除之前写入的文件,如果没有收到成功的信息,那么就保留信息。
如果agent节点出现问题,那么相当于所有的记录信息都消失了,如果直接重新启动,agent会认为日志文件夹下的所有文件都是没有监听过的,没有文件记录的标示,所以会重新读取文件,这样,日志就会有重复,具体恢复办法如下
& && &将agent节点上监听的日志文件夹下已经发送的日志文件移出,处理完,故障重新启动agent即可。
注:在agent节点失败的情况下,按照失败的时间点,将时间点之前的数据文件移出,将flume.agent.logdir配置的文件夹清空,重新启动agent。
最后,master失败,master宕机,整个集群将不能工作,在重新启动集群,将agent监听的日志文件夹下的所有文件移出,然后重新启动master即可。在多master节点情况下,只要集群上正常工作的master大于总master数量的一半,集群就能正常工作,那么只要恢复其中宕机的master即可。
问题总结:
<font color="#.Flume在agent端采集数据的时候默认会在/tmp/flume-{user}下生成临时的目录用于存放agent自己截取的日志文件,如果文件过大导致磁盘写满那么agent端会报出
& &Error closing logicalNode a2-18 sink: No space left on device,所以在配置agent端的时候需要注意
&&&property&
& & &name&flume.agent.logdir&/name&
& & &value&/data/tmp/flume-${user.name}/agent&/value&
&&&/property&
属性,只要保证flume在7*24小时运行过程agent端不会使该路径flume.agent.logdir磁盘写满即可。
<font color="#. Flume在启动时候会去寻找hadoop-core-*.jar的文件,需要修改标准版的hadoop核心jar包的名字 将hadoop-*-core.jar改成hadoop-core-*.jar。
<font color="#.Flume集群中的flume必须版本一致。否则会出现莫名其妙的错误。
<font color="#.Flume集群收集的日志发送到hdfs上建立文件夹的时间依据是根据event的时间,在源代码上是Clock.unixTime(),所以如果想要根据日志生成的时间来生成文件的话,需要对
com.cloudera.flume.core.EventImpl 类的构造函数
public EventImpl(byte[] s, long timestamp, Priority pri, long nanoTime,
& && &String host, Map&String, byte[]& fields)重新写,解析数组s的内容取出时间,赋给timestamp。
注意:flume的框架会构造s内容是空的数组,用来发送类似简单验证的event,所以需要注意s内容为空的时候timestamp的问题。
<font color="#.如果collector和agent不在一个网段的话会发生闪断的现象,这样的话,就会造成agent端不能传送数据个collector所以,在部署agent和collector最好在一个网段。
6.如果在启动master时出现:“试着启动hostname,但是hostname不在master列表里的错误“,这是需要检查是否主机地址和hostname配置的正确与否。
7.在源端,有一个比较大的缺陷,在tail类的source,不支持,断点续传功能。因为重启node后没有记录上次文件读到的位置,从而没办法知道,下次再读时,从什么地方开始读。
特别是在日志文件一直在增加的时候。flume的source node挂了。等flume的source再次开启的这段时间内,增加的日志内容,就没办法被source读取到了。
不过flume有一个execStream的扩展,可以自己写一个监控日志增加情况,把增加的日志,通过自己写的工具把增加的内容,传送给flume的node。再传送给sink的node。
欢迎加入about云群 、 ,云计算爱好者群,关注
站长推荐 /6
about云|新出视频,openstack零基础入门,解决你ping不通外网难题
云计算hadoop视频大全(新增 yarn、flume|storm、hadoop一套视频
视频资料大优惠
大数据零基础由入门到实战
阶段1:hadoop零基础入门基础篇
阶段2:hadoop2入门
阶段3:大数据非hadoop系列课程
阶段4:项目实战篇
阶段5:大数据高级系列应用课程
阶段6:工作实用系列教程
等待验证会员请验证邮箱
新手获取积分方法
Powered by}

我要回帖

更多关于 crashlog.txt 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信