【原创】Hadoop HBase集群安装

HADOOP HBASE 安装部署

Hadoop 1.2.1版本   HBase 0.94.14版本

声明:所有的配置均是在主节点上完成,配置完成后只需将主节点已配置好的文件夹拷贝到从节点对应的目录即可。

集群的扩展修改部分:

1、修改/hadoop-1.2.1/conf/下的masterslaves文件

2、修改/etc/hosts配置文件

3、编辑regionservers文件,添加或者删除RegionServer

 

Linux主机名改动:

完整:

第一步:

#hostname oratest(修改后的名字 )

第二步:

修改/etc/sysconfig/network中的hostname

第三步:

修改/etc/hosts文件

重启。。。。。。

 

权限更改:chmod u+x /home/lt/hadoop/bin/*

 

切记:任何配置文件中添加东西时只在指定位置添加,不要随意更改配置文件内容。所有文件第一行都不要空出,要置顶。

 

一 Hadoop集群安装

注意:配置中如果是master统一是master,masternode就统一是masternode。不可以出现hosts文件中是master而其他地方时masternode的情况。

1、Hadoop的安装依赖Java环境,首先安装JDK ,可参考网站

http://blog.csdn.net/tabactivity/article/details/12114941 方法一此处不再赘述。

10.9.80.36 masternode

10.9.80.34 hbase1

10.9.80.35 hbase2

2、配置三台机器无密码ssh登陆

masternode为例,在masternode上执行如下操作:

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

直接回车,完成后会在~/.ssh/生成两个文件:id_dsa id_dsa.pub。这两个是成对出现,类似钥匙和锁。再把id_dsa.pub 追加到授权key 里面(当前并没有authorized_keys文件)

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

完成后可以实现无密码登录本机:

$ ssh localhost

把masternode上的id_dsa.pub 文件追加到hbase1和hbase2的authorized_keys 10.9.80.34节点为例)

3、拷贝masternode的id_dsa.pub文件:(必须在.ssh目录下拷贝才会成功

 $ cd ~/.ssh

$ scp id_dsa.pub hbase1:/root/

b. 登录hbase1,进入/root目录执行:

$ cat id_dsa.pub >> .ssh/authorized_keys

之后可以在masternode上不输入密码直接访问hbase1 ,同样方式配置无密码登录hbase2。

同样方法配置hbase1 hbase2的对其他机器无密码登录。

4、下载Hadoop 安装文件,这次安装用的是1.2.1(hadoop-1.2.1-bin.tar.gz)

5、在/home目录下新建opt文件夹,解压hadoop/opt目录下

tar -zxvf  hadoop-1.2.1-bin.tar.gz  -C /home/opt

6、修改/home/opt/hadoop-1.2.1/conf/hadoop-env.sh文件的环境变量:

主要是添加java路径

export JAVA_HOME=/usr/java/jdk1.6.0_45

7、修改/home/opt/hadoop-1.2.1/conf/core-site.xml配置文件,在configuration中添加内容如下:

<?xml version="1.0"?>

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

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

  <name>hadoop.tmp.dir</name>

  <value>/home/hadoop_tmp</value>

  <description>A base for other temporary directories.

</description>

</property>

<property>

   <name>fs.default.name</name>

   <value>hdfs://masternode:9000</value>(加黑部分为主节点名字)

</property>

</configuration>

8、修改/home/opt/hadoop-1.2.1/conf/hdfs-site.xml配置文件,在configuration中添加内容如下:

<?xml version="1.0"?>

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

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

  <name>dfs.name.dir</name>

  <value>${hadoop.tmp.dir}/dfs/name</value>

</property>

<property>

  <name>dfs.data.dir</name>

  <value>/home//hadoop-1.2.1/data</value>

</property>

<property>

  <name>dfs.replication</name>

  <value>2</value>   (备份数目)

</property>

</configuration>

9、修改/home/opt/hadoop-1.2.1/conf/mapred-site.xml配置文件,在configuration中添加内容如下:

 

<?xml version="1.0"?>

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

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

  <name>mapred.job.tracker</name>

  <value>masternode:9001</value>(主节点名字)

</property>

</configuration>

10、修改/home/opt/hadoop-1.2.1/conf/下的masterslaves文件

master文件写入

masternode

slaves文件写入

hbase1

hbase2

11、修改/etc/hosts配置文件,内容如下:

127.0.0.1  localhost

10.9.80.36 masternode

10.9.80.34 hbase1

10.9.80.35 hbase2

12、修改/etc/profile配置文件,在末尾追加以下内容,并输入source/etc/profile使之生效:

export JAVA_HOME=/usr/java/jdk1.6.0_45

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$PATH

13、将/home/opt/hadoop-1.2.1拷贝到hbase1hbase2对应的目录下。将/ect/profile/etc/hosts也拷贝到hbase1hbase2机器上。

(注意profile需要做生效操作。source /etc/profile

$ scp -r hadoop-1.2.1 hbase1:/home/opt/

$ scp -r hadoop-1.2.1 hbase2:/home/opt/

14、配置结束后,在bin文件夹下格式化hdfs./hadoop namenode –format

然后启动hdfs./start-all.sh

jps命令查看是否成功启动所有进程。

二 安装HBase

本次安装用的HBase的版本为0.94.14-security,下载后解压缩到/home/opt目录下

1、修改hbase-site.xml配置文件,在configuration里添加

<property>

    <name>hbase.rootdir</name>

    <value>hdfs://masternode:9000/hbase</value>(主节点名字)

</property>

<property>

    <name>hbase.cluster.distributed</name>

    <value>true</value>

</property>

<property>

      <name>hbase.zookeeper.quorum</name>

      <value>masternode,hbase1,hbase2</value>

</property>

<property>

      <name>hbase.zookeeper.property.dataDir</name>

      <value>/home/opt/zookeeper_data</value>

</property>

<property>

    <name>hbase.master.info.bindAddress</name>

    <value>masternode</value>(主节点名字)

    <description>The bind address for the HBase Master web UI

    </description>

</property>

2、修改hbase-env.sh文件,加入:

export JAVA_HOME=/usr/java/jdk1.6.0_45

export HBASE_MANAGES_ZK=true

3、编辑regionservers文件,添加两个RegionServer

hbase1

hbase2

4、配置另外两台

hbase安装文件拷贝到另两台机器:

$ scp -r hbase-0.94.14-security hbase1:/home/opt/

$ scp -r hbase-0.94.14-security hbase2:/home/opt/

 

然后登陆hbase1和hbase2的/home/opt/下,用ls命令查看即可看到对应的文件。

运行HBase首先开启Hadoop,开启Hadoop之后,在HBasebin目录下执行

./start-hbase.sh,用jps查看是否启动成功

另外可以通过web页面查看集群状态等(需要设置好本地hosts):

http://master:60010 (外地访问的话将master换成IP地址)

注意事项:三台机器要把防火墙关闭,否则,集群间连接不上;

HBase配置完成后要检查三台机器的时间,误差3s内可以,否则,满足不了时钟一致性,开启不了HBase集群

 

关于异常:java.io.IOException:incompatible namespaceIDs in /home/admin/joe.wangh/hadoop/data/dfs.data.dir.namenode namenodeID = 898136669;datanode namespaceID = 212744065

http://blog.csdn.net/wanghai__/article/details/5752199 给出两种解决办法。

http://blog.csdn.net/zwx19921215/article/details/20804991 安全模式修改方法。

Hadoopbin文件下或者是HBASEbin文件,其master文件中添加主节点的名字如:master。在regionserver或者是slaves文件中添加子节点的名字如:hbase1 hbase2,其中不能出现主节点的名字。

 

posted on 2014-11-20 19:48  南馨  阅读(237)  评论(0编辑  收藏  举报

导航