1. 程式人生 > >hadoop叢集的搭建指令碼及構思(一):使用者和使用者許可權

hadoop叢集的搭建指令碼及構思(一):使用者和使用者許可權

打算搞一個複雜的Hadoop 2.6叢集,加上Zookeeper來搞HA,再部署上HBase,Hive等一系列的東西。發現機器多了,從建虛機到配置都不能再靠命令列一條一條的敲,需要搞指令碼出來自動/半自動執行。

其實想想,這個部署的過程就是一個類似PaaS的任務。完全可以搞成視覺化的部署工具。當年搞十八摸的中介軟體的部署就是有這樣的工具。可以自己先定義所需要的系統拓撲,比如一個WAS ND的叢集,要幾個Deploy Manager,幾個WAS App Server,後面跟著幾個DB2的資料庫例項。然後一個命令就全部虛機都部署出來了,相互間的連線配置也搞好了。管理的時候,就直接上WAS ND的頁面管理。

現在的Hadoop之類的叢集,動不動就是成百上千臺機器,靠指令碼的執行來管理,不是什麼好方法。攜程出現的問題就是個好的例子。相信BAT這樣的巨頭一定會有自己的PaaS部署和管理的系統。

自己搞的小叢集就還是用指令碼來吧。哪天系統出問題了,就直接虛機刪除,然後再部署一套,來的方便快捷。

使用者和使用者許可權的思考

首先看到很多網上的科普hadoop,zookeeper,HBase的安裝配置的文章都用root來搞。科普簡介還行,但是正常的開發、測試環境這就不行了,就更別說生產環境了。root什麼都管了,危險太大。

還沒搞完,不過覺得資料分析和管理應該分開,開發和測試環境可以都用一個帳號,比如我常用的hadoop帳號。基本思路是:

1. root使用者是在虛機建立後才用的,可以寫指令碼來幹幾件事

    • 建立大資料工具的各個帳號,建立/修改密碼;
    • 安裝Java或者其他語言,這個是給所有使用者使用的,應該是要root來安裝;
    • 保持各個工具需要的軟體包,賦予不同使用者對各自軟體包的許可權;
    • 針對不同的使用者,建立基礎目錄和臨時目錄,根據使用者的需求賦予不同的許可權
2. 管理相關的帳號,這裡主要是指zookeeper帳號。 3. DFS/Hadoop/相關的帳號。 4. 資料應用的帳號,比如HBase、Hive、Spark等的帳號 2-4,在開發和測試環境可以用一個帳號全部管理,省去很多麻煩。比如hadoop要求的master到slave和slave之間需要能無密碼的ssh登陸,設定N×N之間能無密碼ssh登陸是很煩的事,一旦新增節點,將要求大家都來一遍,多帳號就會很麻煩。

終於又有時間來繼續這個專案。今天碰到的一個問題是到底hadoop 2.6裡面SSH的作用是什麼,到底需要配置誰和誰之間無需密碼的SSH登入。

《Hadoop權威指南》v3版裡面說的是隻需要Master到Slave單向需要配置SSH無密碼登入,以方便控制指令碼來啟動全叢集的操作。還特別強調不是java的程序需要SSH。但並沒有細化到到底node級別。對於一個NameNode,Resource Manager都分離的環境,這個問題就比較的複雜了,需要考慮下面的幾種情況:

  1. NameNode 和 Data Nodes間的配置;
  2. Resource Manager -> Node Managers的配置
  3. 主NameNode和從NameNode間的配置;
  4. 主ResMgr和從ResMgr間的配額制;
  5. DataNode間的配置;
  6. NodeMgr間的配置;

以上這些都涉及到雙向的問題。又google了一圈,看到講解清楚的還真的很少。有一個StackOver上面說道了這樣的觀點:

  1. 和《指南》的說法一樣,Master們一定要能SSH到Slaves上去,才好啟動。所以NameNode>DataNodes和ResMgr>NodeMgr是一定要配置的,單向!
  2. Slaves直接的通訊是通過TCP/IP加上RCP協議來實現的,所以不用SSH。

但是,在我的3節點環境中,曾經發生過slave之間必須要能SSH才能跑通程式的情況,所以上述說法還有待驗證。

由於沒找到標準的原理解釋部分,我暫且認為StackOver上的關於Master到Slave的觀點正確。由於主從節點之間也沒有找到原理文章,我現階段決定先按StackOver的說法配置我的7節點環境:

賬號都採用hadoop;

只配置NameNode>DataNodes和ResMgr>NodeMgr的SSH無密碼登入;

其他情況現在都不配置。在實際安裝配置中來發現問題,再改進。

(關於這個話題就談到這裡,以後就實際出席的問題再修改此帖裡的SSH原理部分。關於我的7節點的hadoop ha環境,另開新帖討論)

相關推薦

hadoop叢集搭建指令碼構思使用者使用者許可權

打算搞一個複雜的Hadoop 2.6叢集,加上Zookeeper來搞HA,再部署上HBase,Hive等一系列的東西。發現機器多了,從建虛機到配置都不能再靠命令列一條一條的敲,需要搞指令碼出來自動/半自動執行。 其實想想,這個部署的過程就是一個類似PaaS的任務。完全可以搞

hadoop叢集搭建指令碼構思程式檔案的管理思路

安裝了幾次hadoop系統後終於開始有了一點感覺,對程式檔案的管理有了一點想法,這裡先記著。等搞完了再仔細地總結一下。 網路上的基本教程都是從0開始,建使用者,建目錄,拷貝壓縮包,然後再解壓,再修改配置檔案,再修改系統配置檔案;然後從一個機器(基本是master node)

Hadoop 叢集遷移歷程 心得體會

技術探討聯絡方式:QQ:272428027 由於本人第一次寫部落格,不喜勿噴,本文章內容只是一個hadoop遷移的心得體會,具體技術問題會在另一篇部落格當中詳細給出。 本週重點工作就是Hadoop叢集遷移,遷移過程中的各種坑都已經一一解決,在踩坑的過

Java中String、StringBuilder、StringBuffer常用源碼分析比較String源碼分析

array string類 都是 epo sys 匹配字符串 bound 地址 簡單 String: 一、成員變量: /** The value is used for character storage. */ private final char value[

windows環境下搭建Java開發環境jdk安裝配置

變量 win jns jdk安裝 分享 tool 直接 www. 技術 一、資源下載   官網:http://www.oracle.com/technetwork/java/javase/downloads/index.html   本人安裝的是jdk1.8,百度雲資源:鏈

SmartGit 安裝使用安裝配置

一、官網下載smartgit安裝包。 https://www.syntevo.com/smartgit/download/ 二、安裝smartgit,根據提示安裝即可。 三、啟動配置smartgit。 1、選擇非商業模式安裝,勾選第三個Non-commercial us

淺析RxJava 1.x&2.x版本使用區別原理Observable、Flowable等基本元素原始碼解析

RxJava開源框架的風靡程度在Github上無需多言,它帶來的響應式程式設計模式和執行緒隨意切換、巢狀請求、背壓等功能給了開發者耳目一新的體驗,更是成為了大多數APP中常用的RxJava+Okhttp/Retrofit+MVP/MVVM/Clean黃金組合中的

寫給前端同學的C++入門教程概述環境搭建

說明:本人是前端er,因為最近對 UE4(一個遊戲開發引擎)產生了興趣,而這個引擎源開發遊戲時需要用到 C++ ,所以就開始入坑 C++ 了。現將自己學習 C++ 的筆記整理並分享出來,以便一些想入門 C++ 的朋友一起學習,將會以系列教程的的形式來編寫,這是第一篇。 ## C++ 是什麼? 我們都知道,目

JAVA並行框架Fork/Join簡介代碼示例

over 框架設計 put 分割 gif 得到 java owa trace 一、背景 雖然目前處理器核心數已經發展到很大數目,但是按任務並發處理並不能完全充分的利用處理器資源,因為一般的應用程序沒有那麽多的並發處理任務。基於這種現狀,考慮把一個任務拆分成多個單元,每個單元

ES6letconst

ES6(一):let和const 一、let 1. let基本用法   相當於var,但是又與var不同,因為let宣告的變數只能在let所在的程式碼塊中有效。   從以下兩段程式碼以及對應的輸出結果可以很明顯的看出var與let的區別。 code: for (var i

再談資料結構佇列

1 - 前言 棧和佇列是兩種非常常用的兩種資料結構,它們的邏輯結構是線性的,儲存結構有順序儲存和鏈式儲存。在平時的學習中,感覺雖然棧和佇列的概念十分容易理解,但是對於這兩種資料結構的靈活運用及程式碼實現還是比較生疏。需要結合實際問題來熟練佇列和棧的操作。 2 - 例題分析 2.1

pyspider 爬蟲教程HTML CSS 選擇器

    雖然以前寫過 如何抓取WEB頁面 和 如何從 WEB 頁面中提取資訊。但是感覺還是需要一篇 step by step 的教程,不然沒有一個總體的認識。不過,沒想到這個教程居然會變成一篇譯文,在這個爬蟲教程系列文章中,會以實際的例子,由淺入深討論爬取(抓取和解析)的一些關鍵

ELF檔案解析SegmentSection

ELF 是Executable and Linking Format的縮寫,即可執行和可連結的格式,是Unix/Linux系統ABI (Application Binary Interface)規範的一部分。 Unix/Linux下的可執行二進位制檔案、目的碼檔案、共享庫檔案和core dump檔案都屬於EL

ClearCase完全攻略BaseUCM的前生後世

ClearCase到底是幹嘛的? 通俗的我們可以認為是一款IBM出的原始碼管理工具。 ClearCase的四大功能? (版本管理+過程管理+工作空間管理+bulid管理)有個經典的圖,各個功能圖裡面說的很清楚了。 Base和UCM到底有什麼區別? Base 就是Clear

Linux下nodejs安裝使用

一、安裝 一共有三種安裝方式,由於其他兩種不太方便,因此只介紹第一種二進位制檔案安裝。 1、首先官網下載nodejs安裝壓縮包。 2、下載完成後用ftp上傳到Linux任意資料夾即可。我的是/home/chuan/chuansoft。然後進入到

Effective Java 讀書筆記建立銷燬物件

1 構造器 => 靜態工廠方法 (1)優勢 靜態工廠方法有名字 靜態工廠方法不必在每次被呼叫時都產生一個新的物件 靜態工廠方法能返回原返回型別的任意子型別的物件 靜態工廠方法根據呼叫時傳入的不同引數而返回不同類的物件 靜態工廠方法返回物件的類不需要存在(SPI架構) (2

Java多執行緒記憶體模型程序執行緒基礎

Java多執行緒和記憶體模型(一) 由於java是執行在 JVM上 的,所以需要涉及到 JVM 的記憶體模型概念,需要理解記憶體模型,就需要多執行緒的基礎; 而執行緒是基於載體執行緒裡的,所以我們藉由作業系統的程序來講一講。 程序 什麼是程序?

React Native for Android 實戰配置起步

原文地址: http://www.csdn.net/article/2015-09-24/2825787-react-native Facebook開源React Native也勢要統一移動端程式語言,而其提前釋出React Native for Android更是引

TensorFlow 從入門到精通安裝使用

安裝過程 目前較為穩定的版本為 0.12,本文以此為例。其他版本請讀者自行甄別安裝步驟是否需要根據實際情況修改。 TensorFlow 支援以下幾種安裝方式: PIP 安裝 原始碼編譯安裝 Docker 映象安裝 PIP 安裝

大資料生態系統基礎Apache Kafka基礎介紹安裝

http://blog.csdn.net/zhy_yz/article/details/5905637 一、 Apache kafka基礎介紹           1、kafka 是什麼?              首先一句話: Apache Kaf