【二】HBase安装(基于hadoop2.9HA的搭建)(分布式)
先安装分布式Zookeeperhadoop分布式配置(HA高可用) NNDNZKZKFCJNRMNMHMRSNode1Y Y...
NN | DN | ZK | ZKFC | JN | RM | NM | HM | RS | |
Node1 | Y | Y | Y | Y | Y | ||||
Node2 | Y | Y | Y | Y | Y | Y | Y | ||
Node3 | Y | Y | Y | Y | Y | Y | |||
Node4 | Y | Y | Y | Y | Y |
每个node上都要安装hbase
解压
tar -zxvf hbase-1.4.4-bin.tar.gz
修改文件名字
mv hbase-1.4.4 hbase
修改配置文件
cd /app/hbase/conf
vi hbase-env.sh
配置JAVA的路径,不启动hbase自带的zk
export JAVA_HOME=/app/java/jdk1.8.0_101
export HBASE_MANAGES_ZK=false
export HBASE_PID_DIR=/app/hbase/pids
vi hbase-site.xml
<!-- 指明hadoopHA集群的名字
跟/app/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml
中配置的dfs.nameservices的值一样 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoopcluster/hbase</value>
</property>
<!-- 打开分布式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指明zookeeper集群所在地 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,node3</value>
</property>
<!-- 指明zookeeper的工作目录(与安装zookeeper的时候配置的zoo.cfg文件的dataDir值) -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/app/zookeeper/tmp</value>
</property>
vi regionservers
指明regionservers在哪些机器上。
node1
node2
node3
node4
把hadoop的hdfs-site.xml、core-site.xml配置文件拷贝到HBase的配置文件夹中
cp /app/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml /app/hbase/conf/
cp /app/hadoop/hadoop-2.9.0/etc/hadoop/core-site.xml /app/hbase/conf/
配置环境变量
vi ~/.bashrc
export HBASE_HOME=/app/hbase
export PATH=:$PATH:$HBASE_HOME/bin
使环境变量生效
source ~/.bashrc
创建保存pid文件的路径
cd /app/hbase
mkdir pids
启动zookeeper集群
cd /app/zookeeper/bin
./zkServer.sh start
启动hadoop集群(在namenode上执行)
cd /app/hadoop/hadoop-2.9.0/sbin
./start-all.sh
HMaster是node3和node4
启动(在node3上)
cd /app/hbase/bin
./start-hbase.sh
这个命令在哪里执行,就在当前的机器上跑一个HMaster
单独启动HMaster。在哪台机器上执行该命令,就在哪台机器上启动HMaster(在node4上)
cd /app/hbase/bin
./hbase-daemon.sh start master
jps查看4台机器
正确显示是
node1 HRegionServer
node2 HRegionServer
node3 HMaster、HRegionServer
node4 HMaster、HRegionServer
通过浏览器访问: http://node3:16010
在HBase1.0之前UI界面端口是60010,1.0以后改成了16010
需要访问有HMaster的机器
进入hbase的命令行(先要启动hbase)
cd /app/hbase/bin
./hbase shell
查看存在hbase中的文件
cd /app/hbase/bin
以键值对的方式打印存在hbase中(HDFS上的某个文件)的数据
./hbase hfile -p -f /hbase/data/default/person/4a2cd5b24a163b41c637df09d0dff0c1/cf1/b5f5d7712f934603b13aedcd00d942b1
HBase的shell命令
创建表 create ’t_student’,’cf1’
显示有那些表 list
查看表结构 desc ‘t_student’
插入一条数据:put ‘tablename’,’row key’,’column family name:column name’,’value’
put ‘t_student’,’007’,’cf1:name’,’sid’
查看该表中所有的数据: scan ‘tablename’
手动溢写到HDFS上(类似于MYSQL的commit):flush ‘tablename’
手动合并HDFS上的小文件:(因为每次hbase写一个hfile到HDFS上就会在HDFS上产一个文件,小文件太多,影响访问的速度)major_compact ‘tablename’
更多推荐
所有评论(0)