本节向大家介绍一下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的内容就介绍到这里。
【编辑推荐】