您的位置:首页 > 运维架构

一步一步安装hbase(完全分布式)

2016-01-08 15:19 330 查看
一步一步安装hbase(完全分布式)

--各节点分布
zk zkfc jn nn dn rm dm hm rs
node1:1  1			1 1   1 1  1  1  1
node2:1	 1			1 1   1    1  1  1
node3:1  1      1     1    1     1

文档:http://hbase.apache.org/book.html#faq

[hadoop@node1 ~]$ scp hbase-1.1.2-bin.tar.gz hadoop@node2:~
[hadoop@node1 ~]$ scp hbase-1.1.2-bin.tar.gz hadoop@node3:~
[hadoop@node2 ~]$ tar -zxvf hbase-1.1.2-bin.tar.gz

[hadoop@node1 conf]$ vi hbase-site.xml
[hadoop@node1 conf]$ vi regionservers     --类似hadoop的slaves
[hadoop@node1 conf]$ vi hbase-env.sh
[hadoop@node1 conf]$ cp -a /home/hadoop/hadoop-2.7.1/etc/hadoop/hdfs-site.xml /home/hadoop/hbase-1.1.2/conf

hmaster可以乱放,没有任何地方配置,regionserver就在配置中指定了

[hadoop@node1 conf]$ scp /home/hadoop/hbase-1.1.2/conf/* hadoop@node2:/home/hadoop/hbase-1.1.2/conf/
[hadoop@node1 conf]$ scp /home/hadoop/hbase-1.1.2/conf/* hadoop@node3:/home/hadoop/hbase-1.1.2/conf/

全面启动
--所有节点
zkServer.sh start
zkServer.sh stop

--node1
start-all.sh
stop-all.sh

start-hbase.sh
stop-hbase.sh

--启动:
首先确认你的HDFS是运行着的。你可以运行HADOOP_HOME中的 bin/start-hdfs.sh 来启动HDFS.你可以通过put命令来测试放一个文件,然后有get命令来读这个文件。通常情况下HBase是不会运行mapreduce的。所以比不需要检查这些。
如果你自己管理ZooKeeper集群,你需要确认它是运行着的。如果是HBase托管,ZoopKeeper会随HBase启动。

--停止:
在HBase彻底停止之前,Hadoop不能停.

hbase快捷键:
ctrl+退格键:删除

网页: http://node1:60010/ 
1.0版本后改为16030端口了
--监控界面 http://node1:16010/master-status http://node1:16030/rs-status
 http://node2:16010/master-status 
---------------------------------------------------------------
--附配置:
---------------------------------------------------------------

[hadoop@node1 conf]$ vi hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://odscluster/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,node3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper-3.4.6/data</value>
</property>
</configuration>

odscluster是集群名字
zookeeper的目录要和原来指定的一样
vi zoo.cfg

[hadoop@node1 conf]$ vi regionservers     --类似hadoop的slaves
node1
node2
node3

[hadoop@node1 conf]$ vi hbase-env.sh
export HBASE_MANAGES_ZK=false

默认会启动一个zk,但我们要使用前面hadoop配置的zk集群,不使用默认的
zk最好部署3,5,7这种奇数,部署越多,可靠性越高

---------------------------------------------------------------
--hbase命令测试:
---------------------------------------------------------------

[hadoop@node1 hbase-1.1.2]$ hbase shell
hbase(main):002:0> create 't_student','cf1'
hbase(main):004:0> create 't_user','cf1'
hbase(main):005:0> create 't_person','cf1'
hbase(main):006:0> list
TABLE
t_person
t_student
t_user
hbase(main):007:0> put 't_student','001','cf1:name','tom'
--insert一条数据,001是rowkey(暂时当成rownum),列族cf1的字段是name,值是tom

--查看文件: http://node1:50070/ /hbase/data/default/t_student/25aa3d2b96abe2b695347c3f0dce7700/cf1   下面没有文件

hbase(main):008:0> flush 't_student'
刷新,已经有文件

hbase(main):009:0> put 't_student','002','cf1:name','lily'
hbase(main):010:0> put 't_student','003','cf1:name','lucy'
hbase(main):011:0> flush 't_student'

hbase(main):014:0> major_compact 't_student'      --合并

hbase(main):004:0> scan 't_student'       --select语句
ROW                                        COLUMN+CELL
001                                       column=cf1:name, timestamp=1447937036538, value=tom
002                                       column=cf1:name, timestamp=1447938023777, value=lily
003                                       column=cf1:name, timestamp=1447938068002, value=lucy
3 row(s) in 0.3420 seconds

hbase(main):018:0> exit
[hadoop@node1 data]$ hbase hfile -p -f /hbase/data/default/t_student/25aa3d2b96abe2b695347c3f0dce7700/cf1/6783ea05107e4662b51e0436c6173834
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/hbase-1.1.2/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/hadoop-2.7.1/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2015-11-19 21:14:46,848 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2015-11-19 21:14:48,729 INFO  [main] hfile.CacheConfig: CacheConfig:disabled
K: 001/cf1:name/1447937036538/Put/vlen=3/seqid=8 V: tom
K: 002/cf1:name/1447938023777/Put/vlen=4/seqid=13 V: lily
K: 003/cf1:name/1447938068002/Put/vlen=4/seqid=15 V: lucy
Scanned kv count -> 3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop hbase hdfs mapreduce