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