返回顶部
首页 > 资讯 > 后端开发 > Python >Hadoop配置机架感知(python脚
  • 157
分享到

Hadoop配置机架感知(python脚

机架Hadooppython 2023-01-31 07:01:32 157人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

昨天QQ群里提了一个hadoop运行效率分配的问题,总结一下,写个文章。集群使用hadoop-1.0.3有些hadoop集群在运行的时候,不完全是绝对平均的分配,不过需要尽可能平均的分配任务,避免某一台或者某几台服务器任务过重,其他服务器无

昨天QQ群里提了一个hadoop运行效率分配的问题,总结一下,写个文章。集群使用hadoop-1.0.3

有些hadoop集群在运行的时候,不完全是绝对平均的分配,不过需要尽可能平均的分配任务,避免某一台或者某几台服务器任务过重,其他服务器无事可做。这个,一方面是需要用到balancer,一个就是机架感知了。

通常,balancer是自动启动的。而机架感知则需要单独配置和编写脚本。不过,机架感知,不是说是感知哪个服务器坏了,是根据机架位置的拓扑结构来选取服务器进行任务的权重分配。

机架感知需要自己写一个脚本,然后放到hadoop的core-site.xml配置文件中,用namenode和jobtracker进行调用。

python代码摘自竹叶青的博客

#!/usr/bin/Python
#-*-coding:UTF-8 -*-
import sys

rack = {"hadoop-node-31":"rack1",
                                "hadoop-node-32":"rack1",
                                "hadoop-node-33":"rack1",
                                "hadoop-node-34":"rack1",
                                "hadoop-node-49":"rack2",
                                "hadoop-node-50":"rack2",
                                "hadoop-node-51":"rack2",
                                "hadoop-node-52":"rack2",
                                "hadoop-node-53":"rack2",
                                "hadoop-node-54":"rack2",
                                "192.168.1.31":"rack1",
                                "192.168.1.32":"rack1",
                                "192.168.1.33":"rack1",
                                "192.168.1.34":"rack1",
                                "192.168.1.49":"rack2",
                                "192.168.1.50":"rack2",
                                "192.168.1.51":"rack2",
                                "192.168.1.52":"rack2",
                                "192.168.1.53":"rack2",
                                "192.168.1.54":"rack2",
                                }

if __name__=="__main__":
        print "/" + rack.get(sys.argv[1],"rack0")

按照老赵的博客,由于hadoop没有明确的说明机架感知是感知IP还是感知主机名,所以就都写上了。然后将脚本赋予可执行权限chmod +x RackAware.py,并放到bin/目录下。

然后打开conf/core-site.html
放入一下代码

    <property>
        <name>topology.script.file.name</name>
        <value>/opt/modules/hadoop/hadoop-1.0.3/bin/RackAware.py</value>
<!--机架感知脚本路径-->
    </property>
    <property>
        <name>topology.script.number.args</name>
        <value>20</value>
<!--机架服务器数量,由于我写了20个,所以这里写20-->
    </property>


然后重启hadoop的namenode和jobtracker,可以在logs里看下namenode和jobtracker的日志,看到机架感知功能已经启用了。

namenode日志

2012-06-08 14:42:19,174 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.reGISterDatanode: node registration from 192.168.1.49:50010 storage DS-1155827498-192.168.1.49-50010-1338289368956
2012-06-08 14:42:19,204 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack2/192.168.1.49:50010
2012-06-08 14:42:19,205 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.registerDatanode: node registration from 192.168.1.53:50010 storage DS-1773813988-192.168.1.53-50010-1338289405131
2012-06-08 14:42:19,226 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack2/192.168.1.53:50010
2012-06-08 14:42:19,226 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.registerDatanode: node registration from 192.168.1.34:50010 storage DS-2024494948-127.0.0.1-50010-1338289438983
2012-06-08 14:42:19,242 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack1/192.168.1.34:50010
2012-06-08 14:42:19,242 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.registerDatanode: node registration from 192.168.1.54:50010 storage DS-767528606-192.168.1.54-50010-1338289412267

......


2012-06-08 14:42:49,492 INFO org.apache.hadoop.hdfs.StateChange: STATE* Network topology has 2 racks and 10 datanodes
2012-06-08 14:42:49,492 INFO org.apache.hadoop.hdfs.StateChange: STATE* UnderReplicatedBlocks has 0 blocks
2012-06-08 14:42:49,642 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: ReplicateQueue QueueProcessingStatistics: First cycle completed 0 blocks in 0 msec
2012-06-08 14:42:49,642 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: ReplicateQueue QueueProcessingStatistics: Queue flush completed 0 blocks in 0 msec processing time, 0 msec clock time, 1 cycles


jobtracker 日志

2012-06-08 14:50:42,728 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack2/hadoop-node-52
2012-06-08 14:50:42,731 INFO org.apache.hadoop.mapred.JobTracker: Adding tracker tracker_hadoop-node-52:localhost.localdomain/127.0.0.1:33999 to host hadoop-node-52
2012-06-08 14:50:42,753 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack1/hadoop-node-34
2012-06-08 14:50:42,754 INFO org.apache.hadoop.mapred.JobTracker: Adding tracker tracker_hadoop-node-34:localhost.localdomain/127.0.0.1:37025 to host hadoop-node-34
2012-06-08 14:50:42,773 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /rack2/hadoop-node-51


--结束END--

本文标题: Hadoop配置机架感知(python脚

本文链接: https://lsjlt.com/news/191485.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Hadoop配置机架感知(python脚
    昨天QQ群里提了一个hadoop运行效率分配的问题,总结一下,写个文章。集群使用hadoop-1.0.3有些hadoop集群在运行的时候,不完全是绝对平均的分配,不过需要尽可能平均的分配任务,避免某一台或者某几台服务器任务过重,其他服务器无...
    99+
    2023-01-31
    机架 Hadoop python
  • hadoop机架感知怎么配置
    本篇内容主要讲解“hadoop机架感知怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“hadoop机架感知怎么配置”吧!背景Hadoop在设计时考虑到数据的安全与高效,数据文件默认在HDF...
    99+
    2023-06-03
  • HDFS机架感知
    通常大型 Hadoop 集群是以机架的形式来组织的,同一个机架上的不同节点间的网络状况比不同机架之间的更为理想,NameNode 设法将数据块副本保存在不同的机架上以提高容错性。 Hadoo...
    99+
    2018-07-20
    HDFS机架感知
  • Hadoop机架怎么配置
    本篇内容介绍了“Hadoop机架怎么配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!背景Hadoop在设计时考虑到数据的安全与高效,数据文...
    99+
    2023-06-02
  • 1、大数据 Hadoop配置和单机Hadoop系统配置
    大数据 Hadoop配置和单机Hadoop系统配置 #查看服务器ip ip add #设置主机名称 hostnamectl set-hostname master bash #查看 hostname #绑定ip...
    99+
    2015-09-23
    1 大数据 Hadoop配置和单机Hadoop系统配置
  • HDFS中机架感知策略的示例分析
    这篇文章将为大家详细讲解有关HDFS中机架感知策略的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通常来说大型的Hadoop集群是以机架的形式来组织的他们分布在不同的机架上面,同一个机架节点往往通...
    99+
    2023-06-02
  • 1、环境搭建-大数据 Hadoop配置和单机Hadoop系统配置
    大数据 Hadoop配置和单机Hadoop系统配置 #查看服务器ip ip add #设置主机名称 hostnamectl set-hostname master bash #查看 hostname #绑定ip...
    99+
    2014-11-18
    1 环境搭建-大数据 Hadoop配置和单机Hadoop系统配置
  • vue脚手架配置es6转es5
    随着前端技术的快速发展,ES6已经成为了前端开发的主流语言之一。然而,在实际开发中,我们仍然需要考虑兼容性问题,因为不同的浏览器对ES6的支持程度存在差异。为了解决这个问题,我们需要将ES6代码转换为ES5代码。本文将会介绍如何在Vue项目...
    99+
    2023-05-24
  • Python机器学习多层感知机原理解析
    目录隐藏层从线性到非线性激活函数ReLU函数sigmoid函数tanh函数隐藏层 我们在前面描述了仿射变换,它是一个带有偏置项的线性变换。首先,回想下之前下图中所示的softmax回...
    99+
    2024-04-02
  • Hadoop中怎么配置HBase单机环境
    Hadoop中怎么配置HBase单机环境,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  Hadoop HBase 单机环境怎么配置  在...
    99+
    2024-04-02
  • [hadoop全分布部署]虚拟机Hadoop集群配置/etc/hosts、配置无密码登录(SSH)
    👨‍🎓👨‍🎓博主:发量不足 个人简介:耐心,自信来源于你强大的思想和知识基础!! 📑📑本期更新内容:虚拟机Hadoop集群配置/etc/host...
    99+
    2023-09-07
    linux 服务器 运维
  • 虚拟机怎么配置hadoop环境变量
    在配置Hadoop环境变量之前,首先需要安装并配置好虚拟机的操作系统。以下是配置Hadoop环境变量的步骤: 打开终端,编辑用户...
    99+
    2024-04-09
    hadoop
  • vue-cli3脚手架如何配置使用
    这篇文章将为大家详细讲解有关vue-cli3脚手架如何配置使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Vue CLI 是一个基于 Vue.js 进行快速开发的完整系...
    99+
    2024-04-02
  • react脚手架配置代理的实现
    目录方法一方法二方法一 在package.json 中追加如下配置 "proxy":"http://localhost:5000" 说明: 优点: 配置简单,前端请求资源时可以不加...
    99+
    2023-02-24
    react脚手架 react脚手架代理
  • vue脚手架配置预渲染及prerender-spa-plugin配置方式
    目录脚手架配置预渲染及prerender-spa-plugin配置脚手架2.0:(自己的是2.0)脚手架3.0 (未验证,应该行)记录vue预渲染prerender-spa-plug...
    99+
    2024-04-02
  • 图文详解感知机算法原理及Python实现
    目录写在前面1.什么是线性模型2.感知机概述3.手推感知机原理4.Python实现4.1 创建感知机类4.2 更新权重与偏置4.3 判断误分类点4.4 训练感知机4.5 动图可视化5...
    99+
    2024-04-02
  • 如何基于脚手架配置Angular代理
    本篇内容介绍了“如何基于脚手架配置Angular代理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Angu...
    99+
    2024-04-02
  • react脚手架配置代理如何实现
    这篇文章主要介绍“react脚手架配置代理如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react脚手架配置代理如何实现”文章能帮助大家解决问题。方法一在package.json 中追加如下...
    99+
    2023-07-05
  • Django框架基础知识01-配置环境
    Django框架   Django是个怎样的东西呢   Web应用框架----Django     http服务器:用来接受用户请求,并将请求转发给web应用框架进行处理。   Web应用框架处理完以后再发送给http服务器,http服务...
    99+
    2023-01-31
    基础知识 框架 环境
  • react脚手架配置路径别名的方法
    文章写时react版本16.13.1 1输入命令 npm run eject 在项目根目录下生成config目录 2在confilg下打开webpack.config.js文件找...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作