1. 程式人生 > >大資料平臺叢集外客戶端部署

大資料平臺叢集外客戶端部署

轉載請註明出處 :http://www.cnblogs.com/xiaodf/

本文件主要用於說明,如何在叢集外節點上,部署大資料平臺的客戶端,此大資料平臺已經開啟了Kerberos身份驗證。通過客戶端使用者在叢集外就可以使用叢集內的服務了,如查詢叢集內的hdfs資料,提交spark任務到叢集內執行等操作。
具體部署步驟如下所示:

1、拷貝叢集內hadoop相關元件包到客戶端

本地建立目錄/opt/cloudera/parcels

mkdir –R /opt/cloudera/parcels

拷貝元件包CDH-5.7.2-1.cdh5.7.2.p0.18到目錄/opt/cloudera/parcels
進入目錄建立軟連線

cd /opt/cloudrea/parcels
ln –s CDH-5.7.2-1.cdh5.7.2.p0.18 CDH

2、拷貝叢集內hadoop相關配置檔案到客戶端

建立目錄/etc/hadoop,將/etc/hadoop/conf資料夾放入該目錄,node1為叢集內節點

mkdir /etc/hadoop
scp -r node1:/etc/hadoop/conf /etc/hadoop

建立目錄/etc/hive,將/etc/hive/conf資料夾放入該目錄

mkdir /etc/hive
scp -r node1:/etc/hive/conf /etc/hive

建立目錄/etc/spark,將/etc/spark/conf資料夾放入該目錄

mkdir /etc/spark
scp -r node1:/etc/spark/conf /etc/spark

3、拷貝叢集內身份驗證相關配置檔案krb5.conf到客戶端

scp node1:/etc/krb5.conf  /etc

4、執行客戶端指令碼client.sh,檔案內容如下:

export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop
export HADOOP_CONF=/etc/hadoop/conf
export HADOOP_CONF_DIR=/etc/hadoop/conf
export YARN_CONF_DIR=/etc/hadoop/conf
export SPARK_CONF_DIR=/etc/spark/conf
#export SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark
CDH_HOME="/opt/cloudera/parcels/CDH"
export PATH=$CDH_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin/:$PATH
##beeline 連線hive進行sql查詢
cd /opt/cloudera/parcels/CDH/bin
./beeline -u "jdbc:hive2://node7:10000/;principal=hive/
[email protected]
" --config /etc/hive/conf ##執行hdfs命令 #./hdfs --config /etc/hadoop/conf dfs -ls / ##提交spark命令 #cd /opt/cloudera/parcels/CDH/lib/spark/bin #./spark-shell

注意:
1、客戶端要與叢集時間同步,否則身份認證會失敗;
2、客戶端host要新增叢集hosts,叢集hosts可連線叢集某一點獲取;
3、叢集已開啟kerberos身份驗證,執行shell命令前,需要kinit進行身份驗證,示例如下:

#kinit認證命令
[[email protected] client]# kinit -kt /home/user01.keytab user01
#檢視當前使用者
[[email protected] client]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]

Valid starting       Expires              Service principal
12/01/2016 20:48:50  12/02/2016 20:48:50  krbtgt/[email protected]
    renew until 12/08/2016 20:48:50

4、spark jdbc程式設計,同樣需要呼叫kerberos身份驗證,示例如下,完整工程看【spark jdbc 示例】目錄下Security

package kerberos.spark;


import org.apache.hadoop.security.UserGroupInformation;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Timer;
import java.util.TimerTask;

/*
 * 開啟許可權驗證時,可以傳入使用者principal 和 keytab 進行身份驗證
 */
public class sparkjdbc {
   public static void main(String args[]) {
      final String principal = args[0];//使用者對應principal,如user01
      final String keytab = args[1];//使用者對應keytab,如/home/user01/user01.keytab
      String sql = args[2];//業務sql操作語句
      try {
         //1、身份驗證:間隔12小時驗證一次
         long interval=1;
         long now = System.currentTimeMillis();
         long start = interval - now % interval;
         Timer timer = new Timer();
         timer.schedule(new TimerTask(){
            public void run() {
               org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
               conf.set("hadoop.security.authentication", "Kerberos");
               UserGroupInformation.setConfiguration(conf);
               try {
                  UserGroupInformation.loginUserFromKeytab(principal,keytab);
                  System.out.println("getting connection");
                  System.out.println("current user: "+UserGroupInformation.getCurrentUser());
                  System.out.println("login user: "+UserGroupInformation.getLoginUser());
               } catch (IOException e) {
                  e.printStackTrace();
               }
               System.out.println("execute task!"+ this.scheduledExecutionTime());
            }
         },start,12*60*60*1000);//定時任務

         //正常業務,spark jdbc連線hive進行sql操作
         Class.forName("org.apache.hive.jdbc.HiveDriver");
         Connection con = DriverManager
               .getConnection("jdbc:hive2://node7:10000/;principal=hive/[email protected]");
         System.out.println("got connection");
         Statement stmt = con.createStatement();
         ResultSet rs = stmt.executeQuery(sql);// executeQuery會返回結果的集合,否則返回空值
            System.out.println("列印輸出結果:");
            while (rs.next()) {
                System.out.println(rs.getString(1));// 入如果返回的是int型別可以用getInt()
            }
         
         con.close();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

相關推薦

資料平臺叢集客戶部署

轉載請註明出處 :http://www.cnblogs.com/xiaodf/ 本文件主要用於說明,如何在叢集外節點上,部署大資料平臺的客戶端,此大資料平臺已經開啟了Kerberos身份驗證。通過客戶端使用者在叢集外就可以使用叢集內的服務了,如查詢叢集內的hdfs資料,提交spark任務到叢集內執行等操作。

CentOS7部署CDH6.0.1資料平臺

Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,簡稱“CDH”),基於Web的使用者介面,支援大多數Hadoop元件,包括HDFS、MapReduce、Hive、Spark、 Hbase、Zookeeper、Sqoop等,簡化了大資料平臺的

VWMare如何讓自己的多臺資料cdh叢集虛擬機器連線

問題描述:VWMare如何讓自己的redhat虛擬機器連線外網,同時自己的pc電腦可以訪問自己的叢集虛擬機器! vmware版本號:11.0 linux系統:redhat 6.5 由於圖形介面比較直觀,開啟圖形介面:執行命令:init 5 cdh叢集主機名和ip地址:hosts cdh1&

資料平臺Hadoop的分散式叢集環境搭建,官網推薦

1 概述 本文章介紹大資料平臺Hadoop的分散式環境搭建、以下為Hadoop節點的部署圖,將NameNode部署在master1,SecondaryNameNode部署在master2,slave1、slave2、slave3中分別部署一個DataNode節點 NN

用Ambari一鍵部署資料平臺

安裝前準備先明確幾個概念: 1. Ambari只能安裝Hortonworks Data Platform,即Hortonworks的開源Hadoop,不支援Apach的Hadoop平臺; 2. 對於已經安裝了Apach Hadoop或者其他Hadoop平臺的,不能使用Amba

資料平臺CDH叢集離線搭建

摘要:管理、部署Hadoop叢集需要工具,Cloudera Manager便是其一。本文先是簡要對比了當前的類似工具,而後詳細記錄了以離線方式部署CDH叢集>的步驟。 前言 以Apache Hadoop為主導的大資料技術的出現,使得中小型

資料平臺搭建------CDH單機部署

       從 17年十一月入職起,到中間經歷了畢業、春節、轉正。在工作崗位上學到了很多很多的東西,非常有幸遇到這麼一群人生導師,早就想把工作中趟過的坑,總結的文件,開個部落格記錄起來,一來可以給其他人蔘考,二來也是自己的一個複習吧。可是拖延症作祟,這事,一直耽擱,爭取以後

Kafka 叢集在馬蜂窩資料平臺的優化與應用擴充套件

馬蜂窩技術原創文章,更多幹貨請訂閱公眾號:mfwtech   Kafka 是當下熱門的訊息佇列中介軟體,它可以實時地處理海量資料,具備高吞吐、低延時等特性及可靠的訊息非同步傳遞機制,可以很好地解決不同系統間資料的交流和傳遞問題。 Kafka 在馬蜂窩也有非常廣泛的應用,為很多核心的業務提供支撐。

Hadoop資料平臺之Kafka部署

環境:CentOS 7.4 (1708  DVD) 工具:Xshell+Xftp   1. 使用xftp將kafka上傳到/usr/local目錄下,將kafka解壓並重命名。 2. 編輯kafka/config下的server.properties檔案。 3.

最新版資料平臺安裝部署指南,HDP-2.6.5.0,ambari-2.6.2.0

一、伺服器環境配置 1 系統要求 名稱 地址 作業系統 root密碼 Master1 10.1.0.30 Centos 7.7   Master2 10.1.0.105 Centos 7.7   Worker1 10.

微軟企業級加解密解決方案MBAM客戶部署

mbam 微軟解決方案 加解密 根據部署 Microsoft BitLocker 管理和監控客戶端軟件時,您可以啟用 BitLocker 驅動器加密計算機上您的組織中最終用戶獲得的計算機之前或之後通過配置組策略並使用企業軟件部署系統部署 MBAM 客戶端軟件。將 MBAM 客戶端部署到臺式機或便攜

一堆命令部署rsync以及客戶部署

-s 客戶 error 1.3 nor onf login 8.0 ack ##環境準備server--172.16.1.41client --172.16.1.31 server部署如下:1 #!/bin/bash2 #3 rpm -qa rsync &

openLDAP客戶部署(centos6.5)

系統/運維 Linux 部署openLDAP服務端的文檔有很多,但是客戶端的網上都是寫著混亂,導致初學第一次安裝掉了很多坑下面是快速搭建可以正常認證的客戶端部署步驟:一共分為三步:第一步:yum install open-ldap-clients nss-pam-ldapd nss-util auth

zabbix服務客戶部署

html finish 綠色 new 語言 柔軟 重新登錄 execution character zabbix是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。 zabbix由zabbix server與可選組件zabbix ag

MDT2013客戶部署報錯

客戶端 sha proc ngx cto 正常 上進 ces term 近日按照博主wenzhongxiang的博文“MDT 2013 從入門到精通之概念掃盲”部署了MDT2013系統。如下圖:安裝完畢後,在客戶端PC1上進行部署Window7系統,PC1獲取到IP地址並按

ganglia 客戶部署

#!/bin/bash #配置引數 #serverIP=192.168.1.16 #network=ens32 #關閉selinux #setenforce 0 #sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config #

redis叢集與分片(1)-redis伺服器叢集客戶分片 redis叢集與分片(1)-redis伺服器叢集客戶分片

redis叢集與分片(1)-redis伺服器叢集、客戶端分片   下面是來自知乎大神的一段說明,個人覺得非常清晰,就收藏了。 為什麼叢集? 通常,為了提高網站響應速度,總是把熱點資料儲存在記憶體中而不是直接從後端 資料庫中

zookeeper叢集客戶與伺服器

zookeeper服務端命令: 啟動命令:sh zkServer.sh start 停止命令:sh zkServer.sh stop zookeeper客戶端命令: 啟動命令:sh zkCli.sh 連線其他客戶端:sh zkCli.sh -server ip:port    

資料脫敏介紹(資料平臺 )

資料脫敏(Data Masking),又稱資料漂白、資料去隱私化或資料變形。百度百科對資料脫敏的定義為:指對某些敏感資訊通過脫敏規則進行資料的變形,實現敏感隱私資料 的可靠保護。這樣,就可以在開發、測試和其它非生產環境以及外包環境中安全地使用脫敏後的真實資料集。 可以看到資料脫敏具有幾個關鍵點:

資料來源/資料平臺

【彙總】資料來源/大資料平臺 一、網路趨勢分析   站長工具:5118 | chinaz   指數工具:艾瑞指數 | 百度指數 | 微指數 | 搜狗指數