HBASE安装及客户端编程配置

阅读: 评论:0

2024年2月8日发(作者:)

HBASE安装及客户端编程配置

HBASE 安装

一、安装指南

二、常见问题

一、

安装指南

Hadoop+Hbase安装配置实录

2010-10-12 22:53

生产环境:

3台机器:master(192.168.0.61),slave1(192.168.0.62),slave2(192.168.0.63)

注意:hostname设置为master/slave1/slave2

操作系统:rhel5.4 x86_64

master做为namenonde,将slave1和slave2做为datanode

1.在master:(在slave1和slave2上操作和以下相同)

vi /etc/hosts

192.168.0.61 master

192.168.0.62 slave1

192.168.0.63 slave2

2.用root操作

3.免密码登录

#ssh-keygen -t rsa #建立ssh目录,敲回车到底 ,这一步需要先在每台机器上执行。

在master上

#scp ~/.ssh/id_ root@slave1:/root/.ssh/id__m 将master上的密钥传到slave1的/home/hadoop下

在slave1上

#cat /root/.ssh/id__m >> ~/.ssh/authorized_keys

#chmod 644 ~/.ssh/authorized_keys

反复操作第3步,完成master<-->slave1 master<-->slave2的免密码登录

这样主节点和从节点之间就可以不用密码直接ssh访问,另外,在启动hadoop时需要master ssh master,

因此,在master的~/.ssh下,也执行下cat id_ >> authorized_keys即可。

PDF 文件使用 "pdfFactory Pro" 试用版本创建

4.安装JDK到/usr/local下命名为jdk6

然后:

编辑三台机器的/etc/profile,增加如下内容

export JAVA_HOME=/usr/local/jdk6

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export HADOOP_HOME=/hadoop/hadoop

export HBASE_HOME=/hadoop/hbase

PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin

#vi /root/.bashrc

增加

export HADOOP_CONF_DIR=/hadoop/hadoop-config

export HBASE_CONF_DIR=/hadoop/hbase-config

5、防火墙

各机器加入iptables策略:

#iptables -I INPUT -s 192.168.0.0/255.255.255.0 -j ACCPET

#service iptables save

-----------------------------------------

hadoop配置:

1.下载安装

#cd /hadoop

#wget

/apache-mirror//hadoop/core/hadoop-0.20.2/

#tar -zxvf

#ln -s hadoop-0.20.2 hadoop

由于上述目录中hadoop的配置文件和hadoop的安装目录是放在一起的,这样一旦日后升级hadoop版本的时候所有的配置文件都会被覆盖,因 此将配置文件与安装目录分离,一

种比较好的方法就是建立一个存放配置文件的目录,/hadoop/hadoop-config/,然后将 /hadoop/hadoop/conf/目录中的,slaves,,masters, hdfs-

,,这6个文件拷贝到 /hadoop/hadoop-config/目录中,并指定环境变量$HADOOP_CONF_DIR指向该目录。环境变量在/root/.bashrc

中设定。

#mkdir /hadoop/hadoop-config

#cd /hadoop/hadoop/conf/

#cp slaves masters

/hadoop/hadoop-config/

PDF 文件使用 "pdfFactory Pro" 试用版本创建

2.修改6个文件

masters:

master

slaves:

slave1

slave2

#切忌不要创建:/hadoop/hadoop/tmp

:

export JAVA_HOME=/usr/local/jdk6

export HADOOP_PID_DIR=/hadoop/hadoop/tmp

:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href=""?>

hdfs://master:54310

#切忌不要创建:/hadoop/hadoop/name

#mkdir /hadoop/hadoop/data

:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href=""?>

/hadoop/hadoop/name/ #hadoop的name目录路径

/hadoop/hadoop/data/ #hadoop的data目录路径

ation

3 #指定 HDFS 中每个 Block 被复制的次数,起数据冗余备份的作用。在典型的生产系统中,这个数常常设置为3

PDF 文件使用 "pdfFactory Pro" 试用版本创建

:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href=""?>

r

hdfs://master:54311/

3、格式化namenode

#cd /hadoop/hadoop/bin

#./hadoop namenode -format

#cd /hadoop

#scp -r ./* root@slave1:/hadoop/

#scp -r ./* root@slave2:/hadoop/

到slave1和slave2上,分别重做软链接

#cd /hadoop

#rm -rf hadoop

#ln -s hadoop-0.20.2 hadoop

4、启动所有hadoop守护进程

# ./

说明:

在bin/下面有很多启动脚本,可以根据自己的需要来启动。

* 启动所有的Hadoop守护。包括namenode, datanode,

jobtracker, tasktrack

* 停止所有的Hadoop

* 启动Map/Reduce守护。包括Jobtracker和Tasktrack

* 停止Map/Reduce守护

* 启动Hadoop DFS守护.Namenode和Datanode

* 停止DFS守护

[root@master bin]# jps

6813 NameNode

7278 Jps

7164 JobTracker

7047 SecondaryNameNode

出现4个这样的进程,且datanode没有error,同时访问ui正常才算成功。

ui:masterip:50070 --web UI for HDFS name node(s)

PDF 文件使用 "pdfFactory Pro" 试用版本创建

masterip:50030 --web UI for MapReduce job tracker(s)

slaveip:50060 --web UI for task tracker(s)

5、hdfs简单测试

#cd /hadoop/hadoop/bin

#./hadoop dfs -mkdir testdir

#./hadoop dfs -put /root/ testdir/-dfs

将/root/ 存储到hdfs中的testdir中,重命名为-dfs

#./hadoop dfs -ls

#./hadoop dfs -ls testdir

----------------------------------

1、hbase安装部署

#cd /hadoop

#wget //hbase/hbase-0.20.6/

#tar -zxvf

#ln -s hbase-0.20.6 hbase

#mkdir hbase-config

#cd /hadoop/hbase/conf/

#cp regionservers /hadoop/hbase-config/

2、配置文件修改

#mkdir /hadoop/hbase/tmp

#vim /hadoop/hbase-config/

增加

export JAVA_HOME=/usr/local/jdk6

export HBASE_MANAGES_ZK=true

export HBASE_PID_DIR=/hadoop/hbase/tmp

#vim

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href=""?>

r

hdfs://master:54310/hbase 注意主机名和端口号要与hadoop的dfs name的对应

buted

true

PDF 文件使用 "pdfFactory Pro" 试用版本创建

master

t

60000

Port

2222

配置hbase服务器名称

#vi regionservers

slave1

slave2

3、复制hbase文件

在master上

#cd /hadoop

#scp -r hbase-0.20.6 hbase-config

root@slave1:/hadoop/

#scp -r hbase-0.20.6 hbase-config

root@slave2:/hadoop/

在slave1和slave2上,分别重做软链接

#cd /hadoop

#ln -s hbase-0.20.6 hbase

4、测试

在master上启动

#cd /hadoop/hbase/bin

#./hbase shell

HBase Shell; enter 'help' for list of supported commands.

Version: 0.20.6, r965666, Mon Jul 19 16:54:48 PDT 2010

hbase(main):001:0> create 'test','data'

0 row(s) in 1.1920 seconds

hbase(main):002:0> list

test

1 row(s) in 0.0200 seconds

hbase(main):003:0> quit

PDF 文件使用 "pdfFactory Pro" 试用版本创建

二、常见问题

HBase 官方文档,全面介绍hbase安装配置:

/wp-content/hbase/#hbase_default_configurations

1 在安装中出现的问题:

用./启动HBase后,执行hbase shell

# bin/hbase shell

HBase Shell; enter 'help' for list of supported commands.

Version: 0.20.6, rUnknown, Thu Oct 28 19:02:04 CST 2010

接着创建表时候出现如下情况:hbase(main):001:0> create 'test',''c

NativeException: NotRunningException:

null

jps下,发现主节点上HMaster没有启动,查理HBase log(logs/)里有下面异常:

FATAL r: Unhandled exception.

Starting shutdown.

ption: Call to node1/10.64.56.76:49002 failed on local

exception: eption

解决:

从hadoop_home/下面cp一个hadoop/到hbase_home/lib下。

因为Hbase建立在Hadoop之上,所以他用到了,这个Jar在 lib 里面。这个jar是hbase自己打了branch-0.20-append 补丁的. Hadoop使用的和Hbase使用的 必须 一致。所以你需要将 Hbaselib 目录下的替换成Hadoop里面的那个,防止版本冲突。比方说CDH的版本没有HDFS-724而branch-0.20-append里面有,这个HDFS-724补丁修改了RPC协议。如果不替换,就会有版本冲突,继而造成严重的出错,Hadoop会看起来挂了。

再用./启动HBase后,jps下,发现主节点上HMaster还是没有启动,在HBase log里有下面异常:

FATAL r: Unhandled exception.

Starting shutdown.

sDefFoundError:

PDF 文件使用 "pdfFactory Pro" 试用版本创建

org/apache/commons/configuration/Configuration

解决:

在NoClassDefFoundError,缺少

org/apache/commons/configuration/Configuration

果断给他加一个commons-configuration包,

从hadoop_home/lib下面cp一个hadoop/lib/到hbase_home/lib下。

(集群上所有机子的hbase配置都需要一样)

2 注意事项:

1)、先启动hadoop后,再开启hbase

2)、去掉hadoop的安全模式:hadoop dfsadmin -safemode leave

3)、把/etc/hosts里的ubuntu的IP改为服务器当前的IP

4)、确认hbase的中

r

hdfs://node:49002/hbase

与hadoop的中

hdfs://node:49002/hbase

红字部分保持一致

hdfs://localhost:8020/hbase

6)、重新执行./之前,先kill掉当前的hbase和zookeeper进程

客户端编程配置

一、程序准备

需要环境:Linux操作系统,eclipse,JDK

所需jar包:

添加HBase的HMaster和HRegionServer的DNS,至本地Linux操作系统/etc/hosts文件中。如果没有这步,将会出现错误:Exception in thread "main"

PDF 文件使用 "pdfFactory Pro" 试用版本创建

lArgumentException: Could not resolve the DNS name of ***:6000

二、编写代码:

package ;

import ption;

import ist;

import ;

import uration;

import onfiguration;

import nDescriptor;

import Descriptor;

import ue;

import NotRunningException;

import perConnectionException;

import ;

import ;

import dmin;

import ;

import ;

import Scanner;

import ;

import ;

import ;

public class HBaseBasic {

private static Configuration conf = null;

static {

Configuration HBASE_CONFIG = new Configuration();

//与hbase/conf/中配置的值相同

HBASE_("", "192.168.1.1");

//与hbase/conf/中Port配置的值相同

HBASE_("Port",

"2181");

conf = (HBASE_CONFIG);

}

PDF 文件使用 "pdfFactory Pro" 试用版本创建

public static void creatTable(String tableName, String[] familys)

throws Exception {

HBaseAdmin admin = new HBaseAdmin(conf);

if (xists(tableName)) {

n("table already exists!");

} else {

HTableDescriptor tableDesc = new

HTableDescriptor(tableName);

for(int i=0; i<; i++){

ily(new HColumnDescriptor(familys[i]));

}

Table(tableDesc);

n("create table " + tableName + " ok.");

}

}

public static void deleteTable(String tableName) throws Exception {

try {

HBaseAdmin admin = new HBaseAdmin(conf);

eTable(tableName);

Table(tableName);

n("delete table " + tableName + " ok.");

} catch (MasterNotRunningException e) {

tackTrace();

} catch (ZooKeeperConnectionException e) {

tackTrace();

}

}

public static void addRecord (String tableName, String rowKey, String

family, String qualifier, String value)

throws Exception{

try {

HTable table = new HTable(conf, tableName);

Put put = new Put(s(rowKey));

(s(family),s(qualifier),s(value));

(put);

n("insert recored " + rowKey + " to table " +

tableName +" ok.");

} catch (IOException e) {

tackTrace();

PDF 文件使用 "pdfFactory Pro" 试用版本创建

}

}

public static void delRecord (String tableName, String rowKey) throws

IOException{

HTable table = new HTable(conf, tableName);

List list = new ArrayList();

Delete del = new Delete(es());

(del);

(list);

n("del recored " + rowKey + " ok.");

}

public static void getOneRecord (String tableName, String rowKey)

throws IOException{

HTable table = new HTable(conf, tableName);

Get get = new Get(es());

Result rs = (get);

for(KeyValue kv : ()){

(new String(()) + " " );

(new String(ily()) + ":" );

(new String(lifier()) + " " );

(estamp() + " " );

n(new String(ue()));

}

}

public static void getAllRecord (String tableName) {

try{

HTable table = new HTable(conf, tableName);

Scan s = new Scan();

ResultScanner ss = nner(s);

for(Result r:ss){

for(KeyValue kv : ()){

(new String(()) + " ");

(new String(ily()) + ":");

(new String(lifier()) + " ");

(estamp() + " ");

n(new String(ue()));

}

}

PDF 文件使用 "pdfFactory Pro" 试用版本创建

} catch (IOException e){

tackTrace();

}

}

public static void main (String [] agrs) {

try {

String tablename = "student";

String[] familys = {"id", "name","score"};

//able(tablename, familys);

//add record zkb

//ord(tablename,"2","id","","095832");

//ord(tablename,"2","name","","zmac");

//ord(tablename,"2","score","math","97");

//ord(tablename,"2","score","chinese","87");

//ord(tablename,"2","score","english","85");

//add record baoniu

n("===========get one record========");

Record(tablename, "2");

n("===========show all record========");

Record(tablename);

n("===========del one record========");

ord(tablename, "2");

Record(tablename);

} catch (Exception e) {

tackTrace();

}

}

}

运行会,你将看到首先创建数据库student,其字段为id,name,score{english,math,chinese},然后向该数据表插入数据,再查询记录,删除记录等。

PDF 文件使用 "pdfFactory Pro" 试用版本创建

HBASE安装及客户端编程配置

本文发布于:2024-02-08 10:56:54,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170736101467315.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:安装   版本   创建   目录   配置   启动
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23