hbase中的使用completebulkload导入数据

completebulkload(十分重要,在实际开发中一般都是使用这样的方式来加载数据到表中):
file(csv)->hfile->load:这种方式是直接将file文件转换成hfile文件,然后直接load到hbase中,因为自己加载数据到hbase中的时候,需要经过HLog->MemStore->Store->StoreFile->Hfile->load,相比使用completebulkload的方式来说,使用传统的方式来加载的话,十分消耗集群的资源。

export HBASE_HOME=/usr/local/base
export HADOOP_HOME=/usr/local/hadoop
HADOOP_CLASSPATH=' H B A S E H O M E / b i n / h b a s e c l a s s p a t h {HBASE_HOME}/bin/hbase classpath' HADOOP_HOME/bin/yarn jar $HBASW_HOME/lib/hbase-server-1.3.1.jar

命令行输入:export HBASE_HOME=/usr/local/hbase
export HADOOP_HOME=/usr/local/hadoop
HADOOP_CLASSPATH=’ H B A S E H O M E / b i n / h b a s e m a p r e d c p : {HBASE_HOME}/bin/hbase mapredcp': {HBASE_HOME}/conf
${HADOOP_HOME}/bin/yarn jar
${HBASE_HOME}/lib/hbase-server-1.3.1.jar importtsv

就能看到提示:

在这里插入图片描述

将hdfs中的数据生成格式为hfile的文件,并且存储到 hdfs://mini4:9000/data/out 目录下面(前提条件是表必须创建好,第一个hdfs是转为hfile文件格式后存储的目录,第二个是原数据的目录)
export HBASE_HOME=/usr/local/hbase
export HADOOP_HOME=/usr/local/hadoop
HADOOP_CLASSPATH=’ H B A S E H O M E / b i n / h b a s e m a p r e d c p : {HBASE_HOME}/bin/hbase mapredcp': {HBASE_HOME}/conf
${HADOOP_HOME}/bin/yarn jar
${HBASE_HOME}/lib/hbase-server-1.3.1.jar importtsv
-Dimporttsv.columns=HBASE_ROW_KEY,
info:name,info:sex
-Dimporttsv.bulk.output=hdfs://mini4:9000/data/out
student1
hdfs://mini4:9000/data/student.tsv

(执行下面命令后,会自动将上面的hfile文件加载到hbase对应的hdfs路径中)
将hdfs://mini4:9000/data/out目录下面的数据存入到hbase中,
export HBASE_HOME=/usr/local/hbase
export HADOOP_HOME=/usr/local/hadoop
HADOOP_CLASSPATH=’ H B A S E H O M E / b i n / h b a s e m a p r e d c p : {HBASE_HOME}/bin/hbase mapredcp': {HBASE_HOME}/conf
${HADOOP_HOME}/bin/yarn jar
${HBASE_HOME}/lib/hbase-server-1.3.1.jar
completebulkload
hdfs://mini4:9000/data/out
student1
成功后的截图

在这里插入图片描述

通过自己书写代码也可以实现。

猜你喜欢

转载自blog.csdn.net/qq_34896163/article/details/84537134