需要先澄清一个常见误区:Hadoop 本身不是数据库,而是一套分布式存储与计算框架。通常大家说的“Hadoop 数据库调优”,其实是指 Hadoop 生态中的存储与计算组件调优,主要包括:
下面按常见场景给你一套实用调优思路。
<property>
<name>dfs.blocksize</name>
<value>268435456</value> <!-- 256MB -->
</property>
ORC / Parquet + 分区Hadoop Archive (HAR)、CombineFileInputFormat<property>
<name>dfs.replication</name>
<value>3</value>
</property>
yarn.nodemanager.resource.memory-mb=64G
yarn.nodemanager.resource.cpu-vcores=16
yarn.scheduler.minimum-allocation-mb=1G
yarn.scheduler.maximum-allocation-mb=16G
CombineTextInputFormatmapreduce.job.reduces=200
mapreduce.job.jvm.numtasks=10
✅ 推荐:
STORED AS ORC
SET hive.exec.compress.output=true;
SET mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
SET hive.execution.engine=tez; -- 或 spark
PARTITIONED BY (dt STRING)
CLUSTERED BY (user_id) INTO 32 BUCKETS
SET hive.optimize.ppd=true;
hfile.block.cache.size=0.4
hbase.regionserver.global.memstore.size=0.4
你可以告诉我:
我可以直接给你针对性参数配置示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。