把Linux文件系统中的数据put到Hbase数据库中

1 将linux中的数据表上传到HDFS文件系统中;

[ambow@hadoopNode1 data]$ hadoop dfs -put  music1.txt music2.txt music3.txt  /user/ambow/input/music

2 .Hbase与Hadoop集成:
1).把hbase-site.xml配置文件复制到$HADOOP_HOME/etc/hadoop目录下

​ 2).编辑$HADOOP_HOME/etc/hadoop/hadoop-env.sh 添加最后一行:

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/ambow/app/hbase-1.3.2/lib/*

3). 把修改后的hbase-site.xml和hadoop-env.sh 分发至各节点

集成测试 统计一个表的行数:

hadoop jar $HBASE_HOME/lib/hbase-server-1.3.2.jar rowcounter  表名

如果能得到表的行数,证名集成环境成功
3 将HDFS中的数据表传到Hbase中

批量导入: 思想是把原始数据文件生成HBase的HFile文件,,再把HFile文年加载到HBase中

importtsv 生成HBase中的Hstore的物理文件---->HFile文件

语法格式:

hadoop jar $HBASE_HOME/lib/hbase-server-1.3.2.jar  importtsv
-Dimporttsv.bulk.output=指定输出的路径于用存放HFile文件
-Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:singer,info:gender,info:ryghme,info:terminal 
-Dcreate.table=yes
表名   输入的HDFS路径

注:-Dcreate.table=yes 表示自动创建表

​ -Dimporttsv.bulk.output=指定输出的路径于用存放HFile文件 该目录自动生成

1)生成HFIle文件

hadoop jar $HBASE_HOME/lib/hbase-server-1.3.2.jar  importtsv -Dimporttsv.bulk.output=/user/ambow/temp4 -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:singer,info:gender,info:ryghme,info:terminal -Dcreate.table=yes music4  /user/ambow/input/music

2)completedulkload 把生成HFile文件加载到HBase 中

语法格式:

hadoop jar  $HBASE_HOME/lib/hbase-server-1.3.2.jar  completebulkload 加载的HDFS路径 表名
hadoop jar  $HBASE_HOME/lib/hbase-server-1.3.2.jar  completebulkload /user/ambow/temp4 music4
发布了133 篇原创文章 · 获赞 53 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43599377/article/details/103616717