小米科技的Hadoop与HBase实践探索

需积分: 0 0 下载量 148 浏览量 更新于2024-07-26 收藏 239KB PDF 举报
“2013年中国数据库大会-04-小米hadoop/hbase微实践”是一场关于数据库技术的专业会议,重点关注大数据应用、数据架构、数据管理和传统数据库软件等领域。小米科技的软件工程师谢良在会议上分享了小米公司在Hadoop和HBase上的实践和经验。 在本次演讲中,谢良首先介绍了选型Hadoop和HBase的依据。小米可能基于Facebook和其他国内领先企业的成功实践,如阿里巴巴,来决定采用这些技术,因为它们在处理大规模数据和提供高可用性方面表现出色。 接着,他讨论了Hadoop HDFS(Hadoop分布式文件系统)层面的一些关键问题和改进。例如,HDFS-744引入了对hsync的支持,以确保数据的安全性。此外,虽然Facebook的AvatarNode方案提供了NameNode的高可用性,但小米选择了等待Hadoop官方的HA框架,如HDFS-1623、HDFS-3042和HDFS-3077,这些改进提供了自动故障转移功能。他还提到了HDFS在提高读写性能和处理磁盘故障方面的改进,如HDFS-2246、HDFS-895、HDFS-1907和HDFS-457。 在HBase层面,谢良提到同行写入的原子性(HBASE-285)是重要的特性,确保了数据一致性。这在小米的HBase研发工作中扮演了关键角色,尤其是在处理大量实时数据和保持服务稳定性时。 此外,谢良还分享了集群检查清单,这是确保Hadoop和HBase集群健康运行的关键步骤。这可能包括硬件监控、网络稳定性检查、数据分布均衡、性能调优等多个方面。他还讨论了几个具体的案例解析,揭示了如何解决实际遇到的问题,并提出了对HBase的一系列微改进点,这些改进可能涉及代码优化、错误修复或新功能添加。同时,他也强调了与社区的紧密互动,将小米的实践经验回馈给开源社区,共同推动技术的发展。 这次会议揭示了小米在大数据处理领域的实践,尤其是如何利用Hadoop和HBase来应对挑战,以及在技术选型、系统优化和故障处理等方面的策略。这些内容对于理解大数据环境下的数据库架构和管理具有很高的参考价值。

Warning: No configuration directory set! Use --conf <dir> to override. Info: Including Hadoop libraries found via (/opt/hadoop-3.1.2/bin/hadoop) for HDFS access Info: Including HBASE libraries found via (/opt/hbase-2.2.6/bin/hbase) for HBASE access 错误: 找不到或无法加载主类 org.apache.flume.tools.GetJavaProperty Info: Including Hive libraries found via (/opt/hive-3.1.2) for Hive access + exec /opt/jdk1.8.0_351/bin/java -Xmx20m -cp '/opt/flume-1.9.0/lib/*:/opt/hadoop-3.1.2/etc/hadoop:/opt/hadoop-3.1.2/share/hadoop/common/lib/*:/opt/hadoop-3.1.2/share/hadoop/common/*:/opt/hadoop-3.1.2/share/hadoop/hdfs:/opt/hadoop-3.1.2/share/hadoop/hdfs/lib/*:/opt/hadoop-3.1.2/share/hadoop/hdfs/*:/opt/hadoop-3.1.2/share/hadoop/mapreduce/lib/*:/opt/hadoop-3.1.2/share/hadoop/mapreduce/*:/opt/hadoop-3.1.2/share/hadoop/yarn:/opt/hadoop-3.1.2/share/hadoop/yarn/lib/*:/opt/hadoop-3.1.2/share/hadoop/yarn/*:/opt/hbase-2.2.6/conf:/opt/jdk1.8.0_351//lib/tools.jar:/opt/hbase-2.2.6:/opt/hbase-2.2.6/lib/shaded-clients/hbase-shaded-client-byo-hadoop-2.2.6.jar:/opt/hbase-2.2.6/lib/client-facing-thirdparty/audience-annotations-0.5.0.jar:/opt/hbase-2.2.6/lib/client-facing-thirdparty/commons-logging-1.2.jar:/opt/hbase-2.2.6/lib/client-facing-thirdparty/findbugs-annotations-1.3.9-1.jar:/opt/hbase-2.2.6/lib/client-facing-thirdparty/htrace-core4-4.2.0-incubating.jar:/opt/hbase-2.2.6/lib/client-facing-thirdparty/log4j-1.2.17.jar:/opt/hbase-2.2.6/lib/client-facing-thirdparty/slf4j-api-1.7.25.jar:/opt/hadoop-3.1.2/etc/hadoop:/opt/hadoop-3.1.2/share/hadoop/common/lib/*:/opt/hadoop-3.1.2/share/hadoop/common/*:/opt/hadoop-3.1.2/share/hadoop/hdfs:/opt/hadoop-3.1.2/share/hadoop/hdfs/lib/*:/opt/hadoop-3.1.2/share/hadoop/hdfs/*:/opt/hadoop-3.1.2/share/hadoop/mapreduce/lib/*:/opt/hadoop-3.1.2/share/hadoop/mapreduce/*:/opt/hadoop-3.1.2/share/hadoop/yarn:/opt/hadoop-3.1.2/share/hadoop/yarn/lib/*:/opt/hadoop-3.1.2/share/hadoop/yarn/*:/opt/hadoop-3.1.2/etc/hadoop:/opt/hbase-2.2.6/conf:/opt/hive-3.1.2/lib/*' -Djava.library.path=:/opt/hadoop-3.1.2/lib/native org.apache.flume.node.Application --name a1 --conf/opt/flume-1.9.0/conf --conf-file/opt/flume-1.9.0/conf/dhfsspool.conf-Dflume.root.logger=DEBUG,consol SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/flume-1.9.0/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/hadoop-3.1.2/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/hive-3.1.2/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 2023-06-08 17:26:46,403 ERROR node.Application: A fatal error occurred while running. Exception follows. org.apache.commons.cli.UnrecognizedOptionException: Unrecognized option: --conf/opt/flume-1.9.0/conf at org.apache.commons.cli.Parser.processOption(Parser.java:363) at org.apache.commons.cli.Parser.parse(Parser.java:199) at org.apache.commons.cli.Parser.parse(Parser.java:85) at org.apache.flume.node.Application.main(Application.java:287)

2023-06-09 上传