智能停车诱导系统--大数据部分--HBase数据导入(一)

    xiaoxiao2026-05-24  6

       把数据导入hbase这块当时花了我好大精力,试了四种方法都不成功,差点就用shell一个个生敲进去了。好在这段日子也找到了一些方法,下面就主要讲两种批量导入的方法吧:                  (1)ImportTsv                  这是Hbase提供的一个命令行工具,可以将存储在HDFS上的自定义分隔符(默认\t)的数据文件,通过一条命令方便的导入到HBase表中,对于大数据量导入非常实用,其中包含两种方式将数据导入到HBase表中:                  第一种是使用TableOutputformat在reduce中插入数据。          第二种是先生成HFile格式的文件,再执行一个叫做CompleteBulkLoad的命令,将文件move到HBase表空间目录下,同时提供给client查询。                  当时由于时间紧迫,用了第一种比较简单的。                  1.先把需要导入的数据文件(把后缀改成.cvs)上传到HDFS(说明一下,我在HDFS上创建了一个hadoop用户,然后创建了一个input文件夹,所以HDFS上的实际上传路径是/user/hadoop/input,这里由于我是在hadoop用户下上传的,默认到input)                  hdfs dfs -put /usr/local/hadoop/data_1/park1.cvs input                  查看一下                  hdfs dfs -ls input                                  可以看到HDFS中已经有了park1.cvs这个文件                  2.用shell建一个停车场表--park_test                  进入shell:                 hbase shell                  建表:                 create 'park_test','info'                  查看是否成功:                 list                  3.用importtsv向park_test表中导入数据(HDFS上的park1.cvs)          使用importtsv格式如下:          hadoop jar hbase核心jar包位置          importtsv(主类)          指定RowKey及列          指定分隔符(可选)          HBase上表名 HDFS源文件路径                  输入命令:bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:lat,info:lon,info:type,info:price_1,info:price_2,info:price_3   park_test /user/hadoop/input/park1.cvs    是不是感觉要方,没办法,方法简单就得多动手                  这个工具自动生成了导入hbase的MapReduce,所以可以看到黑框中有MR的运行过程:                  来scan一下停车场表看是不是真的成功了:                  scan 'park_test'                                  可以看到已经成功导入了,下一篇讲MapReduce批量导入。
    转载请注明原文地址: https://ju.6miu.com/read-1310019.html
    最新回复(0)