1. 程式人生 > >Hbase安裝kerberos及遠端登入配置

Hbase安裝kerberos及遠端登入配置

1. 安裝ZK, 單機多例項配置及啟動

·        建立data目錄, 建立datalog目錄

·         1040  mkdir data

 1041  cd data/

 1043  mkdir slave1

 1044  mkdir slave2

 1045  mkdir slave3

 1046  cd ..

 1047  mkdir datalog

 1048  cd datalog/

 1049  mkdir slave1

 1051  mkdir slave2

 1052  mkdir slave3

·        配置zoo.cfg,拷貝配置檔案,生成三個配置檔案:zoo-slave1.cfg:

(另外兩個 zoo-slave2.cfg 和zoo-slave3.cfg)。

·        Zoo-slave1.cfg:

·        tickTime=2000

initLimit=10

syncLimit=5

dataDir=/opt/zookeeper-3.4.8/data/slave1

clientPort=2181

dataLogDir=/opt/zookeeper-3.4.8/datalog/slave1

server.1=mj1:2889:3889

server.2= mj1:2890:3890

server.3= mj1:2891:3891

zoo-slave2.cfg:

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/opt/zookeeper-3.4.8/data/slave2

clientPort=2182

dataLogDir=/opt/zookeeper-3.4.8/datalog/slave2

server.1= mj1:2889:3889

server.2= mj1:2890:3890

server.3= mj1:2891:3891

zoo-slave3.cfg:

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/opt/zookeeper-3.4.8/data/slave3

clientPort=2183

dataLogDir=/opt/zookeeper-3.4.8/datalog/slave3

server.1= mj1:2889:3889

server.2= mj1:2890:3890

server.3= mj1:2891:3891

·        如何區分到底是第幾個例項呢,就要有個id檔案,名字必須是myid

[[email protected] data]# echo "1" > slave1/myid

[[email protected] data]# echo "2" > slave2/myid

[[email protected] data]# echo "3" > slave3/myid

·        啟動

bin/zkServer.sh start zoo-slave1.cfg 

bin/zkServer.sh start zoo-slave2.cfg 

bin/zkServer.sh start zoo-slave3.cfg

bin/zkServer.sh status zoo-slave1.cfg

bin/zkCli.sh

2. ZK + kerberos

·        KDC:

kadmin.local:  addprinc  -randkey zookeeper/

kadmin.local:  addprinc  -randkey [email protected]

kadmin.local:  xst -k zookeeper.keytab zookeeper/

kadmin.local:  xst -norandkey -k zkcli.keytab [email protected]

·        zoo-slave1.cfg,zoo-slave2.cfg,zoo-slave3.cfg:

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider

jaasLoginRenew=3600000

·        /opt/zookeeper-3.4.8/conf/jaas.conf

Server {

  com.sun.security.auth.module.Krb5LoginModule required

  useKeyTab=true

  keyTab="/opt/zookeeper-3.4.8/conf/zookeeper.keytab"

  storeKey=true

  useTicketCache=false

  principal="zookeeper/[email protected]YOUR.DOMAIN_NAME";

};

Client {

  com.sun.security.auth.module.Krb5LoginModule required

  useKeyTab=true

  keyTab="/opt/zookeeper-3.4.8/conf/zkcli.keytab"

  storeKey=true

  useTicketCache=false

};

·        /opt/zookeeper-3.4.8/conf/java.env

export JVMFLAGS="-Djava.security.auth.login.config=/opt/zookeeper-3.4.8/conf/jaas.conf"

3. HBASE

·        Hbase-site.xml:

<configuration>

<property>

<name>hbase.rootdir</name>

<value>hdfs://mj1:9000/hbase</value>

</property>

<property>

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

<value>true</value>

</property>

<property>

<name>hbase.tmp.dir</name>

<value>/opt/hbase-1.2.1/tmp</value>

</property>

<property>

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

<value>mj1</value>

</property>

<property>

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

<value>2181</value>

</property>

<property>

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

<!--<value>/opt/hbase-1.2.1/zookeeper</value>-->

<value>/opt/zookeeper-3.4.6</value>

</property>

<property>

        <name>hbase.security.authorization</name>

        <value>true</value>

    </property>

<!--<property>

       <name>hbase.coprocessor.master.classes</name>

       <value>org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor</value>

   </property>

   <property>

       <name>hbase.coprocessor.region.classes</name>

      <value>org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor</value>

   </property>-->

<property>

<name>hbase.security.authentication</name>

<value>kerberos</value>

</property>

<property>

<name>hbase.regionserver.kerberos.principal</name>

<value>hbase/[email protected]YOUR.DOMAIN_NAME</value>

</property>

<property>

<name>hbase.regionserver.keytab.file</name>

<value>/opt/hbase-1.2.1/conf/hbase.keytab</value>

</property>

<property>

<name>hbase.master.kerberos.principal</name>

<value>hbase/[email protected]YOUR.DOMAIN_NAME</value>

</property>

<property>

<name>hbase.master.keytab.file</name>

<value>/opt/hbase-1.2.1/conf/hbase.keytab</value>

</property>

</configuration>

·        hbase conf目錄建立jaas.conf,檔案內容和zk配置一致

Client {

  com.sun.security.auth.module.Krb5LoginModule required

  useKeyTab=true

  keyTab="/opt/zookeeper-3.4.8/conf/zkcli.keytab"

  storeKey=true

  useTicketCache=false

};

·        hbase-env.sh新增

export HBASE_OPTS="$HBASE_OPTS -Djava.security.auth.login.config=/opt/hbase-1.2.1/conf/jaas.conf"

export HBASE_MANAGES_ZK=false

·        zoo.cfg新增下兩行

kerberos.removeHostFromPrincipal=true 

kerberos.removeRealmFromPrincipal=true

·        重啟zk和Hbase

若要在client端登入遠端的Hbase,則還需要修改如下配置:

/opt/hadoop-2.7.2/etc/hadoop/core-site.xml:

新增如下配置:

<property>

   <name>hadoop.proxyuser.hbase.hosts</name>

   <value>*</value>

</property>

<property>

   <name>hadoop.proxyuser.hbase.groups</name>

   <value>*</value>

</property>

其中,name中的hbase為client端登入遠端hbase時所用的kerberos的principal。

Client端需要的配置檔案內容如下:

<configuration>

<property>

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

<value>mj1</value>

</property>

<property>

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

<value>2181</value>

</property>

<property>

       <name>hbase.security.authorization</name>

       <value>true</value>

   </property>

<property>

<name>hbase.security.authentication</name>

<value>kerberos</value>

</property>

<!--<property>

<name>hbase.zookeeper.client.kerberos.principal</name>

<value>client/[email protected]YOUR.DOMAIN_NAME</value>

</property>

<property>

<name>hbase.zookeeper.client.keytab.file</name>

<value>/opt/hbase-1.2.1/back_conf/client.keytab</value>

</property>-->

<property>

<name>hbase.regionserver.kerberos.principal</name>

<value>hbase/[email protected]YOUR.DOMAIN_NAME</value>

</property>

<property>

<name>hbase.master.kerberos.principal</name>

<value>hbase/[email protected]YOUR.DOMAIN_NAME</value>

</property>

</configuration>

在client端,kinit –kt hbase.keytab hbase/[email protected]YOUR.DOMAIN_NAME,使得client以hbase使用者的身份去和zookeeper連線,以hbase使用者的身份去和master和regionserver互動。

配置錯誤集結:

Org.apache.hadoop.ipc.RemoteException:User:rootis not allowed to impersonate root;

解決方法:參照上述對hadoop中core-site.xml的新增配置項。

注意:在hbase安裝了kerberos之後,若以[email protected]YOUR.DOMAIN_NAME的身份登入hbase,在zookeeper上的/hbase目錄下建立znode節點的時候,所建立的節點的許可權會變為

'world,'anyone
: r
'sasl,'zkcli
: cdrwa

所以,要是繼續在/hbase目錄下建立節點,則訪問節點的時候會報錯:Authentication is not valid

若是使用zkcli命令列建立節點,則用如下命令create / znode1 sasl:[email protected]YOUR.DOMAIN_NAME

相關推薦

Hbase安裝kerberos遠端登入配置

1. 安裝ZK, 單機多例項配置及啟動 ·        建立data目錄, 建立datalog目錄 ·         1040  mkdir data  1041  cd data/  1043  mkdir slave1  1044  mkdir slave2  10

ubuntu下MySQL的安裝遠端連線配置

1.命令視窗中輸入sudo apt-get install mysql-server mysql-client 即可(配置檔案位置:/etc/mysql/my.cnf 啟動檔案位置:/etc/init.d/mysql) 2.安裝期間會提示你輸入ROOT賬號的密碼。 3.安裝完成後,就可以利用命令mysq

hyper-v 安裝Centos網絡配置

圖片 tle 項目 AR 位置 正常 add get IT 新安裝的Centos系統默認情況下是不能上網的,需要經過相應的配置;選擇對應的虛擬機,點擊“虛擬交換機管理器”; 設置hyper-v上的網絡及分配cpu、內存、磁盤等資源。 安裝CentOS7 過程中,先設置網關

Mac 安裝jdk環境變數配置

一、訪問jdk官網下載 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 注意勾選下圖紅色方框區域,選擇需要系統版本下載 二、安裝jdk

SSH遠端登入配置檔案sshd_config詳解

SSH由客戶端和服務端的軟體組成,在客戶端可以使用的軟體有SecureCRT、putty、Xshell等, 而在伺服器端執行的是一個sshd的服務,通過使用SSH,可以把所有傳輸的資料進行加密,而且也能夠 防止dns和IP欺騙,此外,SSH傳輸的資料是經過壓縮的,可以加快傳輸速度 其伺服器端的配

安裝JDK環境變數配置(Linux,Windows)

一、Linux作業系統 1、到oracle官網下載JDK安裝包(Linux) 2、解壓安裝包 tar -zxvf jdk-8u172-linux-x64.tar.gz 3、配置環境變數 開啟 vi /etc/profile 檔案,將以下內容拷貝到profile檔案末尾

WIN10下,Jdk的安裝方法環境變數配置

JDK的安裝 首先下載JDK:link. 1、選擇接受協議,不然無法下載; 2、點選x64後面的藍色連結獲取下載地址。 下載完成後雙圖示進入安裝介面,點選下一步 選擇安裝路徑並點選下一步: 然後會出現如下介面: 這步實際上是安裝JRE,JDK中也包

安裝JDK環境變數配置(MAC版本)

1、訪問Oracle官網 http://www.oracle.com,瀏覽到首頁的底部選單 ,然後按下圖提示操作: 2.點選“JDK DOWNLOAD”按鈕: 3.選擇“Accept Lisence Agreement”同意協議: 4.點

Gitlab安裝使用漢化配置

一、GitLab簡介 GitHub是2008年由Ruby on Rails編寫而成,與業界聞名的Github類似;但要將程式碼上傳到GitHub上面,而且將專案設為私有還要收費。GitLab 是一個用於倉庫管理系統的開源專案,使用Git作為程式碼管理工具,可通過Web介面

Ubuntu中安裝zookeeperkafka並配置環境變數

首先安裝zookeeper zookeeper需要jdk環境,請在jdk安裝完成的情況下安裝zookeeper 1.從官網下載zookeeper http://mirror.bit.edu.cn/apache/zookeeper/,版本可以根據自己需要選擇使用,

Jenkins環境搭建——安裝外掛全域性安全配置(二)

一、安裝外掛 上篇安裝jenkins時,我們已經安裝了推薦的外掛,這裡我們再安裝兩個子認為不錯的外掛。 1、在jenkins頁面上點選“系統管理” 2、再點選“外掛管理” 3、選擇“可選外掛”,在搜尋框中輸入rebuilder。此外掛用於重新構建。 4、第二個需要安

MyEclipse 8.6的SVN外掛安裝方法部分內容配置!

1.開啟HELP->MyEclipse Configuration Center,切換到SoftWare標籤頁。 3.在左邊欄中找到Personal Site中找到SVN展開。將Core SVNKit Library和Optional JNA Library新增

【4】配置錄---MAC安裝JDK環境變數配置

一、安裝 請參照 二、配置JDK環境變數 1.檢視是否存在.bash_profile的隱藏配置檔案 ls -lah 2.建立一個.bash_profile的隱藏配置檔案(如果你是為編輯已存在的配置檔案,省略此步驟) touch .bash_profile 3.

HBase安裝以及多個HMaster配置步驟

1.解壓縮hbase-0.94.6.tar.gz tar zxvf hbase-0.94.6.tar.gz 2.配置hbase環境變數/etc/profile export HBASE_HOME=/home/hadoop/hbase export PATH=$PATH:$H

Raspberry Pi 遠端登入配置

1. 設定支援SSH遠端登入: 使能SSH登入選項: 檢視樹莓派的IP地址,這裡使用Wifif連線的方式,因此, IP是192.168.31.50: 2. 在電腦使用SSH登入工具登入: 使用者

Linux學習之CentOS(二)----centos連線網路的三種方式 遠端登入管理工具SecureCRT的使用

【宣告】 歡迎轉載,但請保留文章原始出處→_→ 【正文】 虛擬機器版本:VMware Workstation_10.0.3 Linux系統版本:CentOS_6.5(64位) 一、前言: 前幾天做了一回小白,安裝了上個月釋出的最新版CentOS 7 ,發

Ubuntu系統安裝X11VNC實現遠端登入

X11VNC只能實現單使用者登入. 1. 安裝 apt-get install x11vnc -y 2. 設定VNC密碼 x11vnc -storepasswd 3. 啟動VNC Service x11vnc -forever -shared -rfbauth ~/.

Linux更改ssh服務遠端登入配置

為什麼要更改ssh服務遠端登入配置?因為黑客都知道Linux遠端連線預設埠為22,管理員使用者預設為root,採取預設配置會增大我們系統被黑客入侵成功的概率。 ssh服務端的配置檔案是 /ect/ssh/ 路徑下的 sshd_config 檔案。 [[e

linux安裝redisphpredis環境配置(超詳細)

下載安裝包   cd /home/redis/tar    wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz    tar zxvf redis-2.4.17.tar.gz    cd redis-2.4.17    make     cd

win10安裝scala環境變數配置

win10安裝scala步驟: 下載JDK並安裝安裝 1.首先安裝Java,必須1.7版本以上才支援Scala,http://www.oracle.com/下載對應版本 2. 設定系統環境變數: