大数据技术基础培训-Hadoop集群管理与维护_第1页
大数据技术基础培训-Hadoop集群管理与维护_第2页
大数据技术基础培训-Hadoop集群管理与维护_第3页
大数据技术基础培训-Hadoop集群管理与维护_第4页
大数据技术基础培训-Hadoop集群管理与维护_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、大数据技术基础培训12TRANSWARP 2013Hadoop集群管理与维护hadoop集群管理和维护3TRANSWARP 2013包括Hadoop集群部署配置、管理和监控,以及Hadoop集群的安全保障主要内容(1)Hadoop集群优化配置和部署(2)Hadoop集群管理和监控Hadoop集群数据导入Hadoop集群安全保障Hadoop集群生产运维最佳实践Hadoop集群优化配置和部署4TRANSWARP 2013Hadoop集群规划Hadoop集群基本配置参数Hadoop集群高级配置参数Hadoop集群规划规划集群需要使用的Hadoop的服务 服务包括:ZooKeeper,HDFS,Map

2、Reduce,Inceptor,HBase,Hive等规划集群的节点角色 根据需要使用的服务为节点指定角色,如NameNode、Inceptor Master等规划集群的硬件配置 如服务器数量,机架分布,每台机器的CPU型号以及磁盘、内存的大小规划集群的网络 包括网络拓扑,交换机型号以及机器网卡型号5TRANSWARP 2013集群服务角色规划根据业务类型选择所需服务 服务Zookeeper,HDFS,MapReduce,Inceptor一般业务都需要 按关键字精确查询的实时在线系统需要使用HBase 离线统计分析系统需要使用Hive 从传统数据库或者本地文件导入数据需要使用Sqoop 采集日

3、志业务需要使用Flume集群节点可分为主节点和从节点主节点角色包括: ZooKeeper,NameNode,Secondary NameNode,Journal Node,JobTracker, HBase Master,Hive Metastore,Hive Server,Inceptor Master从节点角色包括: DataNode,TaskTracker,HBase RegionServer,Inceptor Worker6TRANSWARP 2013节点角色规划角色描述节点规划内存需求ZooKeeper为高可用性提供选举服务3个或3个以上的奇数个节点4GBNameNodeHDFS的主

4、节点,存储文件系统目录结构以及元数据信息一个独立节点,配置了高可用性时,需要两个独立节点16GBSecondary NameNode对NameNode做冷备份的节点非NameNode的一台主节点,配置了高可用性时,不得配置Secondary NameNode16GBJournal Node配置了高可用性时,HDFS修改日志存储节点3个或3个以上奇数个节点,可与NameNode共享节点2GBDataNodeHDFS数据存储节点位于集群中的从节点2GB7TRANSWARP 2013节点角色规划 contd角色描述节点规划内存需求JobTrackerMapReduce的主节点,负责调度任务和分配资源

5、大规模集群使用独立节点,小规模集群可以与NameNode共享节点,高可用性需要两个节点2GBTaskTrackerMapReduce计算节点与DataNode运行在相同节点上2GB,slots所需内存为2GB*slot数HBase MasterHBase主节点,用以管理RegionServer推荐配置三个以上节点,可与其他角色共享节点2GBHBase RegionServerHBase中用以管理数据的进程与DataNode运行在相同节点上32GB8TRANSWARP 2013节点角色规划 contd角色描述节点规划内存需求Hive Metastore存放Hive元数据信息,以及驱动程序可与其他

6、角色共享主节点,高可用性时部署于多个节点4GBHive ServerHive的服务器程序一或多台主节点,可与其他角色共享节点8GBInceptor MasterInceptor的主节点,用于调度任务和分配资源运行与一台主节点,可与其他角色共享节点4GBInceptor WorkerInceptor的计算节点与DataNode运行在相同节点上2GB,用于计算的Executor推荐32-64GBManagement Node管理节点可与其他角色共享一台主节点8GB9TRANSWARP 2013集群硬件规划服务器运行TDH至少需要英特尔至强处理器,推荐使用双路4核英特尔处理器。集群网络配置推荐使用千

7、兆交换机,每台机器配置多块网卡,并对这些网卡做模式6的多网卡绑定服务器运行TDH的推荐配置64G以上内存,可根据节点角色来计算具体内存。 比如一个服务器计划配置以下角色:DataNode, Inceptor Worker 和 HBase Region Server, 同时计划Inceptor Worker的Executor使用64G内存。这样,对于这个服务器的推荐内存为: 2GB + 4GB + 64G + 32GB = 102GB.10TRANSWARP 2013集群硬件规划 contd通常多个小容量硬盘 比少数大容量硬盘性能要好 如8 * 1.5TB的硬盘比6*2TB的硬盘I/O性能好推荐

8、使用转速为7200 RPM的SATA盘 没有必要使用转速为15000 RPM的硬盘物理硬盘不要使用RAID。 若RAID无法被移除的情况下,每块盘可以被设为一个单独的RAID 0.物理硬盘的需要预估集群数据规模 假设数据量预估为 n (TB),则需要硬盘大小为 n*1.2*(3+1) / 3 (TB). 系数1.2表示对数据建立索引的大小,3+1中的3表示复制份数,1表示预留空间, 除以的3表示使用Snappy压缩比。11TRANSWARP 2013Hadoop集群优化配置和部署12TRANSWARP 2013Hadoop集群规划Hadoop集群基本配置参数Hadoop集群高级配置参数13TR

9、ANSWARP 2013Hadoop集群基本配置参数 每台机器都有自己的一组配置文件 根据机器角色和硬件差异而不同 每个服务都有自己的配置文件目录 例如服务hdfs1的配置文件在/etc/hdfs1/conf文件夹中 主要的配置文件是XML格式 核心参数:core-site.xml HDFS参数:hdfs-site.xml MapReduce参数:mapred-site.xml hadoop-env.sh设置了Hadoop所要使用到的环境变量 如各个进程所使用的最大堆内存 Hadoop的配置目录,日志目录等等14TRANSWARP 2013配置文件示例 配置文件示例(mapred-site.x

10、ml) mapred.job.tracker transwarp03:54311 Hadoop集群配置参数Hadoop是一个年轻的系统 “最佳实践”和可选的参数配置根据系统的需求和业务类型而不同 有大量参数需要配置和调优默认的参数值可参考Hadoop文档,如core-site.xml的默认配置: http:/docs/current/hadoop-project-dist/hadoop-common/core-default.xml下面将关键参数进行阐述,并给出推荐配置 基于hadoop 2.0版本,与之前版本的参数名有所差异。15TRANSWARP 2013core-site.xml配置参数

11、fs.defaultFS 默认文件系统的URI,如hdfs:/namenode01:8020, 决定了Hadoop底层所使用的文件系统、 主机名和端口,若换用别的文件系统,需要指定文件系统的实现类(参数fs.SCHEME.impl)io.file.buffer.size 序列文件在读写中可以使用的缓冲区大小,应该是操作系统分页大小的整数倍, 推荐大小:65536 131072ha.zookeeper.quorum 配置了高可用性时,用于自动失效转移的控制进程所使用的zookeeper服务器地址。hadoop.security.authentication 安装认证机制,有simple和kerb

12、eros两种模式,simple表示使用系统的用户和组来进行 身份认证,kerberos表示使用基于Kerberos认证协议的身份认证机制16TRANSWARP 2013hdfs-site.xml基本配置参数.dir NameNode存放元数据信息的本地目录,推荐使用位于不同磁盘上的多个目录dfs.datanode.data.dir DataNode存放数据块的本地目录,推荐配置多块磁盘上的目录,需要注意的是该数据目录 不能放在根分区node.rpc-address NameNode rpc服务器的地址和端口dfs.replication 数据块备份数量,默认为3dfs.blocksize HD

13、FS中DataNode存储的数据块大小,默认是64MB,Mapreduce默认按照该参数的值划对 目标文件切片,设置太大会导致同时计算的map任务数较少,如果设置太小,每个map处理 的数据量太小,浪费map资源17TRANSWARP 2013hdfs-site.xml高级配置参数 node.handler.count NameNode处理DataNode RPC请求的线程数,默认值为10,推荐为DataNode节点数的10%dfs.datanode.failed.volumes.tolerated DataNode能够容忍的硬盘故障个数,默认值为0,在有硬盘监控报警的情况下可以调大该值dfs

14、.datanode.du.reserved 每块磁盘不供DataNode存储数据的大小,默认值为0,推荐设置10Gdfs.client.read.shortcircuit 当数据在客户端本地时,直接从本地磁盘读取数据块而不是走网络dfs.domain.socket.path 开启shortcircuit时,使用了UNIX domain socket来进行数据块的读写,该参数配置socket 文件的路径18TRANSWARP 2013mapred-site.xml基本配置参数mapred.job.tracker jobtracker的主机名和端口,如transwarp-node1:54311 m

15、apred.local.dir 存放mapreduce中间结果的本地目录,推荐配置不同磁盘上的多个目录,以逗号分隔mapred.child.java.opts 启动TaskTracker子进程的Java参数,默认值是-Xmx200m,可根据集群配置调整该参数, 推荐使用1G或2Gmapred.jobtracker.taskScheduler MapReduce任务的调度算法,推荐使用公平调度算法FairSchedulermapred.tasktracker.map.tasks.maximum TaskTracker的map任务槽最大数目,推荐与CPU核数相等mapred.tasktracker

16、.reduce.tasks.maximum TaskTracker的reduce任务槽最大数目,推荐为CPU核数的一半19TRANSWARP 2013MapReduce高级配置参数mapred.job.tracker.handler.count JobTracker处理TaskTracker的心跳所使用的线程数,默认是10,推荐设置为TaskTracker节点 数目的4%,下限为10.mapred.reduce.parallel.copies Reduce拷贝数据的线程数量,默认为5,推荐配置为节点数的平方根,下限为10pleted.maps Map任务完成百分比到多少时,启动reduce,默

17、认值为0.05f,当map比reduce的执行时间远 大于reduce执行时间时,可调大该值press.map.output 是否对Map输出压缩,默认为false,推荐为true,用CPU换IO,减少磁盘和网络I/Opression.codec Map输出压缩算法,默认为DefaultCodec,推荐使用Snappy压缩20TRANSWARP 2013hadoop-env.sh参数设置hadoop相关进程环境变量的配置文件比较常用环境变量有: HADOOP_NAMENODE_OPTS,可设置NameNode最大内存大小,如: export HADOOP_NAMENODE_OPTS=“-Xmx

18、16g” HADOOP_SECONDARYNAMENODE_OPTS: Secondary NameNode的JVM参数 HADOOP_DATANODE_OPTS:DataNode的JVM参数 HADOOP_JOBTRACKER_OPTS:JobTracker的JVM参数 HADOOP_TASKTRACKER_OPTS:TaskTracker的JVM参数 HADOOP_LOG_DIR:Hadoop的日志目录 HADOOP_CONF_DIR:Hadoop配置文件目录21TRANSWARP 2013使用管理界面修改配置参数22TRANSWARP 2013可以对配置进行编辑,添加,删除,重置,然后按

19、存储保存可以通过关键字过滤找到你想要的关键信息Hadoop集群管理和监控23TRANSWARP 2013如何管理Hadoop日志文件使用Ganglia对集群进行监控Hadoop集群问题定位最佳实践Hadoop集群基准测试Hadoop日志基本知识Hadoop日志目录可以在hadoop-env.sh中配置HADOOP_LOG_DIR环境变量进行修改 TDH通常设置为/var/log/service_name,如hdfs1服务的日志位于目录/var/log/hdfs1每个Hadoop进程写入两个日志文件 *.log文件是使用log4j写入的 标准log4j每天轮转日志文件 旧的日志文件默认不会被删除

20、 *.out文件 进程启动时的标准输出和错误输出 日志内容通常较少 进程启动的时候轮转日志文件,保留五个日志文件24TRANSWARP 2013Hadoop日志基本知识日志文件名: hadoop-.log|out 例如:hadoop-hdfs-datanode-transwarp-node1.loglog4j的配置文件为perties 参数hadoop.root.logger可配置日志级别 日志级别包括FATAL,ERROR,WARN,INFO,DEBUG,TRACE日志文件增长: 集群空闲是增长速度慢 有作业在执行时增长速度很快 需要定期监控日志目录大小,防止日志太大,占用太多磁盘空间25T

21、RANSWARP 2013任务日志:由Hadoop创建当作业运行时,以下日志文件被创建: XML格式的任务配置文件:包括提交者对作业的参数配置 位于/var/log/mapreduce1/history下 例如job_201310201346_0001_conf.xml 作业运行状态文件 任务在运行时不断被更新 包括计数器,任务状态信息等 位于/var/log/mapreduce1/history下 例如job_201310201346_0001_1382971163474_root_PiEstimator26TRANSWARP 2013使用界面管理Hadoop日志节点日志界面包含7个检索条件

22、:节点 从节点下拉菜单中选择一个节点。角色 从角色下拉菜单中选择一个角色。日志级别 从日志级别下拉菜单中选择一个级别上限。搜索范围 从搜索范围下拉菜单中选择一个范围大小。起始时间 在展开的日历中选择一个日期或者直接键入一个日期。结束日期 在展开的日历中选择一个日期或者直接键入一个日期。关键字过滤 在关键字输入框内输入日志所包含的关键字。27TRANSWARP 2013Hadoop集群管理和监控28TRANSWARP 2013如何管理Hadoop日志文件使用Ganglia对集群进行监控Hadoop集群问题定位最佳实践Hadoop集群基准测试Hadoop Metrics定义了多种hadoop运行时

23、指标,定期收集和发送这些指标 通过对指标数据的分析,可监控hadoop集群运行状况和性能状况,比如通过JVM数据我们 可以优化系统GC策略这些指标数据有两种处理方式 存储为本地文件 将数据发送到Ganglia,Ganglia收集汇总数据,并绘制图表在网页上呈现出来Hadoop Metrics根据上下文可分为以下几组: jvm: JVM统计数据,包括内存使用、线程数、垃圾收集信息 dfs: NameNode容量,文件数目,正在被复制的数据块 mapred:JobTracker信息,与JobTracker的Web状态页面类似 rpc: 远程过程调用信息29TRANSWARP 2013Hadoop

24、Metrics (contd) 配置文件为perties配置文件示例:30TRANSWARP 2013# Below are for sending metrics to Ganglia# for Ganglia 3.1 support*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31*.sink.ganglia.period=10*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both,_complet

25、ed=positive,_failed=positive,_killed=positive,_submitted=positive,mapred.jobtracker.maps_completed=positive,mapred.jobtracker.maps_failed=positive,mapred.jobtracker.maps_killed=positive,mapred.jobtracker.maps_launched=positive,mapred.jobtracker.reduces_completed=positive,mapred.jobtracker.reduces_fa

26、iled=positive,mapred.jobtracker.reduces_killed=positive,mapred.jobtracker.reduces_launched=positive,mapred.Q_completed=positive,dfs.datanode.replaceBlockOp_num_ops=positive,dfs.datanode.writeBlockOp_num_ops=positive,node.blockReport_num_ops=positive,node.Syncs_num_ops=positive,node.Transactions_num_

27、ops=positive,rpcdetailed.rpcdetailed.addBlock_num_ops=positive,rpcdetailed.rpcdetailed.blockReceived_num_ops=positive,rpcdetailed.rpcdetailed.blockReport_num_ops=positiveHadoop指标 (contd) 31TRANSWARP 2013*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40namenode.sink.gangli

28、a.servers=6:8649datanode.sink.ganglia.servers=6:8649jobtracker.sink.ganglia.servers=6:8649tasktracker.sink.ganglia.servers=6:8649maptask.sink.ganglia.servers=6:8649reducetask.sink.ganglia.servers=6:8649Ganglia架构图Ganglia是一个为高性能计算系统而设计的开源、可扩展的分布式监控系统Ganglia收集、聚合并提供指标的时序图能够与Hadoop指标收集系统相整合由gmetad,gmond

29、,webserver组成32TRANSWARP 2013使用Ganglia监控集群指标ClientgmondClientgmondClientgmondgmetadrrdtoolwebserver33TRANSWARP 2013Ganglia Web页面示例Hadoop集群管理和监控34TRANSWARP 2013如何管理Hadoop日志文件使用Ganglia对集群进行监控Hadoop集群问题定位最佳实践Hadoop集群基准测试hadoop集群问题定位最佳实践主要问题定位手段: 命令执行错误:根据执行命令的错误输出定位问题 进程状态错误:查看日志,分析异常和错误 性能问题: 通过Ganglia

30、页面,监控集群运行状况 查看GC日志,分析java垃圾回收状态 网络问题:ethtool, ifconfig, ping35TRANSWARP 2013hadoop集群问题定位示例通过错误输出发现Hive连接不上MetaStore检查MetaStore进程状态查看metastore日志:/var/log/hive1/hive-metastore.log,发现异常查看hive元数据信息存储的mysqld进程状态36TRANSWARP 2013hive show tables;FAILED: Error in metadata: MetaException(message:Could not co

31、nnect to meta store using any of the URIs provided)FAILED: Execution Error, return code 1hive quit;roottranswarp03 # service hive-metastore-hive1 statusChecking for service : metastore is dead and pid file existFAILEDjavax.jdo.JDOFatalDataStoreException: Communications link failureroottranswarp03 #

32、service mysqld statusmysqld is stoppedhadoop集群问题定位示例5. 启动mysqld和hive metastore服务6. 执行hive命令,成功查看所有表37TRANSWARP 2013roottranswarp03 # service mysqld startStarting mysqld: OK roottranswarp03 # service hive-metastore-hive1 startStarting (hive-metastore): OK roottranswarp03 # hiveLogging initialized usi

33、ng configuration in file:/etc/hive1/conf/pertiesHive history file=/tmp/root/hive_job_log_root_201310290752_930896530.txthive show tables;OKfruittestTime taken: 1.322 secondsHadoop集群管理和监控38TRANSWARP 2013如何管理Hadoop日志文件使用Ganglia对集群进行监控Hadoop集群问题定位最佳实践Hadoop集群基准测试Hadoop基准测试搭建完Hadoop集群后或者向集群中添加节点后,一个常见的问

34、题是 这个Hadoop集群现在跑的有多快对集群进行基准测试的结果不具有普遍性 性能与所运行作业的类型有很大关系标准的基准测试Terasort 例如:生成10,000,000行数据,每一行包含100个字节,并对这个文件排序这个基准测试主要测试网络和磁盘I/O性能39TRANSWARP 2013hadoop jar /usr/lib/mr1/mr1-examples-*.jar teragen 10000000 input_dirhadoop jar /usr/lib/mr1/mr1-examples-*.jar terasort input_dir output_dir常用的基准测试TPC-H

35、模拟真实商业的应用环境,评价特定查询的决策支持能力,包括8张表和22个SQL查询语句,度量 指标包括装载数据时间和每个查询执行时间,可通过Hive运行TPC-H查询语句来对整个Hadoop集 群进行基准测试HiBench 包括:WordCount、TeraSort,HDFS文件系统I/O吞吐性能基准测试, Nutch索引建立,PageRank、贝叶斯分类、K-means聚类和Hive查询基准测试40TRANSWARP 2013Hadoop集群数据导入41TRANSWARP 2013Flume概述Sqoop概述导入数据最佳实践Flume概述什么是Flume Flume是一个分布式、可靠、和高可用

36、的海量日志聚合的系统,支持在系统中定制各类数据发 送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定 制)的能力。Flume基本特点 高可靠性和容错性:提供容错手段保证数据的收集和发送 可伸缩性:主要组件均可以水平扩充,可动态提高容量 易用性:缺省丰富的Source和Sink组件实现 可扩展性:插件框架通过API接口可以扩展新的数据来源以及数据处理逻辑 42TRANSWARP 2013Flume系统结构图43TRANSWARP 2013Flume组件44TRANSWARP 2013组件功能介绍EventFlume处理数据元,可能是一条日志、一个Avro对象等

37、,通常约4KB大小AgentFlume运行实体,每台机器一份,可能包括多个Source或者SinkClient产生Event,在单独线程中运行Source接收Event,并送入Channel,在单独线程中运行并监控Channel连接Source与Sink,功能类似队列,有可靠性实现Sink从Channel接收Event,可能进行下一步转发(如连与另外某Source通讯),在单独线程中运行并监控Flume安装和配置Flume安装 yum install flume-node单配置文件(Java property文档格式) 位于/etc/flume/conf/perties每行对应一个属性/值队:

38、.type.subtype.parameter.config=value identifier是Flume agent的标识名,以下面为例: 值为 syslog-agent type 值为 sources, sinks, channels subtype 值为 Syslog, HDFS-LAB,MemoryChannel-1 parameter 值为 type, port, channels, channel, hdfs config 值为 path, file.Prefix,file.Type45TRANSWARP 2013配置文件示例syslog-agent.sources=Syslogs

39、yslog-agent.channels=MemoryChannel-1syslog-agent.sinks=HDFS-LABsyslog-agent.sources.Syslog.type=syslogTcpsyslog-agent.sources.Syslog.port=5140syslog-agent.sources.Syslog.channels=MemoryChannel-1syslog-agent.sinks.HDFS-LAB.channel=MemoryChannel-1syslog-agent.sinks.HDFS-LAB.type=hdfssyslog-agent.sinks

40、.HDFS-LAB.hdfs.path=hdfs:/NN.URI:PORT/flumetest/%hostsyslog-agent.sinks.HDFS-LAB.hdfs.file.Prefix=syslogfilessyslog-agent.sinks.HDFS-LAB.hdfs.file.Type=SequenceFile46TRANSWARP 2013配置文件示例syslog-agent.sources=Syslogsyslog-agent.channels=MemoryChannel-1syslog-agent.sinks=HDFS-LABsyslog-agent.sources.Sy

41、slog.type=syslogTcpsyslog-agent.sources.Syslog.port=5140syslog-agent.sources.Syslog.channels=MemoryChannel-1syslog-agent.sinks.HDFS-LAB.channel=MemoryChannel-1syslog-agent.sinks.HDFS-LAB.type=hdfssyslog-agent.sinks.HDFS-LAB.hdfs.path=hdfs:/NN.URI:PORT/flumetest/%hostsyslog-agent.sinks.HDFS-LAB.hdfs.

42、file.Prefix=syslogfilessyslog-agent.sinks.HDFS-LAB.hdfs.file.Type=SequenceFile47TRANSWARP 2013Hadoop集群数据导入48TRANSWARP 2013Flume概述Sqoop概述导入数据最佳实践Sqoop概述Sqoop是关系型数据库和hadoop之间的导入导出工具 支持从关系型数据库直接导入到HDFS、HBase以及Hive 支持Hadoop、Hive中的数据直接导入到关系型数据库 使用JDBC连接关系型数据库49TRANSWARP 2013Sqoop概述Sqoop特性 导入数据库中的单个表或所有表

43、可以选择要导入的行,使用WHERE子句 可以提供任意的SELECT语句 导入Hive是能够自动建表 支持数据增量导入 能够导入HDFS上的数据到关系型数据库的表中50TRANSWARP 2013Sqoop导入示例显示数据库testdb中的所有表 sqoop list-tables username transwarp password datahub -connect jdbc:mysql:/testdb将testdb中的所有表导入到HDFS中 sqoop import-all-tables username transwarp password datahub -connect jdbc:m

44、ysql:/testdb -target-dir hdfs:/6:8020使用SELECT和WHERE语句 sqoop import -query SELECT a.*, b.* FROM a JOIN b on (a.id = b.id) WHERE $CONDITIONS -connect jdbc:mysql:/testdb -target-dir /user/foo/joinresults m 151TRANSWARP 2013Hadoop集群数据导入52TRANSWARP 2013Flume概述Sqoop概述导入数据最佳实践数据导入最佳实践最佳实践是导入数据到一个临时目录当数据完全导

45、入,把数据移动到目标文件夹 这是一个原子操作 这步操作执行很快,因为它只需要修改NameNode的元数据信息从生产库导入到Hadoop中时,需要控制好导入的并发数 防止对生产库造成压力过大 可先用较小的并发数试验,逐渐增大并发数,并观察生产库压力情况使用关系型数据库的hint加速导入速度 当使用SELECT语句从关系型数据库(如Oracle)向Hadoop中导入数据时,使用Oracle上 的相关hint(例如parallel)能够加速导入速度 53TRANSWARP 2013Hadoop集群安全保障54TRANSWARP 2013Hadoop集群安全体系的基本构成Kerberos的介绍Kerb

46、eros的配置Kerberos与Hadoop集群集合实践Hadoop集群安全体系的基本构成认证 (Authentication) 判断用户的身份 Hadoop从0.20集成了基于Kerberos的身份认证机制 需要先向Kerberos服务器进行身份认证,然后使用Token进行通信 不具有合法Token的身份不能够进行HDFS读写、提交MapReduce任务,查询HBase等操作 Hadoop进程直接相互通信时需要进行身份认证,否则通信失败,如没有经过Kerberos认证的 DataNode无法与NameNode进行通信授权 (Authorization) 决定用户的权限 HDFS从0.16版本

47、开始有用户、组和权限,与Linux系统类似 可设置禁止提交任务到MapReduce的用户 可对HBase的表、列簇、列进行权限设置55TRANSWARP 2013Kerberos的介绍什么是Kerberos Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户端/服务器的应用程序提供 强大的认证服务。 由三个部分组成: KDC(Kerberos密钥分发中心) 客户端(用户/主机) 服务器(提供客户端请求的服务,与客户端建立会话) 部署的范围:Kerberos领域(Realm) KDC提供: AS(身份认证服务器) TGS(票证生成服务)56TRANSWARP 2013Kerbe

48、ros基本概念KDC(密钥分发中心)TGT(票证授予票证) 要获取特定服务的票证,需要TGT,TGT类似于护照,可标识用户身份并允许用户获取多个 “签证”,此处的“签证”喻指特定服务的票证Keytab 密钥表文件,包含一个或多个“用户/主机”格式的Kerberos主体和对应的密钥Principal(Kerberos主体) 由三部分组成:主名称/实例领域 主名称: 可以是用户名或服务,表示用于提供各种网络服务的服务主体或者用户主体 实例: 对于用户主体,实例是可选的;但是对于服务主体,实例则是必须的。如joe和 joe/admin是两个完全不同的主体 领域:属于同一主KDC的一组系统的逻辑网络

49、57TRANSWARP 2013Kerberos认证流程58TRANSWARP 2013Client向KDC请求TGT,开始会话KDC创建TGT,并对其加密返回Client使用密钥对其解密获取TGTClient使用TGT向KDC请求特定服务KDC验证TGT,将该特定服务的票证发送到ClientClient将票据发送到应用服务器服务器允许客户机进行访问Kerberos服务器配置59TRANSWARP 2013配置文件:/var/kerberos/krb5kdc/kdc.confdefault_realm = TDHkdcdefaults v4_mode = nopreauth kdc_ports

50、 = 0realms TDH = kdc_ports = 88 admin_keytab = /etc/kadm5.keytab database_name = /var/kerberos/krb5kdc/principal acl_file = /var/kerberos/krb5kdc/kadm5.acl key_stash_file = /var/kerberos/krb5kdc/stash max_life = 10h 0m 0s max_renewable_life = 7d 0h 0m 0s master_key_type = des3-hmac-sha1 supported_en

51、ctypes = arcfour-hmac:normal des3-hmac-sha1:normal descbc-crc:normal des:normal default_principal_flags = +preauth Kerberos客户端配置配置文件:/etc/krb5.conflibdefaults default_realm = TDH dns_lookup_realm = false dns_lookup_kdc = false forwardable = true default_tkt_enctypes = des-cbc-md5 des-cbc-crc des3-cb

52、c-sha1 default_tgs_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1 permitted_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1 allow_weak_crypto = truerealms TDH = kdc = transwarp03:88 admin_server = transwarp05:749 logging kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmin.log default = FILE:/var/log/krb5lib.lo

温馨提示

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

最新文档

评论

0/150

提交评论