hbase的bulk loading代码和执行方法

本文详细介绍了HBase的bulk loading过程,包括数据生成和加载的步骤。首先,创建分区表并设置classpath环境。接着,通过MapReduce生成HFile,要求输出的key-value类型为<ImmutableBytesWritable, KeyValue>或<ImmutableBytesWritable, Put>,使用HFileOutputFormat类,并配置incremental load。最后,执行数据加载并删除临时HFile。" 81192340,1098046,方正微run card中英文术语解析,"['嵌入式开发', '硬件系统', '微处理器', '系统诊断']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

bulk loading的优缺点这里就不再赘述,在本博客的其他文章已经进行过详细的分析:

 Hbase Bulk Loading与HBase API方式分析和对比


bulk loading的过程主要分为两部分,一部分为数据生成,一部分为数据加载。

我们先来看看执行bulk loading的执行过程,然后再分析代码。下面是一个执行bulk loading的完整shell脚本:

CLASSPATH=./bulkload.jar:/etc/yarn1/conf:/etc/hdfs1/conf:/etc/hbase/conf:/usr/lib/hadoop/lib/*:/usr/lib/hadoop/.//*:/usr/lib/hadoop-hdfs/./:/usr/lib/hadoop-hdfs/lib/*:/usr/lib/hadoop-hdfs/.//*:/usr/lib/hadoop-yarn/lib/*:/usr/lib/hadoop-yarn/.//*:/usr/lib/hadoop-mapreduce/lib/*:/usr/lib/hadoop-mapreduce/.//*:/contrib/capacity-scheduler/*.jar
TABLE_NAME=CZSJ_hbase
RECORD_COUNT_FILE=/tmp/data1
RECORDS_PER_REGION=/tmp/output

echo "Start bulk load at `date`"
start=`date +%s`

echo "create hbase table=========="
hbase shell << EOF
    disable 'CZSJ_hbase'
    drop 'CZSJ_hbase'
    create 'CZSJ_hbase', 'cf', {SPLITS_FILE => 'region_start_row_info'}
EOF

jars=`ls ./lib`
for jar in $jars
do
    CLASSPATH="$CLASSPATH:./lib/$jar"
done

CLASSPATH=/usr/lib/hadoop/conf:/usr/lib/hbase/conf:$CLASSPATH
java -cp $CLASSPATH com.learn.hbasebulkload.HFileGenerator $TABLE_NAME $RECORD_COUNT_FILE $RECORDS_PER_REGION
java -cp $CLASSPATH com.learn.hbasebulkload.HFileLoader $TABLE_NAME $RECORDS_PER_REGION
hdfs dfs -rmr $RECORDS_PER_REGION

end=`date +%s`
interval=`expr $end - $start`
echo "End generating s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值