环境配置
单机模式安装HBase
第一步:下载HBase
第二步:解压在soft下面
第三步:打开/etc/profile文件,添加如下语句,注意路径
export HBASE_HOME=/home/wuhan/soft/hbase-1.2.0
export PATH=$PATH:$HBASE_HOME/bin
第四步:在hbase-1.2.0的conf/hbase-env.sh中,添加如下配置
export JAVA_HOME= 填写个人JAVA路径
查找export HBASE_MANAGES_ZK=true
第五步:在hbase-site.xml中添加如下配置
说明:hbase.rootdir设置hbase在hdfs上的目录
hbase.cluster.distributed设置为true,表明是分布式的hbase集群
hbase.zookeeper.quorum设置zookeeper主机
hbase.tmp.dir设置hbase的临时目录,否则会使用系统tmp目录
hbase.zookeeper.property.dataDir,设置zookeeper目录
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop-master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop-master</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>$HBASE_HOME/tmp</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>$HBASE_HOME/zookeeper</value>
</property>
</configuration>
第六步:regionservers配置,添加如下内容
hadoop-master
第七步:命令输入source /etc/profile
第七步:启动hadoop
\输入start-all.sh
第八步:启动hbase
bin/start-hbase.sh
第九步:在终端输入JPS命令,如果出现以下服务,代表启动成功,一共9个服务
NameNode
ResourceManager
NodeManager
HQuorumPeer
HMaster
DataNode
JPS
SecondaryNameNode
HRegionServer
第十步:通过网页查看Hbase运行状态
http://localhost:16030/master-status
第十一步:通过如下命令进入命令行管理界面
hbase shell
第十二步:常用的shell命令
1):创建表
create 'table1','columnsf'
2):插入数据
put 'table1','row1','columnsf:a1','value1'
put 'table1','row2','columnsf:a2','value2'
put 'table1','row3','columnsf:a3','value3'
3:)查看插入的数据
scan 'table1'
4):读取单条数据
get 'table1','row2'
5):修改一条数据
put 'table1','row2','columnsf:a2','value2.0'
6):删除一条数据
deleteall 'table1','row1'
7):清空整张表
truncate 'table1'
8):停用并删除数据表
disable 'table1'
drop 'table1'
9):退出命令行
exit
第十三步:关闭hbase stop-hbase.sh
第十四步:关闭hadoop stop-all.sh
完全分布模式安装HBase
第一部分:在上节1--9步骤之后
第二部分:新增
第十三步:在hbase目录下创建zookeeper文件夹
第十四步:打开hbase-site.xml配置
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop-master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>hadoop-master:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop-master,hadoop-slave1,hadoop-slave2 </value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>$HBASE_HOME/tmp</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/beihang/soft/zookeeper</value>
</property>
</configuration>
第十五步:regionservers配置,添加如下语句
hadoop-slave1
hadoop-slave2
第十六步:重复上面和下面的每一步,在hadoop的每一个slave上
第十七步:启动hadoop
start-all.sh
第十八步:启动hbase
start-hbase.sh
第十九步:master上运行jps指令
多了HMaster和HQuorumPeer进程
第二十步:slave节点上运行jps指令
多了HRegionServer和HQuorumPeer进程
3、完全分布模式:
伪分布模式需要用到hadoop文件系统 ,所以配置会比单机模式麻烦很多 并且需要版本匹配;我用的hadoop是2.7.1 hbase是1.2.0;
使用三个节点,分别是 ip:hostname 192.168.159.147 lin147 , 192.168.159.148 lin148 ,
192.168.159.149 lin149 ;主节点是149
hosts 和 hostname 自己配置 这里不多说;
下面在147上配置:
(1)、修改conf/hbase-env.sh
添加java环境变量和hbase_classpath(指向hadoop的配置文件目录)环境变量:
export JAVA_HOME=/usr/soft/jdk1.8.0_60
export HBASE_CLASSPATH=/home/lin/hadoop/hadoop-2.7.1/etc/hadoop
export HADOOP_HOME=/home/lin/hadoop/hadoop-2.7.1
(2)、编辑hbase-site.xml
hbase.rootdir 要配置为hdfs上的路径;打开分布
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/lin/hadoop/hbase-1.2.0/data</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://lin147:60000</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>lin147,lin148,lin149</value>
</property>
</configuration>
(3)、配置regionservers 添加slave
lin163
lin164
(4)、把hbase scp到lin163 和 lin164
$ scp -r /home/lin/hadoop/hbase-1.1.2 lin@192.168.0.163:/home/lin/hadoop/hbase-1.1.2
$ scp -r /home/lin/hadoop/hbase-1.1.2 lin@192.168.0.164:/home/lin/hadoop/hbase-1.1.2
(5)、在主节点lin162启动hbase
$ bin/start-hbase.sh
(6)、验证是否成功
在主节点lin162 jps 出现 Hmaster 和 HquorumPeer
在slave lin163 和 164 jps 出现 HregionServer 和 HquorumPeer
然后就可以hbase shell 进入shell进行对hbase的操作。
访问web http://192.168.0.162:16010/master-status (之前的端口是60010 根据版本自行选择端口访问)
Zookeeper分布式部署
添加环境变量
export ZOOKEEPER_HOME=/home/xqshi/zookeeper-3.4.8
export PATH=$PATH:${ZOOKEEPER_HOME}/bin:${ZOOKEEPER_HOME}/conf
修改配置文件
/home/xqshi/zookeeper-3.4.8/conf
$:cp zoo_sample.cfg zoo.cfg
$:vim zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/xqshi/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=groot-nn:2888:3888
server.2=groot-rm:2888:3888
server.3=groot-hs:2888:3888
server.4=groot-sm:2888:3888
PropertyPAC
server.1=groot-nn:2888:3888
server.2=groot-rm:2888:3888
server.3=groot-hs:2888:3888
server.4=groot-sm:2888:3888
echo "3" >/home/xqshi/tmp/zookeeper/myid
/home/xqshi/tmp/zookeeper/这个文件需要自己创建,与zoo.cfg中写的路径要保持一致,没有就创建