Hadoop+Hbase+Zookeeper集群部署

一 准备工作

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

127.0.0.1             localhost

10.5.83.191        master

10.5.83.192        hbase1

10.5.83.190        hbase2

2、修改主机名

修改/etc/hostname的内容分别为master、hbase1、hbase2

3、配置java环境

本集群使用的是jdk1.7.0_67

a)、将jdk解压到/home/ld/Lee/目录下

b)、在/etc/profile中添加一下内容

export   JAVA_HOME=/home/ld/Lee/jdk1.7.0_67

export    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export    PATH=$JAVA_HOME/bin:$PATH

注:修改了profile和hosts、hostname的内容后都要使用source命令使之生效

例如: source  /etc/profile

 

4.配置三台机器无密码ssh登陆

a)以master为例,在master上执行如下操作

         $ 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

       把master上的id_dsa.pub文件追加到hbase1和hbase2的authorized_keys 内(以hbase1节点为例):

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

$ cd ~/.ssh

$ scp id_dsa.pub  hbase1:/home/ld

b)登录hbase1,进入/home/ld目录执行:

$ cat id_dsa.pub >>.ssh/authorized_keys

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

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

二 Hadoop集群安装

1.下载Hadoop安装文件,这次安装用的是2.6.0版(hadoop-2.6.0.tar.gz)

解压hadoop到/home/ld/Lee/目录下

tar -zxvf  hadoop-2.6.0.tar.gz -C /home/ld/Lee

2.修改/home/ld/Lee/hadoop-2.6.0/etc/hadoop/hadoop-env.sh文件的环境变量:

主要是添加java路径

export JAVA_HOME=/home/ld/Lee/jdk1.7.0_67

3.修改/home/ld/Lee/etc/hadoop/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/ld/hadoop_tmp</value>

<description>A base for other temporary directories.

</description>

       </property>

<property>

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

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

</property>

</configuration>

4.修改/home/ld/Lee/hadoop-2.6.0/etc/hadoop/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/ld/hadoop/data</value>

</property>

<property>

<name>dfs.replication</name>

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

</property>

</configuration>

5.修改/home/ld/Lee/hadoop-2.6.0/etc/hadoop/下的master和slaves文件

master文件写入

master

slaves文件写入

hbase1

hbase2

6.修改/etc/profile配置文件,在末尾追加以下内容

export JAVA_HOME=/home/ld/Lee/jdk1.7.0_67

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

export PATH=$JAVA_HOME/bin:$PATH

7.将/home/ld/Lee/hadoop-2.6.0拷贝到hbase1和hbase2对应的目录下。将/ect/profile和/etc/hosts也拷贝到hbase1和hbase2机器上

$ scp -r hadoop-2.6.0 hbase1:/home/ld/Lee/

$ scp -r hadoop-2.6.0 hbase2:/home/ld/Lee/

8.配置结束后,在bin文件夹下格式化hdfs

./hadoop namenode –format

9. 配置hadoop路径

a)在/etc/profile中添加以下语句

export    HADOOP_HOME=/home/ld/Lee/hadoop-2.6.0

export    PATH=$HADOOP_HOME/bin:$PATH

b)然后启动hdfs,

start-all.sh

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

Master:


Hbase1or2:

 

三 安装HBase

本次安装用的HBase的版本为0.98.11-hadoop2-bin.tar.gz(hbase至少0.96以上的版本否则与hadoop2.6不兼容),下载后解压缩到/home/ld/Lee目录下并改名为hbase

       1、修改hbase/conf目录下hbase-site.xml配置文件,在configuration里添加

<property>

<name>hbase.rootdir</name>

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

<description>HBase数据存储目录</description>

</property>

<property>

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

<value>true</value>

<description>指定HBase运行的模式:false:单机/伪分布;true:完全分布</description>

</property>

<property>

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

<value>master,hbase2,hbase3</value>

<description>指定ZooKeeper集群</description>

</property>

<property>

<name>hbase.master</name>

<value>hdfs://master:60000</value>

<description>指定Master位置</description>

</property>

<property>

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

<value>/home/ld/zookeeper_data</value>

</property>

<property>

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

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

 <description>The bind address for theHBase Master web UI

</description>

</property>

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

export JAVA_HOME=/home/ld/Lee/jdk1.7.0_67

export HBASE_CLASSPATH=/home/ld/Lee/hadoop-2.6.0/etc/hadoop

export HBASE_HEAPSIZE=2048

export HBASE_MANAGES_ZK=false

其中,JAVA_HOME表示java安装目录,HBASE_CLASSPATH指向存放有Hadoop配置文件的目录,这样HBase可以找到HDFS的配置信息,由于本文Hadoop和HBase部署在相同的物理节点,所以就指向了Hadoop安装路径下的conf目录。HBASE_HEAPSIZE单位为MB,可以根据需要和实际剩余内存设置,默认为1000。HBASE_MANAGES_ZK=false指示HBase使用已有的Zookeeper而不是自带的。

3、编辑regionservers文件

master

hbase1

hbase2

4、配置另外两台

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

$ scp –r  /home/ld/Lee/hbase  hbase1:/home/ld/Lee/

$ scp -r  /home/ld/Lee/hbase  hbase2: /home/ld/Lee/

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

5、配置hbase路径

在/etc/profile中添加下述语句

export     HBASE_HOME=/home/ld/Lee/hbase

export     PATH=$HBASE_HOME/bin:$PATH

四 配置zookeeper

本次安装的是zookeeper-3.4.6,将其解压到/home/ld/Lee/目录下

1、将zookeeper-3.4.6/conf目录下的zoo_Sample.cfg文件改名为zoo.cfg

2、修改zoo.cfg配置

dataDir=/home/ld/Lee/zookeeper-3.4.6/zookeepdir/zookeeper-data

dataLogDir=/home/ld/Lee/zookeeper-3.4.6/zookeepdir/logs

server.1=master:2888:3888

server.2=hbase1:2888:3888

server.3=hbase2.2888:3888

3、创建dataDir参数指定的目录,并在目录下创建文件,命名为myid

a)     zookeeper-3.4.6下建立zookeepdir

b)     zookeepdir下建立zookeeper-data与logs

c)     在zookeeper-data执行下述命令

touch myid

d)     编辑myid的内容为1

4、将zookeeper-3.4.6复制到hbase1与hbase2相应的目录下(命令同复制hadoop),并分别将myid内容改为2和3(只要三台机的myid内容不一样即可)

5、配置zookeeper路径

在/etc/profile中添加下述内容

export    ZOOKEEPER_HOME=/home/ld/Lee/zookeeper-3.4.6

export     PATH=$ZOOKEEPER_HOME/bin:$PATH

      

五 启动集群

       启动顺序为hdfs>zookeeper>hbase

       hdfs 启动:start-all.sh   (可以通过http://master:50070查看各节点状态)

       zookeeper 启动:zkServer.sh start

       hbase     启动:start-hbase.sh(可以通过http://192.168.52.128:60010/master-status查看状态)

启动后使用jps命令查看状态

master:


hbase1or2

猜你喜欢

转载自blog.csdn.net/dhtx_wzgl/article/details/45502919