目录
操作环境说明:
CentOS6.6 eclipse开发 jdk1.8 hbase-1.2.0 hadoop-2.6.5
提醒自己【本篇文章在后续学习中需要更新,补充一些说明,初学者可能对一些命令的意义不太明白,我这里重点在于一边体会大数据初识,重点在于感受非关系型数据库HBase的运用。】
1. bulkloading 批量导入工具
1.1 环境准备
启动hadoop运算框架和hbase数据库
[hduser@node1 ~]$ ./hadoop/sbin/start-dfs.sh
[hduser@node1 ~]$ ./hadoop/sbin/start-yarn.sh
[hduser@node1 ~]$ ./hbase/bin/start-hbase.sh
1)新建文本数据 music1.txt , music2.txt
音乐播放记录样表
编号rowkey | 歌名(song) | 歌手(singer) | 歌手性别(gender) | 节奏(ryghme) | 客户端(terminal) |
1_song1_2016 | song1 | singer1 | man | slow | ios |
3_song3_2016 | song3 | singer3 | woman | quick | pc |
【提示:各列之间用制表符隔开"\"或者用Tab键隔开】
用记事本gedit命令或者vi创建以上两个txt文本文件:
[hduser@node1 ~]$ gedit ~/桌面/music1.txt
内容如下:
1_song1_2016 song1 singer1 man slow ios
2_song2_2016 song2 singer2 man slow pc
3_song3_2016 song3 singer3 woman quick pc
4_song4_2016 song4 singer4 woman quick ios
5_song5_2016 song5 singer5 man slow android
6_song6_2016 song6 singer6 man slow pc
7_song7_2016 song7 singer7 woman quick ios
8_song8_2016 song8 singer8 man slow pc
9_song9_2016 song9 singer9 woman quick pc
[hduser@node1 ~]$ gedit ~/桌面/music2.txt
10_song10_2016 song10 singer10 man slow ios
11_song11_2016 song11 singer11 man slow pc
12_song12_2016 song12 singer12 man slow pc
13_song13_2016 song13 singer13 woman quick pc
14_song14_2016 song14 singer14 woman quick ios
15_song15_2016 song15 singer15 man slow android
16_song16_2016 song16 singer16 man slow pc
17_song17_2016 song17 singer17 woman quick ios
18_song18_2016 song18 singer18 man slow pc
19_song19_2016 song19 singer19 woman quick pc
2)新建表musicrecored表(播放记录表)
列簇只有一个info
先进入hbase shell 数据操作
[hduser@node1 ~]$ ./hbase/bin/hbase shell
hbase(main):007:0> create 'musicrecored','info'
0 row(s) in 1.4380 seconds
=> Hbase::Table - musicrecored
3)新建表namelist表(歌曲播放统计表)
列簇只有一个datails
hbase(main):008:0> create 'namelist','details'
0 row(s) in 1.2530 seconds
=> Hbase::Table - namelist
4)查看表
hbase(main):009:0> list
TABLE
music1
musicrecored
namelist
3 row(s) in 0.0110 seconds
=> ["music1", "musicrecored", "namelist"]
1.2 关掉运算框架和数据库命令 将hbase集成到hadoop中(集群每一个节点都要配置,node1,node2,node3)
1)将hbase核心配置文件 hbase-site.xml 添加到hadoop主目录下/etc/hadoop/下
[hduser@node1 ~]$ cp hbase/conf/hbase-site.xml hadoop/etc/hadoop/
[hduser@node2 ~]$ cp hbase/conf/hbase-site.xml hadoop/etc/hadoop/
[hduser@node3 ~]$ cp hbase/conf/hbase-site.xml hadoop/etc/hadoop/
2)将hbase的库(hbase主目录下lib目录)配置到hadoop的环境(hadoop-env.sh)中(集群每一个节点都要配置,node1,node2,node3)。
node1:
[hduser@node1 ~]$ gedit hadoop/etc/hadoop/hadoop-env.sh
node2:
[hduser@node2 ~]$ vi hadoop/etc/hadoop/hadoop-env.sh
node3:
[hduser@node3 ~]$ vi hadoop/etc/hadoop/hadoop-env.sh
在配置文件中增加如下内容:
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/hduser/hbase/lib/*
3)配置完后再重新启动运算框架和数据库,利用新建的musicrecored表测试集成是否成功
两个启动命令:
[hduser@node1 ~]$ ./hadoop/sbin/start-all.sh
[hduser@node1 ~]$ ./hbase/bin/start-hbase.sh
在hbase主目录/lib/中有hbase-server***.jar 内有hbase提供的工具类rowcounter主要用于测试。
利用mapreduce统计hbase表中记录总数,命令如下:
语法:【$>hadoop jar hbase主目录/lib/hbase-server***.jar rowcounter 表名】
示例:用我上面查出来的以前的表“music1”做测试,这里面有4条数据:
[hduser@node1 ~]$ hadoop jar hbase/li