搜索
首页数据库mysql教程Hadoop集群搭建

Hadoop集群搭建

Jun 07, 2016 pm 04:41 PM
hadoophttp搭建集群

原文 ? http://blog.csdn.net/yang_best/article/details/41280553 接下来的几节描述了如何配置Hadoop集群。 配置文件 对Hadoop的配置通过 conf/ 目录下的两个重要配置文件完成: hadoop-default.xml 只读的默认配置。 hadoop-site.xml 集群特有的配置。 要

接下来的几节描述了如何配置Hadoop集群。

配置文件

对Hadoop的配置通过 conf/ 目录下的两个重要配置文件完成:

  1. hadoop-default.xml – 只读的默认配置。
  2. hadoop-site.xml – 集群特有的配置。

要了解更多关于这些配置文件如何影响Hadoop框架的细节,请看 这里 。

此外,通过设置 conf/hadoop-env.sh 中的变量为集群特有的值,你可以对 bin/ 目录下的Hadoop脚本进行控制。

集群配置

要配置Hadoop集群,你需要设置Hadoop守护进程的 运行环境 和Hadoop守护进程的 运行参数

Hadoop守护进程指 NameNode / DataNode 和 JobTracker / TaskTracker 。

配置Hadoop守护进程的运行环境

管理员可在 conf/hadoop-env.sh 脚本内对Hadoop守护进程的运行环境做特别指定。

至少,你得设定 JAVA_HOME 使之在每一远端节点上都被正确设置。

管理员可以通过配置选项 HADOOP_*_OPTS 来分别配置各个守护进程。 下表是可以配置的选项。

守护进程 配置选项
NameNode HADOOP_NAMENODE_OPTS
DataNode HADOOP_DATANODE_OPTS
SecondaryNamenode HADOOP_SECONDARYNAMENODE_OPTS
JobTracker HADOOP_JOBTRACKER_OPTS
TaskTracker HADOOP_TASKTRACKER_OPTS

例如,配置Namenode时,为了使其能够并行回收垃圾(parallelGC), 要把下面的代码加入到 hadoop-env.sh :

export HADOOP_NAMENODE_OPTS=”-XX:+UseParallelGC ${HADOOP_NAMENODE_OPTS}”

其它可定制的常用参数还包括:

  • HADOOP_LOG_DIR – 守护进程日志文件的存放目录。如果不存在会被自动创建。
  • HADOOP_HEAPSIZE – 最大可用的堆大小,单位为MB。比如, 1000MB 。 这个参数用于设置hadoop守护进程的堆大小。缺省大小是 1000MB 。

配置Hadoop守护进程的运行参数

这部分涉及Hadoop集群的重要参数,这些参数在 conf/hadoop-site.xml 中指定。

参数 取值 备注
fs.default.name NameNode 的URI。 hdfs://主机名/
mapred.job.tracker JobTracker 的主机(或者IP)和端口。 主机:端口
dfs.name.dir NameNode 持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
dfs.data.dir DataNode 存放块数据的本地文件系统路径,逗号分割的列表。 当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。
mapred.system.dir Map/Reduce框架存储系统文件的HDFS路径。比如/hadoop/mapred/system/。 这个路径是默认文件系统(HDFS)下的路径, 须从服务器和客户端上均可访问。
mapred.local.dir 本地文件系统下逗号分割的路径列表,Map/Reduce临时数据存放的地方。 多路径有助于利用磁盘i/o。
mapred.tasktracker.{map|reduce}.tasks.maximum 某一 TaskTracker 上可运行的最大Map/Reduce任务数,这些任务将同时各自运行。 默认为2(2个map和2个reduce),可依据硬件情况更改。
dfs.hosts/dfs.hosts.exclude 许可/拒绝DataNode列表。 如有必要,用这个文件控制许可的datanode列表。
mapred.hosts/mapred.hosts.exclude 许可/拒绝TaskTracker列表。 如有必要,用这个文件控制许可的TaskTracker列表。

通常,上述参数被标记为 final 以确保它们不被用户应用更改。

现实世界的集群配置

这节罗列在大规模集群上运行 sort 基准测试(benchmark)时使用到的一些非缺省配置。

  • 运行sort900的一些非缺省配置值,sort900即在900个节点的集群上对9TB的数据进行排序:
    参数 取值 备注
    dfs.block.size 134217728 针对大文件系统,HDFS的块大小取128MB。
    dfs.namenode.handler.count 40 启动更多的NameNode服务线程去处理来自大量DataNode的RPC请求。
    mapred.reduce.parallel.copies 20 reduce启动更多的并行拷贝器以获取大量map的输出。
    mapred.child.java.opts -Xmx512M 为map/reduce子虚拟机使用更大的堆。
    fs.inmemory.size.mb 200 为reduce阶段合并map输出所需的内存文件系统分配更多的内存。
    io.sort.factor 100 文件排序时更多的流将同时被归并。
    io.sort.mb 200 提高排序时的内存上限。
    io.file.buffer.size 131072 SequenceFile中用到的读/写缓存大小。
  • 运行sort1400和sort2000时需要更新的配置,即在1400个节点上对14TB的数据进行排序和在2000个节点上对20TB的数据进行排序:
    参数 取值 备注
    mapred.job.tracker.handler.count 60 启用更多的JobTracker服务线程去处理来自大量TaskTracker的RPC请求。
    mapred.reduce.parallel.copies 50
    tasktracker.http.threads 50 为TaskTracker的Http服务启用更多的工作线程。reduce通过Http服务获取map的中间输出。
    mapred.child.java.opts -Xmx1024M 使用更大的堆用于maps/reduces的子虚拟机

Slaves

通常,你选择集群中的一台机器作为 NameNode ,另外一台不同的机器作为JobTracker 。余下的机器即作为 DataNode 又作为 TaskTracker ,这些被称之为slaves

在 conf/slaves 文件中列出所有slave的主机名或者IP地址,一行一个。

日志

Hadoop使用 Apache log4j 来记录日志,它由 Apache Commons Logging 框架来实现。编辑 conf/log4j.properties 文件可以改变Hadoop守护进程的日志配置(日志格式等)。

历史日志

作业的历史文件集中存放在 hadoop.job.history.location ,这个也可以是在分布式文件系统下的路径,其默认值为 ${HADOOP_LOG_DIR}/history 。jobtracker的web UI上有历史日志的web UI链接。

历史文件在用户指定的目录 hadoop.job.history.user.location 也会记录一份,这个配置的缺省值为作业的输出目录。这些文件被存放在指定路径下的“_logs/history/”目录中。因此,默认情况下日志文件会在“mapred.output.dir/_logs/history/”下。如果将hadoop.job.history.user.location 指定为值 none ,系统将不再记录此日志。

用户可使用以下命令在指定路径下查看历史日志汇总

$ bin/hadoop job -history output-dir

这条命令会显示作业的细节信息,失败和终止的任务细节。

关于作业的更多细节,比如成功的任务,以及对每个任务的所做的尝试次数等可以用下面的命令查看

$ bin/hadoop job -history all output-dir

一但全部必要的配置完成,将这些文件分发到所有机器的 HADOOP_CONF_DIR 路径下,通常是 ${HADOOP_HOME}/conf 。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
MySQL的许可与其他数据库系统相比如何?MySQL的许可与其他数据库系统相比如何?Apr 25, 2025 am 12:26 AM

MySQL使用的是GPL许可证。1)GPL许可证允许自由使用、修改和分发MySQL,但修改后的分发需遵循GPL。2)商业许可证可避免公开修改,适合需要保密的商业应用。

您什么时候选择InnoDB而不是Myisam,反之亦然?您什么时候选择InnoDB而不是Myisam,反之亦然?Apr 25, 2025 am 12:22 AM

选择InnoDB而不是MyISAM的情况包括:1)需要事务支持,2)高并发环境,3)需要高数据一致性;反之,选择MyISAM的情况包括:1)主要是读操作,2)不需要事务支持。InnoDB适合需要高数据一致性和事务处理的应用,如电商平台,而MyISAM适合读密集型且无需事务的应用,如博客系统。

在MySQL中解释外键的目的。在MySQL中解释外键的目的。Apr 25, 2025 am 12:17 AM

在MySQL中,外键的作用是建立表与表之间的关系,确保数据的一致性和完整性。外键通过引用完整性检查和级联操作维护数据的有效性,使用时需注意性能优化和避免常见错误。

MySQL中有哪些不同类型的索引?MySQL中有哪些不同类型的索引?Apr 25, 2025 am 12:12 AM

MySQL中有四种主要的索引类型:B-Tree索引、哈希索引、全文索引和空间索引。1.B-Tree索引适用于范围查询、排序和分组,适合在employees表的name列上创建。2.哈希索引适用于等值查询,适合在MEMORY存储引擎的hash_table表的id列上创建。3.全文索引用于文本搜索,适合在articles表的content列上创建。4.空间索引用于地理空间查询,适合在locations表的geom列上创建。

您如何在MySQL中创建索引?您如何在MySQL中创建索引?Apr 25, 2025 am 12:06 AM

toCreateAnIndexinMysql,usethecReateIndexStatement.1)forasingLecolumn,使用“ createIndexIdx_lastNameEnemployees(lastName); 2)foracompositeIndex,使用“ createIndexIndexIndexIndexIndexDx_nameOmplayees(lastName,firstName,firstName);” 3)forauniqe instex,creationexexexexex,

MySQL与Sqlite有何不同?MySQL与Sqlite有何不同?Apr 24, 2025 am 12:12 AM

MySQL和SQLite的主要区别在于设计理念和使用场景:1.MySQL适用于大型应用和企业级解决方案,支持高性能和高并发;2.SQLite适合移动应用和桌面软件,轻量级且易于嵌入。

MySQL中的索引是什么?它们如何提高性能?MySQL中的索引是什么?它们如何提高性能?Apr 24, 2025 am 12:09 AM

MySQL中的索引是数据库表中一列或多列的有序结构,用于加速数据检索。1)索引通过减少扫描数据量提升查询速度。2)B-Tree索引利用平衡树结构,适合范围查询和排序。3)创建索引使用CREATEINDEX语句,如CREATEINDEXidx_customer_idONorders(customer_id)。4)复合索引可优化多列查询,如CREATEINDEXidx_customer_orderONorders(customer_id,order_date)。5)使用EXPLAIN分析查询计划,避

说明如何使用MySQL中的交易来确保数据一致性。说明如何使用MySQL中的交易来确保数据一致性。Apr 24, 2025 am 12:09 AM

在MySQL中使用事务可以确保数据一致性。1)通过STARTTRANSACTION开始事务,执行SQL操作后用COMMIT提交或ROLLBACK回滚。2)使用SAVEPOINT可以设置保存点,允许部分回滚。3)性能优化建议包括缩短事务时间、避免大规模查询和合理使用隔离级别。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境