1.搭建基础环境
环境说明
1.1JDK1.6.26
1.2安装hadoop 2.4.0
1.3修改系统hostname:
1)vi /etc/sysconfig/network
HOSTNAME=redhat6-xxx
2) hostname redhat6-xxx
2.添加hbase用户
使用root用户完成以下操作:
2.1 #groupadd hbase
2.2 #useradd hbase -g hbase
2.3 #passwd hbase
2.4 生成登录密钥
切换hbase用户进行操作:
#cd /home/hbase #ssh-keygen -q -t rsa -N "" -f /home/hbase/.ssh/id_rsa #cd .ssh #cat id_rsa.pub > authorized_keys #chmod go-wx authorized_keys
检查
#ll -a /home/hbase/.ssh/ #ssh redhat6-master(hostname,该hostname必须配置到/etc/hosts中)第一次会有提示,输入yes回车即可,第二次不会再提示
说明:
以上为生成公钥逻辑,如果是集群机器,则需要将authorized_keys复制到各个集群节点的.ssh目录(node1:/home/hbase/.ssh/authorized_keys)
1 配置集群机器的ssh免密码登录
2 为了保证master可以无需密码自动登录到各个slave,需先在各个slave上执行
$ su hbase $ cd /home/hbase
$ ssh-keygen -t rsa 一路按回车.
3 然后回到master,复制authorized_keys到各个slave,这里会提示输入密码,输入hadoop账号密码就可以了。
$ scp authorized_keys redhat6-slave1:/home/hbase/.ssh/ $ scp authorized_keys redhat6-slave2:/home/hbase/.ssh/ $ scp authorized_keys redhat6-slaveN:/home/hbase/.ssh/ $ chmod 644 authorized_keys
4 测试:ssh redhat6-slave1或者ssh redhat6-slave2(第一次需要输入yes)。如果不须要输入密码则配置成功,如果还须要请检查上面的配置能不能正确。
3.安装hbase
使用hbase账户完成如下操作
注意:由于 HBase 依赖 Hadoop,在分布式模式下,Hadoop版本必须和HBase下的版本一致。用你运行的分布式Hadoop版本jar文件替换HBase lib目录下的Hadoop jar文件,以避免版本不匹配问题,也可以根据情况自己编译发布包。
3.1 解压hbase发行包:
1.tar xfz hbase-0.98.0-hadoop2-bin.tar.gz
2.解压到hbase0983目录下
3.2 配置系统环境
1.#cd /data/app/hbase/hbase0983/conf
2.修改当前用户下的.bash_profile文件,将hbase环境变量配置到profile中
export HBASE_HOME="/data/app/hbase/hbase0983/" export PATH=$HBASE_HOME/bin:$PATH
3.修改hbase-env.sh文件,增加如下几行
export JAVA_HOME=/usr/java/jdk1.6.0_26/ export HBASE_CLASSPATH=/data/app/hadoop/hadoop-2.4.0/etc/hadoop export HBASE_MANAGES_ZK=true
3.3 配置HBase参数然后,修改hbase-site.xml文件
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://redhat6-master:9000/hbase</value><!--hdfs存储在什么地方--> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value><!--是否是集群部署--> </property> <property> <name>hbase.master.port</name> <value>60000</value><!--hbase master的端口号--> </property> <property> <name>hbase.master.maxclockskew</name> <value>180000</value><!--hbase 允许各服务器时差的最大值--> <description>Time difference of regionserver from master</description> </property> <property> <name>hbase.master</name> <value>redhat6-master:60000</value><!--hbase master地址--> </property> <property> <name>hbase.zookeeper.quorum</name> <value>redhat6-slave4</value><!--slave端各hostname或ip--> </property> </configuration>
3.4 增加所有机器的regionserver
1.#cd /data/app/hbase/hbase0983/conf
2.在regionservers中增加所有节点的机器hostname
redhat6-master
redhat6-slave1
redhat6-slave2
...
redhat6-slaven
4.启动hbase:
4.1.在Master机器 redhat6-master( 135.10.15.87) 上执行启动脚本:
$./data/app/hbase/hbase0983/bin/start-hbase.sh
4.2.打开redhat6-master http://135.10.15.87:60010 主界面,可以查看Master运行状态。
4.3.启动hbase hql shell:
$/data/app/hbase/hbase0983/bin/hbase shell
在hql shell中可以进行hbase数据操作,如果需要帮助信息可以键入:
hbase>help
简单测试hbase:
在hbase shell下:
hbase>create 't1','f1','f3'
hbase>list