hadoop进阶----hadoop经验(一)-----生产环境hadoop部署在超大内存服务器的虚拟机集群上vs几个内存较小的物理机
生产环境 hadoop部署在超大内存服务器的虚拟机集群上 好 还是 几个内存较小的物理机上好?
虚拟机集群优点
- 资源隔离。有些集群是专用的,比如给你三台设备只跑一个spark,那还算Ok。但在很多规模很小的团体中,在有限的硬件设备的情况下,又要跑spark,比如又要跑zookeeper、kafka等等,这个时候,我们希望它们之间是不会互相干扰的。假设你spark的配置没做好,内存占用太大了,你总不希望把你好端端zookeeper给影响得挂掉。那么此时虚拟机或者容器技术可以对物理资源进行隔离,防止这种情况出现。
- 快速部署,简化配置。无论对于新手还是老手来说,干这行非常痛苦的一点是各种框架的配置和部署,大量重复工作,又不怎么需要动脑子。所以你当然希望有一种方式,直接把你已经配置好的环境保存下来,作为一个镜像,然后当集群要扩展了,比如又增加了一个物理设备,你希望在上面虚拟化成三台虚拟机,两台运行spark,一台运行zookeeper,那简单了,把spark的镜像copy两份,zookeeper的镜像copy一份,网络配置好,开起来,一切都是那么潇洒...
- 调度单元。更高级的应用中,数据平台向整个团体或者公众提供服务。用户A希望有资源运行自己的应用,用户B也希望运行自己的应用,无论从安全角度还是管理角度上来说你都不希望他们之间是混杂的,这时候虚拟机也是一种解决方案。如果做一个高级点的调度器,当感知到spark工作压力非常大的时候启动一个zk镜像,反之减少一个镜像……这些功能在有虚拟机进行隔离时都会简单很多很多。
1. 性能的隔离是有必要的,不然就会相互干扰,单个物理节点下用多线(进)程的方式的确从直观上性能是比虚拟化后要好,但是虚拟机带来的好处就是,一个服务器上可以跑多个集群,这些虚拟机可以分属于不同的集群。
另外一点,Hadoop部署到虚拟机集群中也已经有很多很多成熟的研究成功和工业产品,至于性能,据前Spark团队leader明风透露,阿里巴巴内部曾经试验过,大概性能损耗10%,这在大规模分布式系统中,和数据中心资源利用率比起来,应该不足为道。
虚拟机集群缺点
性能问题
spark的关键在内存
虚拟机跑hadoop和spark当然能跑,但是性能会收到影响,毕竟单台机子是存在io瓶颈的,多台物理机io则可以分散和扩展。
经验之谈,10台pc远比买一台hp的2U跑虚拟机让Hadoop来得畅快。
安全问题
更重要不要做虚拟化的原因是你的很多hadoop虚拟机很有可能其实是跑在一台物理服务器上的,那这台物理服务器宕机就会导致整个集群不可用。
另外,虚拟化也可能使用的是共享存储,那么这样会让hadoop内建的冗余机制变得毫无意义。
第三,虚拟化里,你无法划分正确的机架来让hadoop合理的分布数据块存放位置。
最后,虚拟化的网络是软件定义的,底层发生问题你很难对hadoop定位和排错。
这些才是不要用虚拟化最重要的原因,排除这些才谈到性能问题。
当然也有人说一台服务器只做一个虚拟机不就好了吗?可问题是,这样做的话为什么不直接装hadoop,非要为了部署方便而白白浪费掉30%的性能呢。每三台服务器就会浪费掉一台物理机的计算能力,代价太大了。
hadoop进阶----hadoop经验(一)-----生产环境hadoop部署在超大内存服务器的虚拟机集群上vs几个内存较小的物理机的更多相关文章
- 在Hadoop集群上的HBase配置
之前,我们已经在hadoop集群上配置了Hive,今天我们来配置下Hbase. 一.准备工作 1.ZooKeeper下载地址:http://archive.apache.org/dist/zookee ...
- 用python + hadoop streaming 编写分布式程序(二) -- 在集群上运行与监控
写在前面 相关随笔: Hadoop-1.0.4集群搭建笔记 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试 用python + hado ...
- hadoop 把mapreduce任务从本地提交到hadoop集群上运行
MapReduce任务有三种运行方式: 1.windows(linux)本地调试运行,需要本地hadoop环境支持 2.本地编译成jar包,手动发送到hadoop集群上用hadoop jar或者yar ...
- MapReduce编程入门实例之WordCount:分别在Eclipse和Hadoop集群上运行
上一篇博文如何在Eclipse下搭建Hadoop开发环境,今天给大家介绍一下如何分别分别在Eclipse和Hadoop集群上运行我们的MapReduce程序! 1. 在Eclipse环境下运行MapR ...
- Hadoop集群上搭建Ranger
There are two types of people in the world. I hate both of them. Hadoop集群上搭建Ranger 在搭建Ranger工程之前,需要完 ...
- Hadoop集群上使用JNI,调用资源文件
hadoop是基于java的数据计算平台,引入第三方库,例如C语言实现的开发包将会大大增强数据分析的效率和能力. 通常在是用一些工具的时候都要用到一些配置文件.资源文件等.接下来,借一个例子来说明ha ...
- [转载] 把Nutch爬虫部署到Hadoop集群上
http://f.dataguru.cn/thread-240156-1-1.html 软件版本:Nutch 1.7, Hadoop 1.2.1, CentOS 6.5, JDK 1.7 前面的3篇文 ...
- 把Nutch爬虫部署到Hadoop集群上
原文地址:http://cn.soulmachine.me/blog/20140204/ 把Nutch爬虫部署到Hadoop集群上 Feb 4th, 2014 | Comments 软件版本:Nutc ...
- 项目进阶 之 集群环境搭建(三)多管理节点MySQL集群
上次的博文项目进阶 之 集群环境搭建(二)MySQL集群中,我们搭建了一个基础的MySQL集群,这篇博客咱们继续讲解MySQL集群的相关内容,同时针对上一篇遗留的问题提出一个解决方案. 1.单管理节点 ...
随机推荐
- Docker--删除容器实例和镜像
一.删除容器实例 使用命令docker rm 容器ID或者容器名 1.docker ps -a查询已有的实例 [root@cxt data]# docker ps -a 2.docker rm 容器I ...
- java事物详解
一.什么是Java事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性 (iso ...
- 基于神念TGAM的脑波小车(2)
将数据处理移植到STM32上,采用串口的DMA接收模式,注意的是DMA_MODE采用Circular,DMA_BufferSize>(8*512+36=4132)(小包8个字节,每秒512个,完 ...
- 虚拟机中安装MAC OS X教程(适用所有电脑方法,特别是cpu不支持硬件虚拟化的电脑)
前言 之前写了一篇在Windows上搭建Object-C开发环境,并且写了一个HelloWorld程序.但真正开发苹果软件是在MAC OS X系统中(以下简称OSX)中.买不起MacBook,也没有O ...
- js备忘录5
函数的全解析 原文链接: http://mp.weixin.qq.com/s?src=11×tamp=1509672643&ver=491&signature=9fD ...
- 王者荣耀交流协会PSP Daily项目Postmortem结果
王者荣耀交流协会PSP Daily项目Postmortem结果 整理:王超 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? PSP D ...
- “吃神么,买神么”的第一个Sprint计划(第六天)
“吃神么,买神么”项目Sprint计划 ——5.26 星期二(第六天)立会内容与进度 摘要:logo最终出来了,,背景也出来了,可以开始将完成的部分放到同一个文件中,决定剩下的时间把昨晚的部分贴上去 ...
- Request[""]接收的值有逗号(,)
这是因为你的前台页面有连个标签的name值相等导致的.Request["name"]其实是通过name值或得标签的value值的. 所以一般情况下name值不要相等. 需要互斥的就 ...
- java异常处理及自定义异常的使用
1. 异常介绍 异常机制可以提高程序的健壮性和容错性. Throwable:Throwable是java语言所有错误或异常的超类. 有两个子类Error和Exception. 1.1 编译期异常 编译 ...
- 小学四则运算结对项目报告【GUI】
写在前面 这次的结对项目我做了很长时间,感触也很多.在这次项目中我使用了Java GUI作为和用户的交互方式,但是在上Java课的时候我对GUI和事件驱动这里并没有学的多好,可能是当时对编程还没有什么 ...