知识点
相关文章
更多最近更新
更多Hadoop集群启动机架感知
2019-03-28 13:51|来源: 网络
Hadoop集群的机架感知功能是提高hadoop集群网络性能的重要参数,配置hadoop机架感知功能的步骤如下:
由于没有找到确切的文档说明 到底是主机名还是ip地址会被传入到脚本,所以在脚本中最好兼容主机名和ip地址,如果机房架构比较复杂的话,脚本可以返回如:/dc1/rack1 类似的字符串。
更为详尽的原理及测试请参考:
1)修改core-site.xml文件,添加以下配置项:
- <property>
- <name>topology.script.file.name</name>
- <value>/opt/modules/hadoop/hadoop-0.20.203.0/Utility/RackAware.py</value>
- </property>
2)编写 RackAware.py 脚本:
- #!/usr/bin/python
- #-*-coding:UTF-8 -*-
- import sys
- rack = {"hadoopnode-176.tj":"rack1",
- "hadoopnode-178.tj":"rack1",
- "hadoopnode-179.tj":"rack1",
- "hadoopnode-180.tj":"rack1",
- "hadoopnode-186.tj":"rack2",
- "hadoopnode-187.tj":"rack2",
- "hadoopnode-188.tj":"rack2",
- "hadoopnode-190.tj":"rack2",
- "192.168.1.15":"rack1",
- "192.168.1.17":"rack1",
- "192.168.1.18":"rack1",
- "192.168.1.19":"rack1",
- "192.168.1.25":"rack2",
- "192.168.1.26":"rack2",
- "192.168.1.27":"rack2",
- "192.168.1.29":"rack2",
- }
- if __name__=="__main__":
- print "/" + rack.get(sys.argv[1],"rack0")
3)执行命令:chmod +x RackAware.py
4)重启namenode
如果配置成功,namenode启动日志中会输出:
- 2011-12-21 14:28:44,495 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack1/192.168.1.15:50010
hadoop集群网络性能优化:hadoop机架感知实现及配置
更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
相关问答
更多-
hadoop集群环境solr启动后对应的进程名称[2023-03-25]
每个节点的服务需要单独启动。 除非实现远程登录启动,如ssh登陆 ,而后启动。 -
hadoop 集群已经启动但是web上显示datanode节点没有[2021-10-22]
1、首先你要确定不用ha的时候你的hadoop集群是正常的,不然找错误的方向就偏离了 2、如果都正常,配置ha 需要zookeeper,先要看看是不是zookeeper没有配置好的问题 3、如果都正常,在hadoop安装目录执行sbin/hadoop-daemon.sh start zkfc -
hadoop配置了集群,但启动仍然是伪分布式下的启动状态[2022-08-22]
你可以输入JPS查看一下进程 一般你的master上是namenode secondarynamenode 和jobtracker三个进程 你的slaves上 有各自的datanode 和tasktracker两个进程 你看看是不是有各自进程都启动起来了 启动起来了就是分布式 如果只有一台机子有进程 那你就重新把那些配置文件再设置一下 -
如何初始化,启动及停止Hadoop集群[2022-01-03]
第一步,在Hadoop01机器上启动Zookeeper: [root@hadoop01 ~]# /root/apps/zookeeper/bin/zkServer.sh start 第二步,在Hadoop02机器上启动Zookeeper: [root@hadoop02 ~]# /root/apps/zookeeper/bin/zkServer.sh start 第三步,在Hadoop03机器上启动Zookeeper: [root@hadoop03 ~]# /root/apps/zookeeper/bin/z ... -
hadoop集群启动失败,找不到usr/hadoop/bin路径[2022-05-26]
你没有安装或者配置JAVA_HOME,请查看你的/etc/profile、hadoop/conf/hadoop-env.sh等需要配置JDK的文件。 另外一种可能是你安装配置了JDK,但是没有source /etc/profile,或者source后没有退出当前shell并重新登录来刷新JDK配置。 -
hadoop集群实际应用搭建用到的服务器哪种比较好,塔式的、机架式还是刀片的?[2021-10-03]
IBM 新出的PowerLinux 很适合应用服务器。性价比很高。可以考虑。 -
警告HDFS的路径不归默认的'hdfs'所有。 如果所有者是其他人而且这是正常的,你可以在这里更新Hue https://github.com/cloudera/hue/blob/master/desktop/conf.dist/hue.ini#L60 您应该在https://github.com/cloudera/hue/blob/master/desktop/conf.dist/hue.ini#L21输入'secret_key'的随机文本字符串,这样任何人都无法破解您的用户密码 如果您不使用Spark ...
-
在Ubuntu中启动hadoop单节点集群时遇到问题(Having trouble starting hadoop single-node cluster in Ubuntu)[2022-03-07]
检查$HADOOP_HOME/conf/hadoop-env.sh脚本的内容,对于JAVA_HOME导出行 - 看起来在那里有一个尾随引号。 作为参考,这是我看起来的版本: # The java implementation to use. Required. export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_07-i586 如果您仍然遇到问题,请将您的条目粘贴回原始问题 Check the contents of your $HADOOP_HOME/conf/hadoop- ... -
只需给他们其他子网,如rack1 192.168.1。*,rack2 192.168.2。*等等。 Hadoop会认识到这一点。 Just give them other subnets, like rack1 192.168.1.*, rack2 192.168.2.* and so on. Hadoop will recognize this.
-
从节点不在hadoop集群中启动。(Slave node not starting in hadoop cluster. Not able to understand the log file)[2022-07-29]
不得不在ec2中的安全组中添加异常。 这是有帮助的答案。 无法ping通AWS EC2实例 Had to add exception in security group in ec2. Here is the answer that helped. Cannot ping AWS EC2 instance