与普通HDFS对比,冷数据集群目的是不降低数据可靠性的前提下,减少磁盘开销。
经过facebook-hadoop版本和apache-hadoop(0.20至0.23)版本的比较,最后选型为facebook-hadoop版本。原因是apache-hadoop版本有许多缺陷,比如raidnode客户端没有实现placementmonitor,raidshell终端命令少的不忍直视(以后不好运维),bug太多等等。还有一个重要的原因考虑到facebook-hadoop版本facebook已经在成熟的运用之中。
有关radi技术可参考以下两篇文章:
http://jiangbo.me/blog/2012/12/21/hdfs-raid/
http://jiangbo.me/blog/2013/06/05/setup-hdfs-raid/
facebook-hadoop源码下载:https://github.com/facebook/hadoop-20
目前状况:
经过一个多月的研究和debug,facebook-raid冷数据集群已经搭建成功。不过在这过程中,遇到各种问题:
1. 编译问题
2. 网上讲的raid.xml配置和源代码的实现不一样
3. BlockMissingException类路径不一致
4. raidnode客户端fs.hdfs.impl要配置成org.apache.hadoop.hdfs.DistributedFileSystem
<property>
<name>fs.hdfs.impl</name>
<value>org.apache.hadoop.hdfs.DistributedFileSystem</value>
<description></description>
</property>
5. native包系统不兼容问题
6. 数据块分布问题,源码的实现是将数据块分布在不同机架上,需要将这个限制去掉,只保留分布到不同机器的原则就行。
总之是发现各种坑,不过源码的逻辑是比较清晰的。
目前成果:
实现冷数据facebook-raid集群的搭建,raid策略,每个stripe组4个数据块,校验块2个。相对于原来的hdfs集群3个副本的备份配置(总共占了300%的空间),facebook-raid总共只需要占用150%空间就能达到同样的效果,同样允许2台机器挂掉。
下图是冷数据集群管理, 数据上下线功能及任务进程追踪功能
相关推荐
**Elasticsearch (ES) 迁移工具详解** 在大数据时代,Elasticsearch作为一个流行的分布式搜索引擎和数据分析...正确理解和使用这个工具,可以帮助我们更好地管理和维护Elasticsearch集群,保证数据的可用性和一致性。
集群系统的设计和实现需要考虑到多个方面,包括服务器的组织结构、主、从服务器的设计方式、负载均衡和可靠性等。只有通过对这些方面的详细考虑和设计,才能构建一个高性能、高可用性的服务器集群系统。 在实际应用...
基于moduo实现的集群聊天服务器和客户端源码,使用mysql数据库存储相关数据。采用nginx实现负载均衡,结合redis发布-订阅模式来实现在不同服务器上客户端进行通信。 基于moduo实现的集群聊天服务器和客户端源码,...
Aapche+Tomcat实现服务数据集群是指通过Apache和Tomcat服务器来实现服务数据集群的方法。这种方法可以解决Tomcat在线访问量超过20-30人的问题,使得服务器可以承载更多的访问请求。 Apache是开源的Web服务器软件,...
1. **镜像服务器双机**:是最简单的配置,包含两台服务器,通过镜像卡或软件实现数据同步。虽然成本较低,但可能影响服务器性能,且可能出现数据不同步问题。 2. **双机与磁盘阵列柜互联**:增加磁盘阵列柜,提供更...
基于muduo库实现的集群聊天服务器,通过mysql存储数据,通过nginx实现tcp负载均衡,通过redis实现集群内服务器间的消息订阅发布。 基于muduo库实现的集群聊天服务器,通过mysql存储数据,通过nginx实现tcp负载均衡,...
在Hadoop集群上,数据挖掘算法的实现通常涉及多个组件,如HDFS用于存储大规模数据集,MapReduce用于并行处理和生成中间结果,YARN进行资源管理和任务调度,而HBase或Hive则用于数据查询和分析。在算法的整个实现过程...
为了实现高可用性和高性能,需要将 Oracle 数据库配置为 RAC 集群模式。配置 Oracle RAC 集群数据源需要考虑多个方面,包括数据源 URL 的配置、连接池的配置、负载均衡和故障转移等。 在配置 Oracle RAC 集群数据源...
3. 日志复制:Raft算法使用日志entries来实现数据的一致性。Leader节点会将日志entries发送给Follower节点,以确保所有节点的日志状态保持一致。 4. 故障恢复:Raft算法提供了自动故障恢复机制。当Leader节点出现...
在sync模式下,RedisShake使用SYNC或PSYNC命令实现源端Redis到目标端Redis的数据同步,同时支持全量和增量同步。 迁移参数的设置至关重要。例如,`source.type`定义了源Redis的类型,可以是standalone、sentinel、...
它不是将数据写入磁盘,而是缓存到内存中,从而实现快速的迭代运算和高速的交互式数据挖掘任务。这种设计特别适合于机器学习、图计算等需要大量迭代计算的场景。 对于大数据处理,Spark还提供了一个针对迭代和交互...
Linux集群系统下数据传输的研究与实现
【标题】: 多平台Kubernetes集群调研方案 【描述】: Kubernetes(简称K8s)是一种强大的开源平台,...通过调研,我们可以选择适合业务需求的Kubernetes实现方式,为多平台环境构建稳定、高效且易于管理的容器集群。
"快速实现 sr 集群之间的数据迁移(离线迁移).zip" 提供了一个针对StarRocks集群的数据迁移解决方案,让我们来深入探讨这个过程。 首先,我们要理解StarRocks是什么。StarRocks是一款高性能、分布式SQL分析数据库...
在标准架构中,多个独立的SQL Server实例分布在不同的服务器上,通过中间件实现数据同步和高可用性。中间件监控数据库中的数据变更,并即时同步到其他节点,确保数据一致性。节点的添加和移除可以在不影响服务的情况...
4. 简化备份和恢复:多个数据库服务器可以协同工作,实现数据的备份和恢复,降低操作复杂度。 Mysql数据库集群的设计 Mysql数据库集群的设计需要考虑硬件、软件、数据存储和备份策略等方面。具体来说,需要: 1. ...
在构建分布式Web应用程序时,集群部署是常见的策略,它可以提高系统的可用性和可扩展性。然而,随着集群的建立,一个问题也随之出现:如何在不同的服务器之间共享用户会话(session)。`session共享`成为了多台...