- 浏览: 307807 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (165)
- hadoop (47)
- linux (11)
- nutch (7)
- hbase (7)
- solr (4)
- zookeeper (4)
- J2EE (1)
- jquery (3)
- java (17)
- mysql (14)
- perl (2)
- compass (4)
- suse (2)
- memcache (1)
- as (1)
- roller (1)
- web (7)
- MongoDB (8)
- struts2 (3)
- lucene (2)
- 算法 (4)
- 中文分词 (3)
- hive (17)
- noIT (1)
- 中间件 (2)
- maven (2)
- sd (0)
- php (2)
- asdf (0)
- kerberos 安装 (1)
- git (1)
- osgi (1)
- impala (1)
- book (1)
- python 安装 科学计算包 (1)
最新评论
-
dandongsoft:
你写的不好用啊
solr 同义词搜索 -
黎明lm:
meifangzi 写道楼主真厉害 都分析源码了 用了很久. ...
hadoop 源码分析(二) jobClient 通过RPC 代理提交作业到JobTracker -
meifangzi:
楼主真厉害 都分析源码了
hadoop 源码分析(二) jobClient 通过RPC 代理提交作业到JobTracker -
zhdkn:
顶一个,最近也在学习设计模式,发现一个问题,如果老是看别人的博 ...
Java观察者模式(Observer)详解及应用 -
lvwenwen:
木南飘香 写道
高并发网站的架构
hadoop 添加删除datanode及tasktracker
首先:
建议datanode和tasktracker分开写独立的exclude文件,因为一个节点即可以同时是datanode和tasktracker,也可以单独是datanode或tasktracker。
1、删除datanode
修改namenode上的hdfs-site.xml
其中dfs.host列出了连入namenode的节点,如果为空,则所有的datanode都可以连入namenode。如果不为空,则文件中存在的datanode可以连入。
dfs.hosts.exclude列出了禁止连入namenode的节点。
如果一个节点同时存在于dfs.hosts和dfs.hosts.exclude,则禁止连入。
具体步骤
(1)将要删除的datanode加入到dfs.hosts.exclude指定的文件中。(最好使用主机名,IP有时可能不生效)
(2)动态刷新配置,不需要重启namenode
(3)通过hadoop dfsadmin -report或webui,可以看到,该datanode的状态为Decommissioning
(4)等待一段时间,该节点为dead状态。
(5)删除dfs.hosts文件中该节点
(6)
注:按照上面的操作后,如果你想要重新启用该节点为datanode,从dfs.hosts.exclude中删除该节点,refreshNodes,然后,到该节点上,重启启动该datanode:
注:正确的删除datanode的方法应该是按照上面的方法,使用exclude文件,而不应该直接去datanode上去sotp datanode,这样会造出数据丢失,而且stop以后,webui和hadoop dfsadmin -report都仍然显示该datanode节点。除非重新启动namenode。
之所以重新启用exclude的节点时可以stop datanode,因为此时该datanode不包含在cluster中,所以,stop后不会造成数据丢失。
2、添加datanode
如果存在dfs.hosts文件,且不为空,则添加新的datanode到该文件中,refreshNodes。
到新节点上,启动即可
如果不存在dfs.hosts文件,或文件为空,直接启动新节点即可。
3、删除tasktracker
原理和步骤与删除datanode一样。
动态刷新配置的命令为:
hadoop mradmin -refreshNodes
立刻生效,可以在webui中看到,nodes节点数量的变化,以及Excluded Nodes节点的变化。
具体的步骤参考上面的删除datanode的步骤
注:按照上面的操作后,如果你想要重新启用该节点为tasktracker,从mapred.hosts.exclude中删除该节点,refreshNodes,然后,到该节点上,重启启动该tasktracker:
注:正确的删除tasktracker的方法应该是按照上面的方法,使用exclude文件,而不应该直接去tasktracker上去sotp tasktracker,这样会造成job失败,而且stop以后,webui上仍然显示该tasktracker节点。除非重新启动jobtracker。
我遇到的一个问题:
在exclude文件中,我使用了IP,发现tasktracker仍然参与计算。
在webui中发现,Excluded Nodes中存在该IP,Nodes中仍然存在该tasktracker的hostname。
解决的办法就是,在exclude中使用hostname而不使用IP。
判断是否真正生效:如果exclued文件中正确的填写了要失效的node,则总得nodes数量应该减小。
4、添加tasktracker
如果存在mapred.hosts文件,且不为空,则添加新的tasktracker到该文件中,refreshNodes。
到新节点上,启动即可
如果不存在mapred.hosts文件,或文件为空,直接启动新节点即可。
6、添加或删除datanode后,平衡磁盘利用率
运行bin/start-balancer.sh,这个会很耗时间
备注:
如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mr的工作效率;
threshold 是平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长。
balancer也可以在有mr job的cluster上运行,默认dfs.balance.bandwidthPerSec很低,为1M/s。在没有mr job时,可以提高该设置加快负载均衡时间。
在namenode的hdfs-site.xml中增加设置balance的带宽,默认只有1M:
首先:
建议datanode和tasktracker分开写独立的exclude文件,因为一个节点即可以同时是datanode和tasktracker,也可以单独是datanode或tasktracker。
1、删除datanode
修改namenode上的hdfs-site.xml
<property> <name>dfs.hosts</name> <value>/usr/local/hadoop/conf/datanode-allow-list</value> </property>
<property> <name>dfs.hosts.exclude</name> <value>/usr/local/hadoop/conf/datanode-deny-list</value> </property>
其中dfs.host列出了连入namenode的节点,如果为空,则所有的datanode都可以连入namenode。如果不为空,则文件中存在的datanode可以连入。
dfs.hosts.exclude列出了禁止连入namenode的节点。
如果一个节点同时存在于dfs.hosts和dfs.hosts.exclude,则禁止连入。
具体步骤
(1)将要删除的datanode加入到dfs.hosts.exclude指定的文件中。(最好使用主机名,IP有时可能不生效)
(2)动态刷新配置,不需要重启namenode
hadoop dfsadmin -refreshNodes
(3)通过hadoop dfsadmin -report或webui,可以看到,该datanode的状态为Decommissioning
(4)等待一段时间,该节点为dead状态。
(5)删除dfs.hosts文件中该节点
(6)
hadoop dfsadmin -refreshNodes
注:按照上面的操作后,如果你想要重新启用该节点为datanode,从dfs.hosts.exclude中删除该节点,refreshNodes,然后,到该节点上,重启启动该datanode:
/usr/local/hadoop/bin/hadoop-daemon.sh stop datanode /usr/local/hadoop/bin/hadoop-daemon.sh start datanode
注:正确的删除datanode的方法应该是按照上面的方法,使用exclude文件,而不应该直接去datanode上去sotp datanode,这样会造出数据丢失,而且stop以后,webui和hadoop dfsadmin -report都仍然显示该datanode节点。除非重新启动namenode。
之所以重新启用exclude的节点时可以stop datanode,因为此时该datanode不包含在cluster中,所以,stop后不会造成数据丢失。
2、添加datanode
如果存在dfs.hosts文件,且不为空,则添加新的datanode到该文件中,refreshNodes。
到新节点上,启动即可
/usr/local/hadoop/bin/hadoop-daemon.sh start datanode
如果不存在dfs.hosts文件,或文件为空,直接启动新节点即可。
3、删除tasktracker
原理和步骤与删除datanode一样。
<property> <name>mapred.hosts</name> <value>/usr/local/hadoop/conf/tasktracker-allow-list</value> </property>
<property> <name>mapred.hosts.exclude</name> <value>/usr/local/hadoop/conf/tasktracker-deny-list</value> </property>
动态刷新配置的命令为:
hadoop mradmin -refreshNodes
立刻生效,可以在webui中看到,nodes节点数量的变化,以及Excluded Nodes节点的变化。
具体的步骤参考上面的删除datanode的步骤
注:按照上面的操作后,如果你想要重新启用该节点为tasktracker,从mapred.hosts.exclude中删除该节点,refreshNodes,然后,到该节点上,重启启动该tasktracker:
/usr/local/hadoop/bin/hadoop-daemon.sh stop tasktracker /usr/local/hadoop/bin/hadoop-daemon.sh start tasktracker
注:正确的删除tasktracker的方法应该是按照上面的方法,使用exclude文件,而不应该直接去tasktracker上去sotp tasktracker,这样会造成job失败,而且stop以后,webui上仍然显示该tasktracker节点。除非重新启动jobtracker。
我遇到的一个问题:
在exclude文件中,我使用了IP,发现tasktracker仍然参与计算。
在webui中发现,Excluded Nodes中存在该IP,Nodes中仍然存在该tasktracker的hostname。
解决的办法就是,在exclude中使用hostname而不使用IP。
判断是否真正生效:如果exclued文件中正确的填写了要失效的node,则总得nodes数量应该减小。
4、添加tasktracker
如果存在mapred.hosts文件,且不为空,则添加新的tasktracker到该文件中,refreshNodes。
到新节点上,启动即可
/usr/local/hadoop/bin/hadoop-daemon.sh start tasktracker
如果不存在mapred.hosts文件,或文件为空,直接启动新节点即可。
6、添加或删除datanode后,平衡磁盘利用率
运行bin/start-balancer.sh,这个会很耗时间
备注:
如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mr的工作效率;
/usr/local/hadoop/bin/start-balancer.sh -threshold 0.1
threshold 是平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长。
balancer也可以在有mr job的cluster上运行,默认dfs.balance.bandwidthPerSec很低,为1M/s。在没有mr job时,可以提高该设置加快负载均衡时间。
在namenode的hdfs-site.xml中增加设置balance的带宽,默认只有1M:
<property> <name>dfs.balance.bandwidthPerSec</name> <value>10485760</value> <description> Specifies the maximum bandwidth that each datanode can utilize for the balancing purpose in term of the number of bytes per second. </description> </property>
发表评论
-
博客地址变更
2013-08-16 10:29 1247all the guys of visiting the bl ... -
hadoop 源码分析(六)hadoop taskTracker 生成map 和reduce任务流程
2013-04-09 17:36 2760taskTracker 生成map reduce ... -
hadoop 源码分析(六)hadoop taskTracker 生成map 和reduce任务流程
2013-04-09 17:33 0taskTracker 生成map reduce ... -
hadoop 源码分析(五)hadoop 任务调度TaskScheduler
2013-04-01 11:07 3957hadoop mapreduce 之所有能够实现job的运行 ... -
hadoop 源码分析(四)JobTracker 添加job 到schduler 队列中
2013-03-29 18:37 2891启动 JobTracker 1. 进入main方法: ... -
hadoop 源码分析(三) hadoop RPC 机制
2013-03-28 15:13 2422Hadoop 通信机制采用自己编写的RPC. 相比于 ... -
hadoop 源码分析(二) jobClient 通过RPC 代理提交作业到JobTracker
2013-03-27 12:57 38151.JobClient 客户端类 通过 ... -
hadoop 源码分析(一) jobClient 提交到JobTracker
2013-03-26 13:41 3630Hadoop 用了2年多了.从最初一起创业的 ... -
RHadoop 安装教程
2013-02-01 17:18 1643RHadoop 环境安装 硬件: centos6 ... -
pig
2012-11-16 19:28 1227转自:http://www.hadoopor.c ... -
hadoop与hive的映射
2012-11-15 10:21 2384hadoop与hive的映射 ... -
hadoop distcp
2012-07-31 10:00 2839hadoop distcp 使用:distcp ... -
MapReduce中Mapper类和Reducer类4函数解析
2012-07-20 18:05 2140MapReduce中Mapper类和Reducer类4函数解析 ... -
hadoop metrics 各参数解释
2012-07-17 18:59 1528hadoop metrics 各参数解释 研究使用hadoo ... -
Hbase几种数据入库(load)方式比较
2012-07-17 14:52 13931. 预先生成HFile入库 这个地址有详细的说明http:/ ... -
Hadoop客户端环境配置
2012-05-11 14:59 1787Hadoop客户端环境配置 1. 安装客户端(通过端用户可以 ... -
hadoop 通过distcp进行并行复制
2012-05-02 15:25 2493通过distcp进行并行复制 前面的HDFS访问模型都集中于 ... -
linux crontab 执行hadoop脚本 关于hadoop环境变量引入
2012-04-10 12:11 0crontab问题 crontab的特点:PATH不全和无终 ... -
hadoop fs 命令封装
2012-04-09 09:39 0hadoop fs 命令封装 #!/usr/bin/env ... -
map-reduce编程核心问题
2012-02-22 13:38 12891-How do we break up a large p ...
相关推荐
192.168.0.227 功能:DataNode,TaskTracker 主机名称:hdfs3 ip:192.168.0.228 功能:DataNode,TaskTracker 重点:修改3台机器的/etc/hosts,让彼此的主机名称和ip都能顺利解析 127.0.0.1 localhost 192.168.0.37 ...
然后在新节点上执行 `cd path/to/hadoop` 进入 Hadoop 目录,接着运行 `bin/hadoop-daemon.sh start datanode` 和 `bin/hadoop-daemon.sh start tasktracker` 启动 DataNode 和 TaskTracker。最后,在 master 节点上...
作为云计算的标准开源软件,Hadoop的生态系统分布图包括多个构造模块,如NameNode、DataNode、Secondary NameNode、JobTracker和TaskTracker等。 Hadoop集群中的机器分为两类:主节点和从节点。NameNode、...
master 节点用于运行 namenode、secondary namenode 和 jobtracker 任务,而 slave 节点用于运行 datanode 和 tasktracker 任务。可以通过复制和粘贴虚拟机节点来轻松地创建多个虚拟机节点。 hosts 文件配置 hosts...
然后,需要编辑 core-site.xml 文件,添加一个 hadoop.tmp.dir 变量,以便指定 Hadoop 的临时目录。最后,需要编辑 mapred-site.xml 文件,配置好 MapReduce 的相关参数。 三、Hadoop 配置 在安装完 Hadoop 之后,...
Hadoop安装需要配置NameNode和DataNode的IP地址和主机名,添加Hadoop用户组和用户,并配置SSH连接。 6. NameNode配置 NameNode需要配置IP地址、主机名和SSH连接。NameNode作为主服务器,管理文件系统的命名空间和...
Salve节点包括DataNode和TaskTracker,负责存储和处理数据,执行任务和返回结果。 环境说明: * 集群中包括 4 个节点:1 个 Master,3 个 Salve,节点之间局域网连接,可以相互ping 通。 * 节点 IP 地址分布: + ...
在本例中,Namenode和Jobtracker部署在hadoop1上,hadoop2和hadoop3作为Datanode和Tasktracker。这种配置允许分散任务执行和数据存储,提高系统的可用性和容错性。 4. **目录结构** Hadoop的部署目录结构需要在...
Hadoop核心守护程序由NameNode/DataNode和JobTracker/TaskTracker这几个角色构成。Hadoop的DFS需要确立NameNode与DataNode角色,一般NameNode会部署到一台单独的服务器上而不与DataNode共同一机器。另外Map/Reduce...
6. 启动Hadoop服务,包括DataNode、NameNode、TaskTracker和JobTracker。 7. 测试集群功能,如上传文件到HDFS,运行MapReduce示例程序。 在集群环境中,还需要确保防火墙设置允许Hadoop相关端口通信,如NameNode的...
它包含了运行Hadoop守护进程(如Namenode、Datanode和TaskTracker)所需的特定于平台的函数实现,这些函数通常涉及到操作系统级别的操作,如文件系统操作、网络通信和进程管理。`hadoop.dll`确保Hadoop可以在Windows...
在Hadoop中,客户端(Client)负责提交任务、读写数据,而服务器端则包括NameNode、DataNode和TaskTracker等组件,它们处理客户端请求,管理数据存储和任务调度。 二、HDFS通信 1. 客户端与NameNode交互: 当...
6. 启动Hadoop服务:依次启动DataNode、NameNode、TaskTracker和JobTracker等服务,确保所有节点正常运行。 7. 验证安装:通过上传文件到HDFS并运行简单的MapReduce作业来检查集群是否正确配置和运行。 在完成以上...
同时,你可能还需要开启DataNode和TaskTracker,以提供数据存储和任务执行能力。 5. **验证运行**:通过浏览器访问`http://localhost:50070`和`http://localhost:8088`来检查HDFS和YARN的Web界面,确认Hadoop已经...
然后,通过`bin/start-all.sh`启动所有的Hadoop进程,包括Namenode、DataNode、JobTracker和TaskTracker。 请注意,Hadoop的启动可能需要一些时间,启动后可以通过访问Web UI(Namenode的UI通常在50070端口,...
3. **配置Hadoop环境变量**:编辑`/etc/profile`文件,添加Hadoop环境变量。 4. **配置Hadoop核心文件**:编辑`core-site.xml`、`hdfs-site.xml`、`mapred-site.xml`等配置文件,设置必要的参数。 5. **格式化HDFS**...
【大数据与云计算培训学习资料 Hadoop集群 细细品味Hadoop_第5期_Hadoop安装配置 共44页.pdf】 Hadoop是一个开源的分布式计算框架,由Apache软件基金会维护,核心组件包括Hadoop分布式文件系统(HDFS)和MapReduce...