zoukankan      html  css  js  c++  java
  • centos 6 安装Hadoop和Hbase

    本文以三台机器组成的一个Hadoop集群的安装与配置为例。

    三台机器的信息如下:

    hostname 角色          IP

    dc01         mast   192.168.68.57

    dc02         slave   192.168.68.58

    dc03         slave   192.168.68.59

    用户名均为root。

    1.安装JDK1.6并配置好java环境,参考:

    CentOS6 安装Tomcat7   中的安装jdk部分

    2.配置centos的SSH无密码登录:

    ssh-keygen -t dsa -P "" -f ~/.ssh/id_dsa

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

    测试是否配置成功:

    ssh localhost

    第一次运行会提示你是否连接,输入yes回车即可。

    修改机器名(以dc01为例,其他两台机器方法相同):

    vi /etc/sysconfig/network-scripts/ifcfg-eth0 

    增加一行:

    HOSTNAME=dc01

    保存

    vi /etc/sysconfig/network

    HOSTNAME修改为dc01

    保存

    vi /etc/hosts

    增加以下信息:

    192.168.68.57 dc01
    192.168.68.58 dc02
    192.168.68.59 dc03

    保存

    至此,hostname修改完毕。重启机器使得hostname生效。

    配置dc01无密码登录dc02、dc03:

    在dc01中

    scp ./.ssh/authorized_keys dc02:~/.ssh/

    scp ./.ssh/authorized_keys dc03:~/.ssh/

    测试无密码登录配置是否成功:

    ssh dc02

    ssh dc03

    下载hadoop,这里使用的是hadoop-1.0.3

    tar -xzvf hadoop-1.0.3.tar.gz

    mv hadoop-1.0.3 /usr/local/hadoop

    3. 配置Hadoop:

    关闭防火墙:

    service iptables stop(重启失效)
    chkconfig iptables off(重启生效)

    配置NTP服务:

    修改ntp.conf配置文件
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    server 1.cn.pool.ntp.org
    server 1.asia.pool.ntp.org
    server 0.asia.pool.ntp.org
    用本机器与互联网时钟同步,即作为集群中其他机器的ntp服务器
    同理,在其他机器中修改ntp.conf配置文件
    server ntpserver

    配置hadoop:

    echo $JAVA_HOME

    把JAVA_HOME 的值拷贝一下,

    修改hadoop-env.sh

    vim /usr/local/hadoop/conf/hadoop-env.sh

    找到:

    # The java implementation to use. Required.
    # export JAVA_HOME=/usr/lib/j2sdk1.5-sun

    在下面添加一行:

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


    #将hbase中的jar包加入到hadoop的classpath中去:

    #设置hbase的安装目录:

    export HBASE_HOME=/usr/local/hbase

    # Extra Java CLASSPATH elements. Optional.
    export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/hbase-0.94.1.jar:$HBASE_HOME/hbase-0.94.1-test.jar:$HBASE_HOME/conf:${HBASE_HOME}/lib/zookeeper-3.4.3.jar:${HBASE_HOME}/lib/protobuf-java-2.4.0a.jar:${HBASE_HOME}/lib/*

    保存

    修改core-site.xml 

    vim /usr/local/hadoop/conf/core-site.xml

    将文件改为如下:

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

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

    <configuration>
      <property>
        <name>fs.default.name</name>
        <value>hdfs://dc01:9000</value>
      </property>
    </configuration>

    保存

    修改mapred-site.xml 

    vim /usr/local/hadoop/conf/mapred-site.xml  

    <?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>dc01:9001</value>
      </property>
    </configuration>

    保存

    修改masters

    vim /usr/local/hadoop/conf/masters

    改为:

    dc01

    保存

    修改slaves

    vim /usr/local/hadoop/conf/slaves

    改为:

    dc02

    dc03

    保存

    修改HDFS 

    vim  /usr/local/hadoop/conf/hdfs-site.xml

    <?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>/opt/hdfs/name</value>
    <final>true</final>
    </property>
    <property>
    <name>dfs.data.dir</name>
    <value>/opt/hdfs/data</value>
    <final>true</final>
    </property>

    <property>

    <name>dfs.permissions</name>
    <value>false</value>
    </property>

    </configuration>

    创建HDFS的存储目录:

    分别到三台机器上创建以下目录:

    第一台:

    mkdir /opt/hdfs/

    mkdir /opt/hdfs/name/

    mkdir /opt/hdfs/data/

    第二台:

    ssh dc02

    mkdir /opt/hdfs/

    mkdir /opt/hdfs/name/

    mkdir /opt/hdfs/data/

    第三台:

    ssh dc03

    mkdir /opt/hdfs/

    mkdir /opt/hdfs/name/

    mkdir /opt/hdfs/data/

    至此,dc01已经配置完毕,将dc01的hadoop的文件拷贝到其他两台机器:

    scp -r /usr/local/hadoop dc02:/usr/local/

    scp -r /usr/local/hadoop dc03:/usr/local/

     至此整个Hadoop集群配置完毕,下面来启动Hadoop。

    4. 启动Hadoop:

    将hadoop的bin目录添加至当前用户的.bash_profile中:

    cd ~

    vim .bash

    找到PATH一行,在改行后面加入:

    :/usr/local/hadoop/bin/:/usr/local/hbase/bin/

    保存并使其立即生效:

    source .bash_profile 

    这样以后可以在任何目录中运行hadoop命令

    cd /usr/local/hadoop/bin/

    ./hadoop namenode -format

    ./start-all.sh 

    关闭系统防火墙(最好直接停止防火墙服务,或者可以增加允许通过的端口,具体端口我还没来得及查找)

    service iptables stop

    添加防火墙规则,允许通过网页查看hadoop集群的状态.

     vi /etc/sysconfig/iptables

    增加下面两行:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 50030 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 50070 -j ACCEPT

    保存。

    重启iptables服务:

    service iptables restart

    通过浏览器输入下面地址查看集群的状态:

    http://192.168.68.57:50070

    通过浏览器输入下面地址查看Map/Reduce状态:

    http://192.168.68.57:50030

    我的打开后是正在初始化,一直是这样,不知道是什么原因(已解决,关掉防火墙即可)。

    成功后:

    5. 安装Hbase:

    下载Hbase,本文使用的Hbase版本为:hbase-0.94.1.tar.gz

    将文件上传至服务器dc01,解压缩:

    tar -xzvf hbase-0.94.1.tar.gz

    cp -r  hbase-0.94.1 /usr/local/

    改名字:

    mv  /usr/local/hbase-0.94.1 /usr/local/hbase

    修改hbase配置:

    cd   /usr/local/hbase/conf

    vim hbase-env.sh

    将内容修改为下面的配置:

    找到 #export JAVA_HOME=

    修改为: export JAVA_HOME=/usr/java/jdk1.6.0_37

    确保 export HBASE_MANAGES_ZK=true

    保存

    vim hbase-site.xml

    将内容修改为以下部分:

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <!--
    /**
    * Copyright 2010 The Apache Software Foundation
    *
    * Licensed to the Apache Software Foundation (ASF) under one
    * or more contributor license agreements. See the NOTICE file
    * distributed with this work for additional information
    * regarding copyright ownership. The ASF licenses this file
    * to you under the Apache License, Version 2.0 (the
    * "License"); you may not use this file except in compliance
    * with the License. You may obtain a copy of the License at
    *
    * http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
    -->
    <configuration>
    <property>
    <name>hbase.rootdir</name>
    <value>hdfs://dc01:9000/hbase</value>
    </property>
    <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    </property>

    <property>
    <name>hbase.master</name>
    <value>dc01:60000</value>
    </property>
    <property>
    <name>hbase.zookeeper.quorum</name>
    <value>dc01,dc02,dc03</value>
    </property>
    <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/hbase/zookeeper</value>
    </property>
    </configuration>

     保存

    vim  regionservers

    将内容修改为:

    dc02
    dc03

    保存

    至此,Hbase配置完毕.

    将Hbase拷贝到其他机器:

    scp -r /usr/local/hbase dc02:/usr/local

    scp -r /usr/local/hbase dc03:/usr/local

    到现在,hbase安装完毕。

    启动hbase:

    start-hbase.sh

    等脚本执行完毕后,到各个机器上查看下hbase安装是否成功:

    master:

    运行:jps


    25483 Jps
    25275 HMaster
    9804 NameNode
    10039 JobTracker
    25222 HQuorumPeer
    9966 SecondaryNameNode

    说明hadoop和hbase运行均正常,

    dc02:

    运行jps:


    19232 Jps
    4135 DataNode
    19107 HRegionServer
    19033 HQuorumPeer
    4229 TaskTracker

    说明一切正常。

    dc03:

    运行jps:

    jps
    3557 DataNode
    18484 HQuorumPeer
    18720 Jps
    18565 HRegionServer
    3651 TaskTracker

    一切正常。

    在dc01上运行:hbase shell查看hbase是否正常:

    hbase shell
    HBase Shell; enter 'help<RETURN>' for list of supported commands.
    Type "exit<RETURN>" to leave the HBase Shell
    Version 0.94.1, r1365210, Tue Jul 24 18:40:10 UTC 2012

    hbase(main):001:0>

    说明进入了hbase的shell环境,现在用list命令来看一下hbase中有哪些表:

    hbase(main):001:0> list
    TABLE
    0 row(s) in 0.9550 seconds

    hbase(main):002:0>

    说明hbase运行是正常的。

    至此,可以说明hbase安装并启动成功了。

    下面为hbase的一些基本操作,可以忽略。

    Hbase基本操作:

    接下来创建一张表:

    hbase(main):002:0> create 'user_info','name'
    0 row(s) in 1.2780 seconds

    hbase(main):003:0>

    创建成功,查看一下表是否存在:

    hbase(main):003:0> list
    TABLE
    user_info
    1 row(s) in 0.0500 seconds

    hbase(main):004:0>

    表果然存在。

    现在往表中插入一条数据:

    put 'user_info','1','name:','Tom'

    插入完毕。

    现在查询是否表中存在数据:

    输入:scan 'user_info'

    显示:

    ROW COLUMN+CELL
    1 column=name:, timestamp=1376370874591, value=Tom

    删除表:

    删除hbase表时,需要先disable '表名称',然后在drop '表名称':

    输入:disable 'user_info'
    显示:0 row(s) in 2.1390 seconds

    drop 'user_info'
    0 row(s) in 1.4880 seconds

    查询该表是否还存在(用list)命令:

    输入:list

    显示:
    TABLE
    0 row(s) in 0.0320 seconds

    说明该表已经被我删除。

    至此,所有工作圆满结束。

     

  • 相关阅读:
    (五)表单类的创建和使用
    (四)注册登录--重用Django
    (三)Django模板语言
    (二)Django模板的应用
    (一)Django项目架构介绍
    SOA测试之浏览器插件
    (2) Tomcat启动Jenkins
    (1) Jenkins + Subversion + Maven + TestNG
    [翻译] API测试最佳实践
    [原创] 算法之递归(4)- 应用
  • 原文地址:https://www.cnblogs.com/sixiweb/p/2919305.html
Copyright © 2011-2022 走看看