深入剖析Hadoop HBase

开发 架构 Hadoop
Hadoop相信大家应该有所了解,那么Hadoop HBase呢,这里向大家介绍一下Hadoop HBase方面的知识,希望感兴趣的朋友们多多关注。

本节向大家介绍一下Hadoop HBase方面的知识,主要包括Hadoop HBase简要介绍和环境部署两大部分的内容,希望通过本节的介绍大家对Hadoop HBase有初步的了解。

Hadoop HBase

一.简要介绍

HadoopHBase是ApacheHadoop项目的一部分,基于HadoopDistributedFileSystem,是一个开源的,基于列存储模型的分布式数据库。HBase的目标是(原文):thehostingofverylargetables--billionsofrowsXmillionsofcolumns--atopclustersofcommodityhardward.

二.环境部署

Hadoop HBase具体步骤如下:

首先,保证计算机中安装了JDK和openSSH
JDK可以从Sun的官方网站上下载--------http://java.sun.com/javase/downloads/index.jsp,
openSSH在Linux系统安装的时候一般都一起安装的,如果没有,可以在googlesearch一下,此处不再赘述。

接下来,保证两台计算机中都有一个统一名称的用户hadoop(自己定),本人设置的情况如下:
/home/hadoop
将Hadoop文件解压到/home/hadoop/hadoopinstall文件夹下。
新建目录/home/hadoop/hadoopinstall/hadoopconf,将/home/hadoop/hadoopinstall/hadoop-0.16.4/conf下的
masters
slaves
hadoop-env.sh
hadoop-site.xml
copythefourfilesto/home/hadoop/hadoopinstall/hadoopconfandthen
setHADOOP_CONF_DIRto/home/hadoop/hadoopinstall/hadoopconf
(/etc/profile)
设置/etc/hostsfile加上
192.168.1.12(本机IP)hadoop-1hadoop-1
192.168.1.13(另一台机器IP)hadoop-2hadoop-2
将hadoop-1作为NamenodeandJobTracker
将hadoop-2作为DatanodeandTaskTracker

Hadoop HBase的SSH设置

在Hadoop启动以后,Namenode是通过SSH(SecureShell)来启动和停止各个节点上的各种守护进程的,这就需要在节点之间执行指令的时候是不需要输入密码的方式,故我们需要配置SSH使用无密码公钥认证的方式。
首先要保证每台机器上都装了SSH服务器,且都正常启动。实际中我们用的都是OpenSSH,这是SSH协议的一个免费开源实现。

首先,在hadoop-1上生成密钥对:
[hadoop@hadoop:~]#ssh-keygen-trsa
这个命令将为dbrg-1上的用户dbrg生成其密钥对,询问其保存路径时直接回车采用默认路径,当提示要为生成的密钥输入passphrase的时候,直接回车,也就是将其设定为空密码。生成的密钥对id_rsa,id_rsa.pub,默认存储在/home/hadoop/.ssh目录下。然后将id_rsa.pub的内容复制到每个机器(也包括本机)的/home/hadoop/.ssh/authorized_keys文件中,如果机器上已经有authorized_keys这个文件了,就在文件末尾加上id_rsa.pub中的内容,如果没有authorized_keys这个文件,直接cp或者scp就好了,下面的操作假设各个机器上都没有authorized_keys文件。

对于hadoop-1
[hadoop@hadoop-1:~/.ssh]$cpid_rsa.pubauthorized_keys

对于hadoop-2
[hadoop@hadoop-2:~]$mkdir.ssh
[hadoop@hadoop-1:~/.ssh]$scpauthorized_keyshadoop-2:/home/hadoop/.ssh/

此处的scp就是通过ssh进行远程copy,此处需要输入远程主机的密码,即hadoop-2机器上hadoop帐户的密码,当然,你也可以用其他方法将authorized_keys文件拷贝到其他机器上
[hadoop@hadoop-2:.ssh]$chmod644authorized_keys
这一步非常关键,必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH是不会工作的。
接着,在三台机器上都需要对sshd服务进行配置,在三台机器上修改文件/etc/ssh/sshd_config
#去除密码认证
PasswordAuthenticationno
AuthorizedKeyFile.ssh/authorized_keys
至此各个机器上的SSH配置已经完成。


Hadoop HBase的Hadoop环境变量

hadoop_env.sh中设置Hadoop需要的环境变量,其中JAVA_HOME是必须设定的变量。HADOOP_HOME变量可以设定也可以不设定,如果不设定,HADOOP_HOME默认的是bin目录的父目录。
本人的设置如下:
exportHADOOP_HOME=/home/hadoop/hadoopinstall/hadoop-0.16.4
exportJAVA_HOME=/usr/java/jdk1.6.0

Hadoop HBase的Hadoop配置文件

如前所述,在/home/hadoop/hadoopconf目录下,打开slaves文件,该文件用来指定所有的从节点,一行指定一个主机名。即本文中的hadoop-2,因此slaves文件看起来应该是这样的
hadoop-2
在conf/目录中的hadoop-default.xml中包含了Hadoop的所有配置项,但是不允许直接修改!可以在hadoop-conf/目录下的hadoop-site.xml里面定义我们需要的项,其值会覆盖hadoop-default.xml中的默认值。可以根据自己的实际需要来进行定制。

启动hadoop

在bin/下面有很多启动脚本,可以根据自己的需要来启动。
*start-all.sh启动所有的Hadoop守护。包括namenode,datanode,jobtracker,tasktrack
*stop-all.sh停止所有的Hadoop
*start-mapred.sh启动Map/Reduce守护。包括Jobtracker和Tasktrack
*stop-mapred.sh停止Map/Reduce守护
*start-dfs.sh启动HadoopDFS守护.Namenode和Datanode
*stop-dfs.sh停止DFS守护。本节有关Hadoop HBase的内容就介绍到这里。

【编辑推荐】

  1. Hadoop起源及其四大特性详解
  2. Hadoop开源已经实现
  3. Hadoop集群与Hadoop性能优化
  4. Hadoop 从Yahoo向Google的技术转折
  5. Yahoo公布Hadoop的源代码
责任编辑:佚名 来源: csdn.net
相关推荐

2010-06-03 11:23:19

Hadoop

2010-06-04 18:29:02

Hadoop单机模式

2009-09-27 17:13:36

Hibernate V

2009-07-06 10:44:45

JSP charset

2011-06-03 13:48:18

JavaScript重构

2010-05-25 12:59:00

Subversion

2009-09-14 15:12:40

LINQ to XML

2020-04-01 10:28:12

Apache HBas数据结构算法

2010-08-04 13:52:53

Flex事件机制

2010-06-12 14:35:46

UML对象图

2010-05-27 10:23:01

SVN文档

2009-09-25 09:36:55

Hibernate核心

2010-05-27 12:58:07

SVN升级

2010-06-30 16:00:01

FTP协议

2010-06-17 14:35:03

设计模式 UML

2009-09-28 14:54:33

Hibernate映射

2010-01-26 17:53:30

Android代码结构

2011-07-11 17:38:42

JAVA

2010-07-07 10:23:31

UML建模

2018-10-29 13:07:15

HBase存储迁移
点赞
收藏

51CTO技术栈公众号