擬似分散hbaseクラスタの構築

6706 ワード

擬似分散hbaseクラスタの構築
ターゲット
  • hadoop擬似分散クラスタを構築し、ホストディレクトリをデータディレクトリとしてマウントし、9000ポートを露出してデータアクセスポートとする
  • hbase擬似分散クラスタを構築し、hadoop:9000をファイルシステムとして使用する
  • 容器使用、docker-compose簡略化システム使用起動・停止
  • hadoop擬似分散クラスタの構築
    公式サイトから適切なバージョンをダウンロードします.hbaseの現在のバージョンではhadoop 2がサポートされています.6.1+バージョン、2.7.1はサポートされていません0、だから、今度は最新の2.6をダウンロードします.バージョン5
    いくつかのプロファイルは以下の通りです.すべて公式ドキュメントを参照してください.
    core-site.xml
    
        
            fs.defaultFS
            hdfs://hadoop:9000
        
    
    

    hdfs-site.xml
    
        
            dfs.replication
            1
        
        
            dfs.namenode.name.dir
            file:/v/dfs/name
        
        
            dfs.datanode.data.dir
            file:/v/dfs/data
        
    
    

    ここの/v/dfs/はコンテナマッピングホストのディレクトリでdocker-compose.xmlファイルに詳細定義があります
    yarn-site.xml
    
    
    
        
            yarn.nodemanager.aux-services
            mapreduce_shuffle
        
        
            yarn.resourcemanager.hostname
            hadoop
        
    
    

    mapred-site.xml
    
        
            mapreduce.framework.name
            yarn
        
    
    

    dockerfile:dockerfileはhadoopと名付けられた.dockerfile
    # Creates pseudo distributed hadoop 2.6.5
    
    FROM java:on
    MAINTAINER lyalchan "[email protected]"
    
    ENV HADOOP_VERSION=2.6.5
    ADD hadoop-${HADOOP_VERSION}.tar.gz /
    
    ENV PATH /hadoop-${HADOOP_VERSION}/bin:/hadoop-${HADOOP_VERSION}/sbin:$PATH
    ENV HADOOP_PREFIX=/hadoop-${HADOOP_VERSION}
    
    ADD core-site.xml ${HADOOP_PREFIX}/etc/hadoop/
    ADD hdfs-site.xml ${HADOOP_PREFIX}/etc/hadoop/
    ADD mapred-site.xml ${HADOOP_PREFIX}/etc/hadoop/
    ADD yarn-site.xml ${HADOOP_PREFIX}/etc/hadoop/
    
    RUN echo export JAVA_HOME=${JAVA_HOME} >> $HADOOP_PREFIX/etc/hadoop/hadoop-env.sh
    RUN echo export HADOOP_PREFIX=/hadoop-${HADOOP_VERSION} >> $HADOOP_PREFIX/etc/hadoop/hadoop-env.sh
    
    RUN $HADOOP_PREFIX/bin/hdfs namenode -format -force
    
    ADD hadoop.sh /
    RUN chmod +x /hadoop.sh
    
    ENTRYPOINT ["/hadoop.sh"]
    

    説明:
  • java:onはisuper/java-oracle:jdk_に基づくカスタムjavaミラーである8,sshフリーパスワード登録機能を追加し,タイムゾーンを修正した.sshパスワードフリー登録はhadoop、hbaseクラスタ必須条件
  • namenodeは先にフォーマットしなければならないが、ここでは既存のnamenodeをフォーマットするためにforceパラメータが追加されている
  • hadoop.sh hdfsとyarnサービスを開始し、具体的には
  • hadoop.sh
    #!/bin/bash 
    
    service ssh start
    start-dfs.sh
    start-yarn.sh
    sleep 99999999
    

    hbase擬似分散クラスタの構築
    公式サイトから最新バージョンをダウンロードします.ここは1.2です.4バージョン
    プロファイルはhbase-siteが1つしかありません.xml
    
      
        hbase.cluster.distributed
        true
      
      
        hbase.rootdir
        hdfs://hadoop:9000/hbase
      
      
        hbase.zookeeper.property.dataDir
        hdfs://hadoop:9000/zookeeper
      
    
    

    hadoop:9000ポートを使用すると、hadoopは前のhadoopクラスタのホスト名であり、docker-compose.ymlで指定
    dockerfile:hbaseという名前です.dockerfile
    FROM java:on
    MAINTAINER lyalchan "[email protected]"
    
    ENV HBASE_VERSION 1.2.4
    
    ADD hbase-${HBASE_VERSION}-bin.tar.gz /
    ADD hbase-site.xml /hbase-${HBASE_VERSION}/conf/
    ENV PATH /hbase-${HBASE_VERSION}/bin:$PATH
    RUN echo export JAVA_HOME=$JAVA_HOME >> /hbase-$HBASE_VERSION/conf/hbase-env.sh
    
    ADD hbase.sh /
    RUN chmod +x /hbase.sh
    
    ENTRYPOINT ["/hbase.sh"]
    

    hbase.sh hbaseサービスを開始します.具体的には
    hbase.sh
    #!/bin/bash 
    
    service ssh start
    start-hbase.sh
    sleep 99999999
    

    コンテナを構築しdocker-composeを使用して停止
    docker-compose.yml
    version: "2"
    services:
        hadoop:
            build: 
                context: .
                dockerfile: hadoop.dockerfile
            image: hadoop_pseudo_distributed:2.6.5
            container_name: hadoop
            hostname: hadoop
            ports:
                - 50070:50070
                - 8088:8088
            volumes:
                - ./data:/v
             
        hbase:
            build: 
                context: .
                dockerfile: hbase.dockerfile
            image: hbase_pseudo_distributed:1.2.4
            container_name: hbase
            depends_on: 
                - hadoop
            hostname: hbase
            ports:
                - 16010:16010
            volumes:
                - ./data:/v
    

    2つのサービス、hadoopとhbaseを定義します.
  • hadoopはhadoopを使用する.dockerfileはdockerfileとして、hadoop_というimageを生成します.pseudo_distributed:2.6.5、起動容器名hadoop、ホスト名hadoop、2つのポート50070と8088を露出する、ホストの現在のディレクトリの下のdataディレクトリをhdfs-siteからマウントする.xmlは、hadoopのnamenodeディレクトリとdatanodeディレクトリとして使用されることを知ることができる.
  • hbase類似
  • docker1.10以降のネットワーク機能は大幅に強化され、docker daemonにdns機能が追加され、カスタムネットワークを使用するすべてのコンテナがホスト名で相互接続できるようになりました.
    すべてのファイルを1つのディレクトリの下に置いて、全部で12のファイル、1つのdataフォルダ、この12のファイルは
    hadoopファイル
  • hadoop-2.5.6.tar.gz
  • hadoop.dockerfile
  • hadoop.sh
  • core-site.xml
  • hdfs-site.xml
  • yarn-site.xml
  • mapred-site.xml

  • hbaseファイル
  • hbase-1.2.4.tar.gz
  • hbase.dockerfile
  • hbase.sh
  • hbase-site.xml

  • もう一つdocker-composeymlファイル
    システムの起動
    docker-compose up -d
    

    ていしシステム
    docker-compose down
    

    ミラーの再構築
    docker-compose build
    

    または
    docker-compose up -d --build
    

    使用と検証
    hbase shell
    docker exec -it hbase /bin/bash
    

    hbaseコンテナに入り、hbase shellを起動します.
    hbase shell
    

    hbase shellの下にテーブルtestを作成し、2行追加
    create "test", "cf"
    put "test", "row1", "cf:a", "value1"
    put "test", "row1", "cf:b", "value2"
    put "test", "row2", "cf:a", "value3"
    put "test", "row2", "cf:c", "value4"
    

    新規2行row1row2row1a,b両列ありrow2a,c両列あり
    list "test"
    scan "test"
    get "test", "row1"
    get "test", "row2"
    
    

    WEBビュー
    ホストでのlocalhost:16010localhost:50070localhost:8088hbaseとhadoopの運転状況を確認できます