Cloudera开发者学习笔记_第1页
Cloudera开发者学习笔记_第2页
Cloudera开发者学习笔记_第3页
Cloudera开发者学习笔记_第4页
Cloudera开发者学习笔记_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Cloudera开发者学习笔记Cloudera简介:CDH:Cloudera'sDistnbutionincludingApacheHadoop:最完整经过测试的广泛部署的Hadoop发行版本、集成了所有关键的Hadoop生态系统项目CDH可分为ClouderaExpress(免费)和ClouderaEnterprise(收费并附加额外ClouderaManager功能)ClouderaExpress提供免费的ClouderaManagerHadoop端到端的管理、部署、管理和监控集群ClouderaEnterprise提供收费的ClouderaManager支持配置历史记录和回滚、滚动更新、LDAP集成、SNMP支持、自动灾难恢复等企业级客户需要的功能Hadoop!:STREAMSEARCHImpalaPROCESS,ANALYZE,SERVEBATCHRELATIONALNoSQLFILESYSTEMHDFSKuduHBas©UNIFIEDSERVICESSpark.Hive.PigMapReduceSECURITYSTREAMSEARCHImpalaPROCESS,ANALYZE,SERVEBATCHRELATIONALNoSQLFILESYSTEMHDFSKuduHBas©UNIFIEDSERVICESSpark.Hive.PigMapReduceSECURITYSentry.RecordserviceRESOURCEMANAGEMENTYARNSTOREBATCHSqoopBATCHSqoopKafka・FlumeINTEGRATE常见的Hadoop使用案列:提取/转换/加载(ETL)数据清洗、文本挖掘、索引建立、图形创建和分析、模式识别、协调过滤、预测模型、情感分析、风险评估等数据量大、速度快、数据多样的数据分析使用Hadoop进行大数据处理:

将程序带入数据而不是数据到程序(数据本地化)两个关键的概念是数据存储时分配数据、在数据所在位置进行计算Hadoop的核心组件:将程序带入数据而不是数据到程序(数据本地化)两个关键的概念是数据存储时分配数据、在数据所在位置进行计算Hadoop的核心组件:Storage:HDFS、ResourceManagement:YARN、Processing:Spark、MapReduce数据采集和存储(IngestandStorage):数据采集:传统的数据管理系统如数据库、曰志和其他机器生成的数据(事件数据)、导入的文件数据存储:Hadoop分布式文件系统(HDFS)、ApacheHBase(Hadoop数据库):基于HDFS的NOSQL分布式数据库、支持非常大量的数据和高吞吐量只有一张表、以冗余度换取查询搜索时间数据采集工具:HDFS直接文件传输:hdfsdfs-put目标文件目的地址和文件名(HDFS上的路径)、ApacheSqoop:从关系型数据库高速导入HDFS中(sqoopimport)得出用sqoopexportsApacheFlume:用于摄取流数据的分布式服务,非常适合来自多个系统的事件数据如曰志文件、Kafka:高吞吐量、可扩展的消息系统,分布式、可靠的发布订阅系统,与Flume和SparkStreaming集成Hadoop大规模数据处理引擎:ApacheSpark:运行于Hadoop集群和HDFS中的数据HadoopMapReduce:原始的Hadoop处理引擎(框架)主要基于Java、仍然是主导技术、但没有Spark速度快、具有广泛而成熟的容错能力分布式数据分析处理组件:ApachePig:构建在Hadoop上以提供高级数据处理、写底层MapReduce脚本方法、善于加入和转换数据、Pig解释器在客户机上运行:将PigLatin脚本转换成MapReduce或Sparkjobs并将作业提交到Hadoop集群处理ApacheImpala:高性能的SQL引擎运行在Hadoop集群上,数据存储在HDFS文件或HBase表中.基于内存的计算非常低的延迟-以毫秒为单位,是理想的互动型分析工具、Impala支持SQL方言(ImpalaSQL)HDFS中的数据建模为数据库表(数据可以与Hive共享)ApacheHive:hive是Hadoop之上的一个抽象层,使用类似SQL语言的HiveQL(类似于ImpalaSQL)、适用于数据处理和ETL,底层为MapReduce执行查询ApacheSolr:交互式全文搜索Hadoop集群中的数据允许非技术用户访问数据、动态基于Web的仪表盘与Hue界面,基于ApacheSentry的安全性Hadoop的其他生态系统工具:Hue(HadoopUserExperience):Hadoop的Ul,web前端的Hadoop使Hadoop更容易使用ApacheOozie:工作流管理,Hadoop作业的工作流引擎、定义作业之间的依赖关系,Oozie服务器以正确的顺序将作业提交到服务器ApacheSentry:为Hadoop生态系统组件提供了细粒度的访问控制(授权)Impala、Hive、ClouderaSearchsHDFS,结合Kerberos认证,提供了一个整体集群安全解决方案Hadoop是分布式存储和处理的框架核心Hadoop包括用于存储的HDFS和用于集群资源管理的YARNHadoop生态系统包括许多组件:摄入数据(Flume、Sqoop、Kafka)存储数据(HDFS、HBase)处理数据(Spark、HadoopMapReduce、Pig)将数据建模为SQL访问表(Impala.Hive)探索数据(Hue、Search)保护数据(Sentry)HDFS基本概念:HDFS(HadoopDistributedFileSystem):用java编写的分布式文件系统、基于谷歌的GFS论文实现、位于本地文件系统之上,为大量数据提供冗余存储。HDFS中的文件是“WriteOnee"模式,不允许随机写入文件、不能修改,读取模式为大型流式读取(streamingreadsoffiles)。文件在HDFS中被切分为大小固定(默认为128M)的数据块(block).每一个数据块复制在多个数据节点(DataNode)上(默认为3个),集群cluster有且仅有一个NameNode用于存储元数据信息(1.路径2.blklD3.log曰志4.DataNode地址),所有的DataNode由NameNode管理(即访问DataNode必须先从NameNode处取得DataNode的信息)HDFSNameNode可用性:NameNode守护进程必须始终运行(一旦停止将无法访问集群),通常设置为高可用性避免单点故障(HA)有一个备用的NameNode,小集群也可以使用经典模式:一个NameNode、一个SecondaryNameNode(用于辅助NameNode工作,记录bookkeeping,不是备份notbackup)访问HDFS:FsShell:$hdfsdfs可查看命令项在Spark中通过URL如hdfs://nnhost:port/file(namenode的默认端口号为8020,50070/50470)调用HDFS的API接口直接访问HDFS如pig、hive、Impala中的hdfs接口资源管理YARN架构:YARN二YetAnotherResourceNegotiator(另一个资源谈判者)YARN是包含Hadoop的处理层:资源管理、作业调度程序YARN的守护进程:ResourceManager(RM)资源管理器:在主节点(NameNode)上运行的守护程序、负责全局资源调度,竞争应用之间的仲裁系统资源,提供一个可插拨的调度程序来支持不同的算法(如容量、公平调度程序等)NodeManager(NM):在工作节点(DataNode)上运行,作用是与RM通信从而根据RM的指令管理节点资源,另一个作用是推出容器(资源评估)Containers(容器):根据资源需求由RM创建,在从节点上分配所需资源使应用程序在一个或多个容器中运行ApplicationMaster(AM):每个应用程序对应一个AM,是框架/特定应用程序,在容器中运行,会请求更多容器来运行应用程序任务Hadoop为开发人员提供了三个主要的YARN工具、Hue作业浏览器、YARNWebUl、YARN命令行。ResourceManagerUl是主要的入口点、默认在运行RM的主机(NameNode)的8080端口上JobHistoryServer作业历史服务器:YARN没有跟踪作业和历史,Spark和MapReduce都提供了作业历史记录服务器用于归档作业的指标和元数据,可以通过作业历史记录UI或Hue访问YARN命令行:用于配置和查看有关YARN集群信息的命令、基本格式为yarn<command>大多数YARN命令用于管理也有一部分用于开发如:yarn-list用于查看正在运行的应用程序yarn-killjobid用于终止一个正在运行的应用程序Clientyarnlogs-applicationld<app-id>查看指定应用程序的曰志yarn-help查看命令选项ClientaResource[QI、ManagerI使用ApacheSqoop导入关系型数据:Sqoop用于在数据库和HDFS之间交换数据、可以将所有表、单个表或表部分导入HDFS,数据可以以各种格式导入,可以将数据从HDFS导入到数据库中Sqoop的工作原理:底层是MapReduce,导入的基本步骤为1•检查表的详细信息(元数据信息),2•创建并将作业提交到集群,3从表中获取记录,并将数据写入到HDFSSqoop的基本语法为sqooptool-name[tool・options]常用的sqoop命令为:sqoopimport--connectjdbc:mysql://dbhost/PATH\sernamedbuser--passwordpwSqooplist-tables-connectjdbc:mysql://dbhost/PATHSqoopeval-queryUSQL语句"-connectjdbc:mysql://Sqoopexport一connectjdbc:mysql://导入过程有HadoopMapReduce作业执行、sqoop首先要检查导入的表,确认主键,运行边界查询以查看将导入多少条记录,将边界查询结果除以任务数(mapper)使用它来配置任务,以使他们具有相等的负载,sqoop还会为正在导入的每个表生成一个Java源文件(在导入过程中编译并使用、导入之后仍然保留、但可以删除)Sqoopimport-all-tables导入数据库中的所有表默认以逗号分隔文件,--warehouse-dir<hdfs路径〉或者--target-dir<hdfs路径〉来指定导入的数据库表存放在hdfs的什么位置(两者的区别在于使用-warehouse-dir指定的路径是在hdfs上创建路径之后再以表名创建文件夹存放数据,而使用-target-dir后直接给出路径是指在hdfs上的最终路径、不根据表名创建文件夹)、但默认为/user/hive/warehouse路径下Sqoop支持增量导入、但由于HDFS的writeonce特性实际上是创建了一个新的hdfs文件,使用(一incrementallastmodifaied)将导入模式设置为修改追加模式,表中需要有一个时间戳字段,使用--check-columnv时间戳字段〉,并设置在上一次导入时的时间戳字段的最大值・-last-value'时间戳’--incrementalappend设置为追加模式、将主键作为检查字段-check-columnid,设置上一次导入的最大值-last-value<key>Sqoopexport导出数据需使用--export-dir<hdfs路径〉指定要导出的数据位■,--update-modeallowinsert导出模式为插入(数据库中已有这张表)-table<表名〉指定要导出到那张表・-columns11字段名,字段名”可选择表中的某几列导入-whereK条件”查询满足条件的行导入・-split-by字段(在表未指明主键的情况下指定以某个字段作为导入分配时的切分边界查询)--query*sql查询语句'(where条件后必须添加SCONDITIONS)where后如果有查询条时在whereSCONDITIONS后使用AND条件表达式提升Sqoop导入性能:更改数据库连接选项(通用为JDBC),直接模式・・direct,控制并行性:使用・m或--num-mappers来设置并行数(默认为4)--fields-terminated-by“\t”设置分隔符为制表符,默认情况下以文本导入的数据分隔符是逗号--null-non-string 填充的值’填充空值真实生产环境中应使用的sqoop版本是sqoop2--hive-import直接将数据作为hive或impala的表,在hive中创建元数据・-hive-database<databasename>将数据导入到指定数据库・-as-avrodatafile将数据以Avro格式导入/导出--as-parquetfile将数据以parquet格式导入/导出--compression-codec所用sqoop压缩(压缩格式可设置为snappy/gzip2等)Hive和Impala简介:两者都是提供SQL查询存储在HDFS/HBase中的数据的工具Hive:是MapReduce之上的一个高级抽象,使用HiveQL,生成在Hadoop集群上运行的MapReduce或spark作业。Impala:是一种高性能的专用SQL引擎,使用ImpalaSQL,低查询延时(以毫秒为单位)Hive具有更多的功能如:对复杂数据类型的支持(如数组,map)和窗口分析的更广泛支持,高度可扩展性,常用于批量加工Impala具有更快的速度:是专业SQL引擎的5-50倍性能以上,是理想的交互式查询和数据分析工具。 ParseImpalaSQLMakeoptimizationsPlanexecutionExecutequeryonthecluster -A— ParseImpalaSQLMakeoptimizationsPlanexecutionExecutequeryontheclusterParseHiveQLMakeoptimi2ationsPlanexecutionSubmitjob(s)toclusterMonitorprogressHDFSHadoopClusterDataProcessingEngine(MapReduceorSpark)HadoopClusterHDFSHDFSHadoopClusterDataProcessingEngine(MapReduceorSpark)HadoopClusterHDFS曰志文件分析:服务器曰志文件是重要的数据源:Hive和Impala允许处理曰志文件的目录允许类似于原始数据的SQL查询情感分析:商业智能:Hive和Impala的交互:Hive和Impala提供许多用于运行查询的接口:命令行(Impala:Impalashell,Hive:beeline),HueWebUl(Hive查询编辑器,Impala查询编辑器,MetastoreManager),ODBC/JDBCImpala-shell-ihostname:port指定连接到服务器使用shell从Impala中执行系统内部命令(不支持hdfs命令,但可以使用hdfsdfs)Impala-shell-fxxx.sql执行包含查询的文件Impala-shell-ddatabase选择要操作的数据库Impala-shell-q4SQL语句,直接运行查询Impala-shell・fxxx.sql・oresults.txt・・delimited-output_delimiyer=7-o捕获输出到文件,可选定分隔符:'(默认为\t)启动beeline(Hive的shell):通过指定的Hive2服务器的URL来启动beeline(加上用户名和密码,如果需要的话):beeline-ujdbc:hive2://host:10000-ntraining(这里的host是hive2服务器的ip地址)使用!号执行beeline的内部命令如:Jconnecturl连接到不同的hive2服务器,!verbose显示添加的查询的详细信息beeline的相关命令还有beeline-u -fmyquery.sql执行查询代码,-eSELECT*FROMuser'直接从命令查询,--silent抑制信息性消息使用Hive和Impala建模和管理数据:元数据存储在Metastroe中,hive和impala使用相同的数据HDFS中的表,Metastore中的元数据类似于SQL语句,使用关键字LOCATION可以指定数据存放位置(HDFS中的路径),创建外部表使用关键字EXTERNAL(外部表在删除时只删除元数据、数据会保留,用于数据复用时),根据现有表创建新表使用关键字LIKE创建的表结构和Like的表一致,describeformatted查看详细元数据信息,showcreatetable显示创建表的SQL命令hive和impala是阅读模式(schemaonread)是指不验证插入的数据,文件只是简单的移动到创建表时指定的位置(HDFS中),因此数据加载到表格非常快,只有在执行查询时才会发现文件格式的错误,丢失或无效的数据将表示为NULL,加载数据时只需将文件添加到hdfs表中的目录,可以使用hdfsdfs命令或者使用LOADDATAINPATH路径或目录INTOTABLE表名命令从Hive或Impala内完成数据加载(与hdfs命令类似均是移动文件到hdfs表目录,源文件可以是文件或目录)使用OVERWRITE关键字在导入之前删除所有记录LOADDATAINPATH7tmp/sales.txfOVERWRITEINTOTABLEsales;,填充表的另一种方式是通过查询,使用insertinto将结果添加到现有Hive表中:INSERTINTOTABLEaccount_copySELECT*FROMaccounts;,同样使用OVERWRITE可以替换所有现有数据INSERTOVERWRITETABLEaccount.copySELECT--HCatalog:HCatalog是hive中的子项目,可以访问Metastore,使用hive的DDL(数据定义语言)语法heat-e"指定单个命令,heat-f执行文件中的DDL语言Impala元数据缓存:Impala在集群中的每个工作节点运行着Impala守护进程,在主节点上运行着另外两个守护程序以支持查询执行:StateStore守护进程和Catalog守护进程,StateStore进程的作用是提供impala守护进程查询服务,定期检查impala守护进程的状态,Catalog进程的作用是将元数据更改中继到集群中的所有impala守护进程中去元数据缓存:impala守护进程高速缓存元数据,在启动时从Metastore缓存当一个impala守护程序更改metastore时会通知目录服务(catalog),目录服务会通知其他所有impala守护进程更新缓存,此时从impala之外的元数据更新不为impala所知,因此impala元数据高速缓存将是失效的,必须手动刷新或无效impala的元数据缓存(manuallyrefreshorinvalidateimpala'smetadatacache)三种方式更新元数据缓存:invalidatemetadata将整个缓存标记为过时,重新加载所有元数据缓存(危险)refresh<table>立即重新加载某个表的元数据.仅为新数据文件重新加载HDFS块位置invalidatemetadata<table>标记某张表为过时重新加载该张表元数据storedasavro将数据以avro格式存储(这里的storedas表示已avro格式去读取数据9tblproperties('avro.schema.literal'二”/'avro.schema.urT二'HDFS路径的json文件,)指定数据格式/从hdfs中导入格式hive支持所有avro类型,impala不支持复杂的avro类型(enum,array,fixed,map,union,record等)storedasparquet创建一个以Parquet格式存储的新表在impala中使用likeparquet从现有parquet数据文件中使用列元数据setcompression_codec=snappy使用hive和impala压缩hive不支持在子查询中创建外部表impala中可以altertableaccounts_parquetsettblpropertiesfEXTERNAL5=5TRUE')将表改为外部表这里的external最好用大写,true也用大写。数据格式:在hive和impala中storedasformat选择文件存储格式文本文件仃extFiles):是Hadoop中最基本的文件类型,可以从几乎所有编程语言读取或写入,逗号或制表符分隔文件可以与许多应用程序兼容,在调试时会很有用,但在规模上这种格式效率低下,将数值表示为字符串会浪费存储空间,难以表示二进制数据(通常使用如Base64编码技术),具有良好的互操作性,但性能不佳。序列文件(SequenceFiles):以二进制容器格式存储键值对(key.value),具有更小的冗余度,比文本文件更高效,能够存储图像等二进制数据,格式是java特定的,并且与Hadoop紧密耦合,良好的表现但互操作性差。Avro文件:优化了二进制编码,存储有效,广泛支持Hadoop生态集群(当然也可以在Hadoop之外使用),是理想的长期存储重要数据的格式,可以从多种语言读写,将模式嵌入文件中,因此始终可读,模式演进可以适应变化,具有良好的互操作性和性能!(Hadoop中通用存储的最佳选择)avro支持柱状格式(以列column为基准)在选择表的列的一小部分时非常有效。Parquet文件:是优化的柱状格式,减少存储空间,提升性能(基于列的访问模式的最佳选择)Avro:数据序列化serialization:—种将内存中的数据表示为一系列字节的方式。Avro是一个高效的数据序列化框架,提供兼容性而不牺牲性能(数据根据你定义的模式进行序列化,以java,C,C++、C#、Python.PHP等语言读写数据,使用高度优化的二进制编码对数据进行序列化,指定随时间变化模式的规则),支持远程过程调用(RPC:RemoteProcedereCalls):可用于构建定制网络协议,Flume用于内部通信Avro支持的简单数据类型如:null、booleansint、long、float、double、bytes、stringo支持的复杂数据类型:record(有一个或多个字段组成的用户自定义类型)、enum、arrayxmap、unionsfixed(固定数量的8位无符号字节)。Avro基本格式:{unamespacen:ncom.Ioudacre.data",“type”:”record”,“name”:”employee”,“fields”:]{“name”:”id”,”type”:[“nu『,”int”}{“name”:”name”,”type”:”string”,”default”:”:T}{“name”:”title”,”type”:”string”,”default”:”EN”}{“name”:”bonus”,”type”:”int”}]}Avro支持在模式中设置默认值,当没有字段显式设置值使用,当序列化数据时avro会检查空值,只有在模式中明确指定可以为空时才允许空值。所有的类型都支持doc属性(类似于注释,在实际中不显示)Avro容器格式:avro定义了用于存储Avro记录的容器文件格式,也称为avro数据文件格式,类似于HadoopSequenceFile格式,跨语言支持读写数据,支持压缩块(组)的记录使用AvroTools检查Avro数据文件:avro-toolstojsonmydatafile.avro将Avro文件格式转换为json文件avro-toolsgetschemamydatafile.avro用于获取Avro文件的构架模式进化:你的数据结构可能将随着时间的推移而改变(添加、删除、更改或重命名字段),更改可能会破坏许多格式的兼容性,在SequenceFile中序列化的对象将变得不可读,写入avro数据文件的数据总是可读的(用于写的数据模式嵌入文件本身,但是读取数据的应用程序可能会期待新的结构),所以Avro有一个独特的方式来保持向前的兼容性。模式演变:如果字段随着时间推移在不断重命名、删除、添加等操作,我们将更改模式,使用新的模式来写入新的数据,但新的应用程序无法读取旧的数据,如重命名字段后在这里将旧的字段映射到新的字段中利用”aliases”:[“旧的字段名”],来使得向前兼容,新添加的字段将缺少以前写入的记录值因此使用”default”:”默认值”,来使得能读取旧的数据。模式演变中出现更改的兼容性变化包括:添加、更改或删除doc属性,更改字段默认值,添加一个带默认值的新字段,删除指定默认值的字段,将数据类型推广到更广泛,为字段添加别名等操作不会影响到兼容性。会影响到兼容性的操作:更改记录的name或namespace空间属性,添加一个没有默认值的字段,从enum中删除符号,从union中删除类型,将字段的类型修改为可能阶段的数据类型等等。使用Parquettools检查parquet文件格式:parquet-toolshead查看parquet格式头字段parquet-toolsschema查看parquet文件模式类型另一个影响性能的情况是:数据压缩总的来说BZip2节省了最多空间,但LZ4和Snappy要快得多impala支持Snappy但不支持LZ4选择数据集格式需要考虑的几个方面:摄取模式,工具兼容性,预期寿命,存储和性能要求。数据文件分区:默认情况下,数据集里的所有文件都存储在单个HDFS目录中.这样在分析或处理过程中会读取目录中的所有文件,全表扫描。分区细分数据,只能对数据的相关子集进行分析,潜力要快得多。分区涉及两个阶段,存储/检索Sqoop内支持分区,在一ive-import选项时,使用一hive-partition-key和—hive・partition・value在hive和impala中分区:在创建表模式时使用关键字partitionedby(statestring),用于分区的字段不定义在表内,只用定义在partitionedby中,同时还可以创建嵌套分区,用逗号隔开使用Flume捕获数据:Flume时用于数据收集的高性能系统,能实时采集数据支持从多个源将数据聚合到HDFS中,具有水平可伸缩性、扩展性、可靠性等优点。可靠性(reliability):通信信道提供了Flume的可靠性,内存信道如果失去电源数据将丢失。基于磁盘的信道队列保证了面对电源损耗的数据耐久性。可扩展性(scalability):向系统添加更多资源,可以提高系统性能,Flume水平扩展:随着负载増加可以在配置中添加更多机器,可以将Source和sink添加到现有存储层或数据平台来扩展Flume。如:GeneralSources包括来自任何Linux进程的文件数据、syslog和标准输出,GeneralSink包括本地文件系统或HDFS上的文件,开发者可以自己编写Sources或sinks。Flume使用可配置的“代理”收集数据:代理可以从许多来源(包括其他代理)接收数据,大规模部署使用多层可扩展和可靠性,支持检查和修改“飞行"中的数据基础架构:事件(event)是Flume中数据的基本单位,由体和标题(元数据)的集合组成。标题由名称值对组成,主要用于指导输出组件:Source(源):用于从外部角色接收事件并且生成Flume事件Sink(池/槽):用于发送一个事件到他的目的地Channel(通道):用于从源缓冲事件直到它被sink排出Agent(代理):用于配置和托管Source、channel和sink的java进程Flume数据流:Senassysk>g

messagesyslogServerFlumeAgentSenassysk>g

messagesyslogServerFlumeAgentFlumeSources:内置的源模式有:syslog(通过网络从UNIXsyslog守护程序捕获消息)、netcat(捕获任意TCP端口上写入socket的所有数据)、exec(执行UNIX程序并从标准输出中读取事件)、spooldir(从指定(本地)目录中显示的文件提取事件)、HTTPsource(从http请求接收事件)、kafka(接收来自kafka的消息)等。FlumeSinks:sink的模式有:Null(丢弃所有事件,等效于/dev/null)、Logger(使用SLF4J将事件记录为INFO级别)、IRC(将事件发送到指定的Internet中继聊天信道)、HDFS(将事件写入HDFS中指定的目录文件)、Kafka(将消息发给Kafka)、HBaseSink(在HBase中存储事件)等。

FlumeChannels:channel—般有:Memory(将事件存在机器的RAM中、速度快、但不可靠)、File(在本地磁盘上存储事件、比RAM慢但更可靠)、JDBC(使用JDBC存储数据库表中的事件,比文件信道慢)、Kafka(使用Kafka作为任何源和sink类型之间的可扩展、可靠却高度可用的信道)FlumeAgent配置:配置文件使用分成引用、每个组件都分配一个用户自定义的ID,然后在该ID上附加属性名称:如图agent1・sources=srclagentl・sinks=sinklagentl・channels=chiagentl・channels.chi・type=memoryConnectssour-andchannelagentl.sources・srclConnectssour-andchannelagentl・sources・srcl・spooLDir=/var/flume/incominiagentl・sources•srcl・channels=chi< agensinks.sink].type=hdfsagentl・sinks・sinkl・hdfs・path=/loudacre/logdataagentl・sinks.sinkl・ohannol=chi 属性因组件类型(源、通道、接收器)而异,属性也因子类型而异(如netcat源于syslog源)。此外有关sink的配置,在路径上可能包含基于事件头的模式、如时间戳:默认情况下,HDFS接收器写入未压缩的SequenceFile,使用codeC指定编码器将启用压缩:agentl.sinks.sinkl・type=hdfsagentl.sinks.sinkl.hdfs.path=/loudacre/logdaagentl・sinks・sinkl・hdfs・codeC=snappyagentl・sinks・sinkl・channel=chi将fileType参数设置为DataStream写入原始数据,使用fileSuffix还可以指定文件拓展名agentl・sinks.sinkl..type=hdfsagentl・sinks・sinkl・hdfs・path=/loudacre/logdata/%y

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论