一、Hbase的安装
一、Hbase配置
这个是我从网上找的一个版本,网上说配置成功。先决条件:
(1)hadoop的版本与hbase的版本要对应,主要是hadoop目录下的hadoop-core-1.0.4.jar的版本与hbase的lib目录下的hadoop-core-1.0.4.jar一致。
做法:将hadoop中lib下的hadoop-core-1.0.2.jar(commons-configuration-1.6.jar包)(此包我未移动,但是最后也成功啦)移动到hbase-0.90.5中的lib下面,而hbase-0.90.5中lib目录下的对应的hadoop-core.jar包文件删除掉即可。
(2)配置apache hadoop append,默认这个属性是false,需要设置为true
修改(hadoop/conf/hdfs-site.xml),并重启HDFS(或者重启Hadoop也行)
(3)Linux时间同步配置使用 Network Time Protocol (NTP) 服务器
1. 假如公司网络里有一个时间服务器: 10.85.10.80, 此时只需要在每个结点上修改NTP 服务配置文件,让每个结点和时间服务器进行同步即可。
# vi /etc/ntp.conf
Server 10.85.10.80 prefer
Driftfile /var/lib/ntp/drift
Broadcastdelay 0.008
修改完后在重启一下 ntp 服务
#/etc/init.d/ntpd restart
2. 如果没有时间服务,则可以用RAC 2个结点中一个做为服务器。另一个与此服务器同步即可。
加入用node1 做服务器, 其IP 为: 10.85.10.119, 修改配置文件
#vi /etc/ntp.conf
Server 127.127.1.0 -- 本地时钟
Fudge 127.127.1.0 stratum 11
Broadcastdelay 0.008
Node2 与node1 同步。
修改node2的ntp 配置文件
# vi /etc/ntp.conf
Server 10.85.10.119 prefer
Driftfile /var/lib/ntp/drift
Broadcastdelay 0.008
修改完后在重启一下 ntp 服务
#/etc/init.d/ntpd restart
或者在node2是使用crontab 与服务器同步时间
*/15 * * * * ntpdate 10.85.10.119
1.配置全局hbase-env.sh
配置hbase/conf/hbase-env.sh export JAVA_HOME=/usr/java/jdk1.6.0_21 #这个是我的java路径
export HBASE_MANAGES_ZK=true #hbase要用zookeeper来进行管理2、配置hbase-site.xml
<property>
<name>hbase.rootdirname>
<value>hdfs://master:9000/hbasevalue>
property>
<property>
<name>hbase.cluster.distributedname>
<value>truevalue>
property>
<property>
<name>hbase.mastername>
<value>hdfs://master:60000value>
property>
<property>
<name>hbase.zookeeper.quorumname>
<value> master,slave1,slave2value>
<description>Comma separated list of servers in the ZooKeeper Quorum. For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com". By default this is set to localhost for local and pseudo-distributed modes of operation. For a fully-distributed setup, this should be set to a full list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh this is the list of servers which we will start/stop ZooKeeper on. description>
property>
<property>
<name>hbase.zookeeper.property.dataDirname>
<value>/data/work/zookeepervalue>
<description>Property from ZooKeeper's config zoo.cfg. The directory where the snapshot is stored. description>
property>
hbase.zookeeper.property.clientPort
2181
zookeeper.session.timeout
1200000
hbase.zookeeper.property.tickTime
6000
说明:(1)hbase.rootdir设置hbase在hdfs上的目录,主机名为hdfs的namenode节点所在的主机。尤其注意:<value>hdfs://master:9000/hbasevalue>的值“hdfs://master:9000”与hadoop/conf/hdfs-site.xml中设定的值要完全一样,hdfs://master:9000/hbase 指明了存放hbase的目录名为hbase,目录名可以自定义。
(2)hbase.cluster.distributed设置为true,表明是完全分布式的hbase集群
(3)hbase.master设置hbase的master主机名和端口
(4)hbase.zookeeper.quorum设置zookeeper的主机,建议使用单数。<value> master,slave1,slave2value>指明在master,slave1,slave2这三台主机上运行zookeeper。
(5)设定hbase.zookeeper.property.clientPort,把zookeeper.session.timeout的值调大,设定hbase.zookeeper.property.tickTime的值,从而使zookeeper运行更加稳定。
(6)hbase中使用主机名,而不是IP地址标识主机。因此需要修改hosts文件,建立各主机名与IP地址的对应关系。
[使用root权限] vi /etc/hosts ,指明主机名称与IP地址的对应关系,因为我的实验环境包含了三个结点:master,slave1,slave2,所以我需要添加的内容如下:
192.168.100.128 master
192.168.100.156 slave1
192.168.100.159 slave2
3.修改hadoop的目录下的conf/hdfs-site.xml
<property>
<name>dfs.datanode.max.xcieversname>
<value>4096value>
property>
4.修改hbase/conf/regionservers
将所有的datanode添加到这个文件,类似与hadoop中slaves文件。因为我想在“master,slave1,slave2”这三个结点上运行HRegionServer,所以,我的hbase/conf/regionservers 的内容为:
master
slave1
slave2
5.拷贝hbase到所有的节点,也就是说,步骤1-4在所有hbase结点上的配置是相同的。
6. 启动Hbase之前,确保hadoop已经正常启动并运行。
可以使用jps命令查看master上是否存在NameNode服务,slave上是否存在DataNode服务。
然后启动hbase
$ ./bin/start-hbase.sh
注意事项:防火墙会阻挡访问hbase和zookeeper的网络连接,zookeeper若被防火墙阻挡,就会死掉,导致Hbase死掉。因此,需要配置iptables,允许相关端口的数据包通过,或者在测试阶段,直接先将iptables防火墙停掉:/sbin/service iptables stop 【停止iptables需要root权限】比较方便。
7 检查Hbase是否正常启动。
(1)在master上运行jps,会看到HMaster、HRegionServer和HQuorumPeer。
[user@master ~]$ jps
26023 HRegionServer
26615 Jps
15276 DataNode
15140 NameNode
25724 HQuorumPeer
15596 TaskTracker
25835 HMaster
15441 JobTracker
(2)在slave上运行jps,会看到HRegionServer和HQuorumPeer。
[user@slave2 ~]$ jps
10735 DataNode
13226 HQuorumPeer
10854 TaskTracker
13383 HRegionServer
19594 Jps
(3)其它方式:hbase自带的web界面
http://master:60010/
?当我们在浏览主页的时候提示:You are currently running the HMaster without HDFS append support enabled. This may result in data loss. Please see the HBase wiki for details.
查看了hdfs-default.xml中,看到如下说明,Hadoop-0.20.2版本有bug不能支持HDFS 追加功能,因此只能作罢。 如果你用的是其他版本可能就不会有!
This is currently set to false because there are bugs in the 当前设置为false因为有bug
"append code" and is not supported in any production cluster. 所以不支持任何集群
二、Hbase的安装命令
hbase中删除操作1.删除一个regionServer
在需要删除的RegionServer上执行以下命令:$ ./bin/hbase-daemon.sh stop regionserver RegionServer将会关掉所有的region,然后此节点将会在Zookeeper消失。Master注意到了此RegionServer 掉了,它将会重新分配掉的这些Region。在停掉一个节点的时候,注意要关闭Load Balancer,因为Load Balancer可能要和Master的恢复机制争夺停掉的RegionServer。来自为知笔记(Wiz)