zoukankan      html  css  js  c++  java
  • 【原创】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,其中不能出现主节点的名字。

     

  • 相关阅读:
    Insert Sort Singly List
    Binary Search Tree Iterator
    React的组件化
    React的虚拟DOM
    如何依靠代码提高网络性能
    读高性能JavaScript编程 第三章
    读高性能JavaScript编程 第二章 让我知道了代码为什么要这样写
    读高性能JavaScript编程 第一章
    固本培元之一:栈和堆
    学习笔记
  • 原文地址:https://www.cnblogs.com/nanxin521/p/4111371.html
Copyright © 2011-2022 走看看