hadoop集群搭建之三(Hbase、zookeeper安装)
2015-03-30 23:40
633 查看
前两步实现了Hadoop集群的搭建,但是对于数据的存储要用数据库。一般小规模的网站上,我们会用MySQL,在WEB应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。但是MySQL在处理大型的并发性能上远远不行。这里我们会考虑用oracle和Hbase,对于大量的统计业务就使用Oracle,而对于数据挖掘搜索引擎使用Hbase。这里我主要做数据挖掘,机器学习的研究,所以我使用Hbase。
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式.
Hbase是bigtable的开源山寨版本。是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。
HBase中的表一般有这样的特点:
1 大:一个表可以有上亿行,上百万列
2 面向列:面向列(族)的存储和权限控制,列(族)独立检索。
3 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
安装参考文章:http://hbase.apache.org/book.html#architecture
安装前需要注意Hbase支持的JAVA版本:
hadoop支持的情况:
Hadoop version support matrix
"S" = supported
"X" = not supported
"NT" = Not tested
这里我使用单独的zookeeper。集群的结构如下:
主机名 IP地址 用途
master.hadoop 192.168.0.1 HMster、zookeeper
slave1.hadoop 192.168.0.2 regionserver、zookeeper
slave2.hadoop 192.168.0.3 regionserver、zookeeper
slave3.hadoop 192.168.0.4 regionserver、zookeeper
这里我们先安装zookeeper。zookeeper的下载地址如下:
http://www.apache.org/dyn/closer.cgi/zookeeper/
解压缩安装包,复制zookeeper到/usr/local。先修改环境变量,参考安装Hadoop的例子:
然后修改zookeeper的配置文件:
再把master.hadoop上的zookeeper目录同步到slave1.hadoop、slave2.hadoop、slave3.hadoop。
同样在部署zookeeper的节点上创建/home/hadoop/hadoopdata/zookeeper/zookeeper-data目录,然后在此新建一个myid文件里写入zoo.cfg文件对应的server号码,例如:master.hadoop写1,slave1.hadoop写2,依次类推,配置文件处写了多少就写多少。
下面准备启动zookeeper。(在hadoop已经启动的条件下,确保集群内各个节点上的防火墙关闭)
在每个部署zookeeper节点的机器上执行如下命令
然后每个节点上执行下面命令,查看节点是那种角色:
要停止zookeeper,每个节点上执行下面命令:
Hbase安装包的下载地址如下,这里建议下载stable版本的安装包,本次安装的时Hbase1.0
http://www.apache.org/dyn/closer.cgi/hbase/
在master上解压缩文件hbase-1.0.0-bin.tar.gz,进入目录conf,编辑文件hbase-env.sh,添加下面内容:
这里需要注意的是最后一个参数,每次启动Hbase的时候发现,有一个slave没有起来,查看日志得知这个节点的时钟与master节点的时钟相比相差很多,超过阈值,所以这里设置这个参数增大这个阈值。其实也可以试试其他集群同步时间的方法,这里用了比较莽夫的方法~~~~
然后修改/etc/profie文件
至此主节点上的配置全部完成,然后将配置好的hbase文件利用scp拷贝到各个slave的/usr/local/目录下,再修改环境变量即可。然后在主节点上启动Hbase,利用下面的命令:
启动Hbase后,主节点终端键入jps可以看到下面的现象:
至此Hbase的安装完成。主节点上键入下面命令进入Hbase的shell:
如果要关闭Hbase使用下面命令:
至此hadoop、zookeeper、Hbase安装完毕,注意启动的时候顺序是hadoop->zookeeper->hbase,关闭的时候是hbase->zookeeper->hadoop。
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式.
Hbase是bigtable的开源山寨版本。是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。
HBase中的表一般有这样的特点:
1 大:一个表可以有上亿行,上百万列
2 面向列:面向列(族)的存储和权限控制,列(族)独立检索。
3 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
安装参考文章:http://hbase.apache.org/book.html#architecture
安装前需要注意Hbase支持的JAVA版本:
HBase Version | JDK 6 | JDK 7 | JDK 8 |
---|---|---|---|
1.0 | Not Supported | yes | Running with JDK 8 will work but is not well tested. |
0.98 | yes | yes | Running with JDK 8 works but is not well tested. Building with JDK 8 would require removal of thedeprecatedremove()method of the PoolMapclass and is under consideration. SeeHBASE-7608 for more information about JDK 8support. |
0.96 | yes | yes | N/A |
0.94 | yes | yes | N/A |
Hadoop version support matrix
"S" = supported
"X" = not supported
"NT" = Not tested
HBase-0.92.x | HBase-0.94.x | HBase-0.96.x | HBase-0.98.x (Support for Hadoop 1.1+ is deprecated.) | HBase-1.0.x (Hadoop 1.x is NOT supported) | |
---|---|---|---|---|---|
Hadoop-0.20.205 | S | X | X | X | X |
Hadoop-0.22.x | S | X | X | X | X |
Hadoop-1.0.x | X | X | X | X | X |
Hadoop-1.1.x | NT | S | S | NT | X |
Hadoop-0.23.x | X | S | NT | X | X |
Hadoop-2.0.x-alpha | X | NT | X | X | X |
Hadoop-2.1.0-beta | X | NT | S | X | X |
Hadoop-2.2.0 | X | NT | S | S | NT |
Hadoop-2.3.x | X | NT | S | S | NT |
Hadoop-2.4.x | X | NT | S | S | S |
Hadoop-2.5.x | X | NT | S | S | S |
主机名 IP地址 用途
master.hadoop 192.168.0.1 HMster、zookeeper
slave1.hadoop 192.168.0.2 regionserver、zookeeper
slave2.hadoop 192.168.0.3 regionserver、zookeeper
slave3.hadoop 192.168.0.4 regionserver、zookeeper
这里我们先安装zookeeper。zookeeper的下载地址如下:
http://www.apache.org/dyn/closer.cgi/zookeeper/
解压缩安装包,复制zookeeper到/usr/local。先修改环境变量,参考安装Hadoop的例子:
export ZOOKEEPER_HOME=/usr/local/zookeeper export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin
然后修改zookeeper的配置文件:
cd zookeeper/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. dataDir=/home/hadoop/hadoopdata/zookeeper/zookeeper-data # the port at which the clients will connect clientPort=2222 server.1=master.hadoop:2888:3888 server.2=slave1.hadoop:2888:3888 server.3=slave2.hadoop:2888:3888 server.4=slave3.hadoop:2888:2888然后创建zookeeper-data文件夹:
mkdir /home/hadoop/hadoopdata/zookeeper/zookeeper-data
再把master.hadoop上的zookeeper目录同步到slave1.hadoop、slave2.hadoop、slave3.hadoop。
同样在部署zookeeper的节点上创建/home/hadoop/hadoopdata/zookeeper/zookeeper-data目录,然后在此新建一个myid文件里写入zoo.cfg文件对应的server号码,例如:master.hadoop写1,slave1.hadoop写2,依次类推,配置文件处写了多少就写多少。
下面准备启动zookeeper。(在hadoop已经启动的条件下,确保集群内各个节点上的防火墙关闭)
在每个部署zookeeper节点的机器上执行如下命令
zkServer.sh start
然后每个节点上执行下面命令,查看节点是那种角色:
zkServer.sh status
要停止zookeeper,每个节点上执行下面命令:
zkServer.sh stop
Hbase安装包的下载地址如下,这里建议下载stable版本的安装包,本次安装的时Hbase1.0
http://www.apache.org/dyn/closer.cgi/hbase/
在master上解压缩文件hbase-1.0.0-bin.tar.gz,进入目录conf,编辑文件hbase-env.sh,添加下面内容:
# The java implementation to use. Java 1.7+ required. export JAVA_HOME=/usr/local/jdk1.7.0_21/ # Extra Java CLASSPATH elements. Optional. export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop再编辑文件hbase-site.xml,添加下面内容,这里需要注意的是hbase.rootdir的端口号一定要和hadoop的配置文件core-site.xml中的fs.default.name下的端口号保持一致:
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master.hadoop:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master.hadoop,slave1.hadoop,slave2.hadoop,slave3.hadoop</value> </property> <property> <name>hbase.zookeeper.sission.timeout</name> <value>60000</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2222</value> </property> <property> <name>hbase.master</name> <value>master.hadoop:60000</value> </property> <property> <name>hbase.master.info.port</name> <value>60010</value> </property> <property> <name>hbase.regionserver.info.port</name> <value>60030</value> </property> <property> <name>hbase.master.maxclockskew</name> <value>6000000000</value> </property> </configuration>
这里需要注意的是最后一个参数,每次启动Hbase的时候发现,有一个slave没有起来,查看日志得知这个节点的时钟与master节点的时钟相比相差很多,超过阈值,所以这里设置这个参数增大这个阈值。其实也可以试试其他集群同步时间的方法,这里用了比较莽夫的方法~~~~
然后修改/etc/profie文件
export HADOOP_HOME=/usr/local/hadoop export HBASE_HOME=/usr/local/hbase export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin
至此主节点上的配置全部完成,然后将配置好的hbase文件利用scp拷贝到各个slave的/usr/local/目录下,再修改环境变量即可。然后在主节点上启动Hbase,利用下面的命令:
start-hbase.sh这里需要注意的一点时启动Hbase之前要确定Hadoop一定启动了,关闭的时候,我们先关闭Hbase再关闭Hadoop。
启动Hbase后,主节点终端键入jps可以看到下面的现象:
15279 ResourceManager 24690 SecondaryNameNode 20497 QuorumPeerMain 14948 NameNode 20587 HMaster 20914 Jpsslave节点上信息如下:
14844 QuorumPeerMain 14949 Jps 20587 HRegionServer 13927 NodeManager1 3801 DataNode
至此Hbase的安装完成。主节点上键入下面命令进入Hbase的shell:
hbase shell
hbase(main):001:0>
如果要关闭Hbase使用下面命令:
stop-hbase.sh
至此hadoop、zookeeper、Hbase安装完毕,注意启动的时候顺序是hadoop->zookeeper->hbase,关闭的时候是hbase->zookeeper->hadoop。
相关文章推荐
- 搭建3个节点的hadoop集群(完全分布式部署)--3 zookeeper与hbase安装
- Hadoop集群之 ZooKeeper和Hbase环境搭建
- 个人hadoop学习总结:Hadoop集群+HBase集群+Zookeeper集群+chukwa监控(包括单机、伪分布、完全分布安装操作)
- hadoop、zookeeper、hbase、spark集群环境搭建
- 伪分布式集群环境hadoop、hbase、zookeeper搭建
- Hadoop2.0集群、Hbase集群、Zookeeper集群、Hive工具、Sqoop工具、Flume工具搭建总结
- Hadoop-2.6.0+Zookeeper-3.4.6+Spark-1.5.0+Hbase-1.1.2+Hive-1.2.0集群搭建
- HADOOP__HBASE集群安装(自带ZOOKEEPER)
- Hadoop0.20.2+hbase-0.92.1+zookeeper-3.3.5 虚拟机ubuntu完全集群搭建
- hadoop+hbase+zookeeper 分布式集群搭建 + eclipse远程连接hdfs 完美运行
- Hadoop集群之 ZooKeeper和Hbase环境搭建
- 伪分布式集群环境hadoop、hbase、zookeeper搭建(全)
- Hadoop+Hbase+Spark集群配置—Zookeeper安装
- hadoop2.2.0集群基础上安装zookeeper3.4.5和hbase0.96(双机热备)
- hadoop1.2.1+zookeeper-3.4.5+hbase-0.94.1集群安装
- hadoop,zookeeper, hbase集群的批量安装
- Hadoop-2.6.0+Zookeeper-3.4.6+Spark-1.5.0+Hbase-1.1.2+Hive-1.2.0集群搭建
- 搭建Hbase集群(2) zookeeper和hbase的安装
- 伪分布式集群环境hadoop、hbase、zookeeper搭建(全)
- 第八章 搭建hadoop2.2.0集群,Zookeeper集群和hbase-0.98.0-hadoop2-bin.tar.gz集群