部署HBase系统(分布式部署)

1.简介

HBase系统主要依赖于zookeeper和hdfs系统,所以部署HBase需要先去部署zookeeper和hadoop

 

2.部署开始

  IP或者HOSTNAME需要根据自身主机信息设定。

  部署资源:

      两个节点:xufeng-2(管理节点) xufeng-3(从节点)

xufeng-3 xufeng-2

zookeeper

namenode

SecondaryNameNode

master

 

datanode

regionserver 

 

  部署版本:

      CDH5.4.2

  1.设定主机hostname

      #adduser hadoop  //添加一个用户
      #passwd hadoop   //修改密码

  2.设定主机hostame  

vi /etc/sysconfig/network

 

  3.设定hosts文件:

10.211.55.18 xufeng-3
10.211.55.21 xufeng-2

  4.拷贝安装包,按照如下设定安装包路径

  

  其中组件文件夹通过软连接到具体安装目录,配置文件独立于安装目录,这样便于后续版本的替换

  安装包可以去官网:http://archive.cloudera.com/cdh5/cdh/5/下载。

 

  5.安装jdk,如下版本,hadoop已经全面放弃了1.6版本,所以请安装1.7及以上版本

jdk-7u79-linux-x64.rpm

  6.设定无密码登录

hadoop用户下:

xufeng-3上执行: ssh-keygen cd ~/.ssh scp id_rsa.pub xufeng-2:/home/hadoop/.ssh/authorized_keys xufeng-2上执行 ssh-keygen cd ~/.ssh scp id_rsa.pub xufeng-3:/home/hadoop/.ssh/authorized_keys
增加:
    启动的时候需要ssh到自身,所以也需要将自身的公钥发布给自己:
    在各个节点上执行:
     cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  

  7.设定环境变量,通过环境变量的设定,各个服务可以找到对应的安装路径和配置文件路径  

[hadoop@xufeng-3 hbase-config]$ vi ~/.bash_profile 


#hadoop
export HADOOP_HOME=/opt/hadoop/hadoop
export HADOOP_CONF_DIR=/opt/hadoop/hadoop-config
export HADOOP_LOG_DIR=/opt/hadoop/hadoop/xufeng
#hbase
export HBASE_HOME=/opt/hadoop/hbase
export HBASE_CONF_DIR=/opt/hadoop/hbase-config

#zookeeper
export ZOOKEEPER_HOME=/opt/hadoop/zookeeper
export ZOOCFGDIR=/opt/hadoop/zookeeper-config

#spark
export SPARK_HOME=/opt/hadoop/spark
export SPARK_CONF_DIR=/opt/hadoop/spark-config


PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:SPARK_HOME/bin


export PATH

 

  配置文件和包分割开来,便于后续方便的替换包(版本)。

  8.【单节点】设定zookeeper,启动zookeeper

   a.将zookeeper安装包内的conf文件夹下的内容拷贝到zookeeper-config目录下,并生成zoo.cfg文件  

[hadoop@xufeng-3 bin]$ cd /opt/hadoop/zookeeper-config/
[hadoop@xufeng-3 zookeeper-config]$ ll
总用量 20
-rwxr-x---. 1 hadoop hadoop  535 6月  12 18:05 configuration.xsl
-rwxr-x---. 1 hadoop hadoop 2693 6月  12 18:05 log4j.properties
-rw-rw-r--. 1 hadoop hadoop   72 6月  12 18:13 zoo.cfg
-rw-rw-r--. 1 hadoop hadoop 3633 6月  12 18:13 zookeeper.out
-rwxr-x---. 1 hadoop hadoop  808 6月  12 18:05 zoo_sample.cfg

 

  zoo.cfg内容

[hadoop@xufeng-3 zookeeper-config]$ vi zoo.cfg 

tickTime=2000
dataDir=/opt/hadoop/hadoop_data/zookeeper
clientPort=2181
~                  

  b.启动zookeeper

zkServer.sh start

  检查线程

[hadoop@xufeng-3 zookeeper-config]$ jps
5299 QuorumPeerMain
5634 Jps

  9.设定hadoop,启动hadoop

  需要去主从节点上设定如下几个文件,这些文件都放在了/opt/hadoop/hadoop-config下,通过环境变量的指定进程能够读取到。

  其中如果无特殊需要hadoop-env.sh和log4j文件只从安装包中拷贝不修改。

 

core-site.xml
hdfs-site.xml
hadoop-env.sh
log4j.properties
slaves

  core-site.xml内容:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://xufeng-3:9000</value>
        <description>NameNode URI</description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:///opt/hadoop/hadoop_data/hadoop/hdfs/temp</value>
        <description>Abase for other temporary directories.</description>
    </property>
</configuration>

   hdfs-site.xml内容:dfs.replication设定为1,因为我们只有一个datanode

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///opt/hadoop/hadoop_data/hdfs/namenode</value>
        <description>NameNode directory for namespace and transaction logs storage.</description>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///opt/hadoop/hadoop_data/hdfs/datanode</value>
        <description>DataNode directory</description>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.datanode.use.datanode.hostname</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
        <value>false</value>
    </property>
    <property>
         <name>dfs.namenode.http-address</name>
         <value>xufeng-3:50070</value>
         <description>Your NameNode hostname for http access.</description>
    </property>
    <property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>xufeng-3:50090</value>
         <description>Your Secondary NameNode hostname for http access.</description>
    </property>
</configuration>

  slaves内容: 只在xufeng-2这台机器上启动datanode

xufeng-2

 

  启动hdfs

start-dfs.sh
注意:
    听说centOS6有一个bug:
    需要关闭防火墙才能联通端口:

  service iptables stop 
  chkconfig iptables off

 

  进入页面:hdfs安装完成: 

 

10,设定HBase,启动HBase

  的地水电费

  将配置文件从安装目录中拷贝到/opt/hadoop/hbase-config,主要有如下文件:

  

  其中hdfs-site.xml为软连接到hadoop的配置文件,因为HBase是作为hdfs的客户端角色。

 

  hbase-env.sh内容(修改点):不要让HBase使用集成的zookeeper,而是使用我们在xufeng-3上启动的zookeeper服务 

# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false

 

  hbase-site.xml内容:

<configuration>
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
<property>
  <name>hbase.rootdir</name>
  <value>hdfs://xufeng-3:9000/hbase</value>
</property>
<property>
  <name>hbase.zookeeper.quorum</name>
  <value>xufeng-3:2181</value>
</property>
</configuration>

 

 

  regionservers内容:只在xufeng-2这个从节点上启动regionserver服务

xufeng-2

 

  

  在xufeng-3节点上启动HBase:

start-hbase.sh

  进入页面:HBase安装完成:

 

 

            

  

  

      

posted on 2016-06-17 16:51  xf-xrh-xf  阅读(506)  评论(0编辑  收藏  举报

导航