1. 程式人生 > >Hadoop 系列教程(二):批量操作多臺伺服器

Hadoop 系列教程(二):批量操作多臺伺服器

1. 每個虛擬機器設定靜態IP

cd /etc/sysconfig/network-scripts/
ifconfig/ip add 檢視網絡卡的硬體名稱和基本資訊
file

記下這個UUID
file

網絡卡配置例子
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.137.190"
NETMASK="255.255.255.0"
GATEWAY="192.168.137.1"
DNS="192.168.137.1"
NM_CONTROLLED="no"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eth0"
DEVICE="eth0"
UUID="ec7dbe05-3175-4f67-9a43-24b144ab51b5"
ONBOOT="yes"

VIM使用,按i進入編輯模式,按gg到檔案的頂部,shift+g到檔案的底部,dd刪除游標所以行,u等於word裡的ctrl+z,ctrl+r等於word裡的ctrl+y
vim /etc/sysconfig/network-scripts/ifcfg-<網絡卡的硬體名稱>
file
配置完的網絡卡檔案
file
檢視結果
原來的
file
注意修改完檔案之後用systemctl restart network.service重啟網路服務,當前的ssh就連線不上了,是因為網路IP被改變成你自己設定的靜態IP了
file
修改完成再連線,用ip add檢視修改完成的結果
file
如果上不了網執行以下操作。
cat /etc/resolv.conf 檢視nameserver是否被設定正確

systemctl stop NetworkManager.service 停止NetworkManager服務
systemctl disable NetworkManager.service 並設定成開機不啟動
systemctl restart network.service 之後重啟網路服務
vim /etc/resolv.conf 修改檔案,如果不存在nameserver就在檔案下面新增,如果存在就修改,把nameserver 設定成自己對應的DNS
file

2. 修改每個機器的主機名#

修改另外3臺的主機名
hostnamectl set-hostname s1.hadoop
file

3. 配置HOSTS檔案
#

修改/etc/hosts檔案
vim /etc/hosts,把剛才配置的固定IP加到檔案裡
file
把其他3臺機器的hosts檔案也修改成上面這個樣子

複製虛擬機器!!!

4. 批量執行與批量分發指令碼使用

首先切換到hadoop使用者
ssh到別一臺機器上執行命令全,例子:ssh [email protected] hostname
scp一個檔案到別一臺機器上,例子:scp /home/hadoop/1 [email protected]:/home/hadoop/
把hadoop_op1.zip檔案用rz命令上傳到nn1.hadoop機器上
file
一般先切換到當前使用使用者的home目錄下
cd/cd ~
unzip hadoop_op1.zip
解壓
chmod -R 777 ./hadoop_op1 修改解壓之後的檔案許可權
file
測試批量SSH命令
./ssh_all.sh hostname
file
測試批量傳檔案
首先在/home/hadoop/up/目錄下建立個測試檔案,這裡的檔案是“1”
./scp_all.sh ./up/1 /tmp/
file
可以用./ssh_all.sh cat /tmp/1用這個命令去驗證
file

5. 單機hadoop使用者加上免密碼切換root使用者#

1).sed -i 's/#auth\t\trequired\tpam_wheel.so/auth\t\trequired\tpam_wheel.so/g' '/etc/pam.d/su'
修改/etc/pam.d/su檔案,將“#auth\t\trequired\tpam_wheel.so”,替換成“auth\t\trequired\tpam_wheel.so”
file
2).cp /etc/login.defs /etc/login.defs_back 先備份一個
echo "SU_WHEEL_ONLY yes" >> /etc/login.defs 把“SU_WHEEL_ONLY yes”字串追加到/etc/login.defs檔案底部
tail /etc/login.defs 從檔案底部檢視
file
3).usermod -a -G wheel hadoop 把hadoop使用者加到wheel組裡
4).groupmems -g wheel -l 使用這個命令檢視wheel組裡是否有hadoop使用者
file
5).新建一個hainiu使用者驗證一下
file
file
輸入密碼之後提示無SU許可權,即使密碼正確也不好使
file
6).sed -i 's/#auth\t\tsufficient\tpam_wheel.so/auth\t\tsufficient\tpam_wheel.so/g' '/etc/pam.d/su'
修改/etc/pam.d/su檔案將字串“#auth\t\tsufficient\tpam_wheel.so”替換成“auth\t\tsufficient\tpam_wheel.so”
file
7).驗證免密碼切換到root使用者
file

6. 給每個機器的hadoop使用者加上免密碼切換root使用者#

配置好每個機器的root ssh免金鑰登入
然後在nn1.hadoop機器上切換到root使用者
把批量執行指令碼用rz上傳到root使用者的根目錄下
用unzip hadoop_op1.zip把檔案解壓出來
刪除沒用的只留下以下有用的,並對有用的指令碼加上可執行許可權chmod -R +x ~/hadoop_op1
file
修改指令碼 vim ssh_all.sh,將使用使用者修改為root使用者
file
修改指令碼vim scp_all.sh,將使用使用者修改為root使用者
file
注:在Linux中wheel組就類似於一個管理員的組。將普通使用者加入到wheel組,被加入的這個普通使用者就成了管理員組內的使用者
剝奪普通使用者切換root使用者
用ssh_all.sh指令碼批量修改 /etc/pam.d/su 檔案,找到auth required pam_wheel.so use_uid 這一行,將行首的“#”去掉。
~/hadoop_op1/ssh_all.sh sed -i \'s/#auth\t\trequired\tpam_wheel.so/auth\t\trequired\tpam_wheel.so/g\' \'/etc/pam.d/su\'
使用~/hadoop_op1/ssh_all.sh head /etc/pam.d/su 檢視每個機器上是否修改成功
file
修改 /etc/login.defs 檔案,在最後一行增加“SU_WHEEL_ONLY yes”語句。
~/hadoop_op1/ssh_all.sh "echo \"SU_WHEEL_ONLY yes\" >> /etc/login.defs"
使用~/hadoop_op1/ssh_all.sh tail /etc/login.defs 檢視每個機器上是否修改成功
file
指定某使用者能切換到root使用者,就將他加到wheel組裡
~/hadoop_op1/ssh_all.sh usermod -a -G wheel hadoop
從wheel組移出就不能切換到root使用者了
~/hadoop_op1/ssh_all.sh gpasswd -d hadoop wheel
檢視wheel組下的使用者,也就是能切換到root的使用者有那些
使用~/hadoop_op1/ssh_all.sh groupmems -g wheel -l檢視每個機器上是否新增成功
file
解釋:如果換成一個不屬於wheel組的使用者時,執行了su命令後,即使輸入了正確的root密碼,也無法登入為root使用者--普通使用者登入為root使用者的許可權被完全剝奪了
切換到root使用者時免密登入
修改 /etc/pam.d/su 檔案,找到auth sufficient pam_wheel.so trust use_uid 這一行,將行首的“#”去掉。
~/hadoop_op1/ssh_all.sh sed -i \'s/#auth\t\tsufficient\tpam_wheel.so/auth\t\tsufficient\tpam_wheel.so/g\' \'/etc/pam.d/su\'
使用~/hadoop_op1/ssh_all.sh head /etc/pam.d/su檢視每個機器上是否修改成功
file

7. 在hadoop使用者狀態下,如何在每個機器上使用root許可權去執行命令#

切換到hadoop使用者下,並用rz上傳exe.sh指令碼
然後使用~/hadoop_op1/scp_all.sh ~/hadoop_op1/exe.sh /home/hadoop/
把exe.sh複製到每個機器上
然後使用~/hadoop_op1/ssh_all.sh ls /home/hadoop/每個機器上檔案是否被分發成功
file
使用vim將ssh_root.sh裡的ssh使用者更改成hadoop
file
然後使用ssh_root.sh測試一下每臺機器是否能從hadoop使用者切換到root許可權
~/hadoop_op1/ssh_root.sh groups,每臺機器切換到root使用者並列印root使用者所屬組
file

8. 修改每個機器的HOSTS檔案#

在nn1.hadoop機器上使用hadoop使用者將/etc/hosts檔案拷貝到/tmp目錄下
cp /etc/hosts /tmp
file
使用~/hadoop_op1/scp_all.sh /tmp/hosts /tmp/,把nn1.hadoop上配置好的host拷貝到每臺機器的/tmp目錄下
使用~/hadoop_op1/scp_all.sh ~/hadoop_op1/up/hosts_op.sh /tmp/,把hosts_op.sh指令碼拷貝到每臺機器的/tmp目錄下
使用~/hadoop_op1/ssh_all.sh ls -all /tmp/確認這兩個檔案是否拷貝成功,並檢視hosts_op.sh指令碼是否擁有執行許可權
file
使用 ~/hadoop_op1/ssh_all.sh mv /tmp/hosts /tmp/hosts_log,把每臺機器上的tmp目錄下的hosts檔案重新命名為hosts_log
使用 ~/hadoop_op1/ssh_all.sh ls /tmp/ 檢視是否重新命名成功
file
使用~/hadoop_op1/ssh_root.sh /tmp/hosts_op.sh,把每個機器上的hosts檔案進行配置好的,也就是hosts_log的內容
file
使用~/hadoop_op1/ssh_root.sh cat /etc/hosts,檢視每臺機器上的hosts檔案是否修改成功
file
也可以使用~/hadoop_op1/ssh_all.sh ping -c 1 nn1.hadoop,檢視每臺機器是否能ping通nn1.hadoop,如果能ping通表示hosts修改成功並生效
file

來自海牛部落-青牛,http://hainiubl.com/topics/80

相關推薦

Hadoop 系列教程批量操作伺服器

1. 每個虛擬機器設定靜態IP cd /etc/sysconfig/network-scripts/ ifconfig/ip add 檢視網絡卡的硬體名稱和基本資訊 記下這個UUID 網絡卡配置例子 TYPE="Ethernet" BOOTPROTO="static"

API 系列教程結合 Laravel 5.5 和 Vue SPA 基於 jwt-auth 實現 API 認證

上一篇我們簡單演示了 Laravel 5.5 中 RESTful API 的構建、認證和測試,本教程將在上一篇教程的基礎上進行昇華。 我們將結合 Laravel 和 Vue 單頁面應用(SPA),在它們的基礎上引入 jwt-auth 實現 API 認證,由於 Laravel 集成了對 Vue

webpack4系列教程建立專案,打包第一個JS檔案

傳送門: webpack4系列教程(一):初識webpack   1. 建立專案 1.1 初始化一個專案 首先安裝nodejs,開啟 nodeJs官網 直接下載安裝即可,安裝完畢後開啟命令列工具,進入你的專案資料夾,執行 npm init 進

使用Vue構建Ionic混合APP系列教程導航

這篇教程我們將從Vue裡最基礎的路由/導航開始講起,然後再看看通過Vue構建的Ionic應用如何導航。 在Vue裡引入Ionic的元件(或者任何其他東西)是非常簡單的,就像你在Angular中做的一樣,只需要把他們注入模板裡,不過當我們想在兩個頁面之間導航時稍

海牛 Hadoop 系列教程伺服器基礎環境

3. 用rz命令將CentOS-Base.repo檔案上傳檔案到當前使用者的home目錄"~"4. 將上傳完成的CentOS-Base.repo檔案移動到/etc/yum.repos.d/目錄mv ~/CentOS-Base.repo /etc/yum.repos.d/5. 刪除以前yum配置下的所有快取資料

web全棧學習教程系列教程介紹

系列教程 trap soft 切圖 think html4 style pes html 一、發布周期 計劃2-3天發一篇,半年左右完成。 二、教程大綱 web全棧介紹與優勢分析 本系列教程介紹 切圖與圖片介紹 html4.01 html5 css2.0 css3 頁面布

Hadoop學習系列筆記Hadoop分散式檔案系統

1、HDFS的設計:當資料集大小超過一臺獨立的物理計算機儲存能力時,就要對它進行分割槽並存儲到若干臺單獨的計算機上。管理網路中跨多臺計算機儲存的檔案系統成為分散式檔案系統,該系統架構於網路之上。Hadoop有一個稱為HDFS的分散式系統。實際上Hadoop是一個綜合性的檔案系

iptables實用教程管理鏈和策略

否則 命令顯示 accept 目的 number cep 存在 當前 末尾 概念和原理請參考上一篇文章“iptables實用教程(一)”。 本文講解如果管理iptables中的鏈和策略。 下面的代碼格式中,下劃線表示是一個占位符,需要根據實際情況輸入參數,不帶下劃線的表示是

Python入門系列教程

字符 小寫 無符號 bsp div width raw_input abc body 字符串 1.字符串輸出 name = ‘xiaoming‘ print("姓名:%s"%name) 2.字符串輸入 userName = raw_input(‘請輸

Nginx實用教程配置文件入門

affinity type 服務 源碼編譯 設置時間 shutdown ber 可用 控制指令 Nginx配置文件結構 nginx配置文件由指令(directive)組成,指令分為兩種形式,簡單指令和區塊指令。 一條簡單指令由指令名、參數和結尾的分號(;)組成,例如:

Git 教程時光穿梭

rac call 替換 img posit key 誤刪 ranch 定位在 我們已經成功地添加並提交了一個readme.txt文件,現在,是時候繼續工作了,於是,我們繼續修改readme.txt文件,改成如下內容: Git is a distributed version

JXLS 2.4.0系列教程——循環導出一個鏈表的數據

教程 super 最簡 com arraylist port 至少 ron mod 請務必先看上一篇文章,本文在上一篇文章的代碼基礎上修改而成。 JXLS 2.4.0系列教程(一)——最簡單的模板導出 上一篇文章我們介紹了JXLS和模板導出最簡單的應用,現在我們要更進一

回顧2017系列移動端APP設計趨勢

原型設計 交互設計 界面設計 設計師 移動端APP在2017年經歷了諸多的變化, 人工智能、聊天式的界面、響應式設計、虛擬現實(VR)和增強現實(AR)讓設計師不斷面臨新的挑戰。研究表明,用戶每天耗費在手機和平板上的平均時長為158分鐘,其中127分鐘是耗費在各類APP中,可以看出移動端

mybatis教程概念總結

return 單個 其它 array author 擴展 地址 caf eal 一、註意規範 註意:(1).XXXmapper.xml 文件中的 namespace 等於mapper 接口地址 (2).XXXmapper.java 接口中的方法輸入參數

【Android開發—智能家居系列用手機對WIFI模塊進行配置

名稱 ash 端口 clas 方式 mac class 二階 target 【Android開發—智能家居系列】(二):用手機對WIFI模塊進行配置 http://blog.csdn.net/u010924834/article/details/4949672

微信程序開發系列教程使用JavaScript給微信用戶發送消息

邏輯 XML web UNC 百度 ava subscribe 程序開發 內容 我之前的文章 微信程序開發系列教程(一)開發環境搭建 介紹了微信開發環境的搭建,這篇文章我們就來一步步開發一些具體的功能。 功能需求:當有微信用戶關註了您的公眾號之後,您用JavaScript發

從零開始寫自己的PHP框架系列教程[App.php]

porting col config exce tro efault fig 默認 clas 從這一個文件開始以後加載的均以類加載,請註意命名空間和所在文件的路徑 APP.php的這個類所在路徑:根目錄\framework\App.php 直接上代碼 namespace

TensorFlow系列專題機器學習基礎

歡迎大家關注我們的網站和系列教程:http://www.tensorflownews.com/,學習更多的機器學習、深度學習的知識! 目錄: 資料預處理 歸一化 標準化 離散化 二值化 啞編碼

【Android開發—智慧家居系列用手機對WIFI模組進行配置

【Android開發—智慧家居系列】(二):用手機對WIFI模組進行配置   版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u010924834/article/details/49496729   在實際開發中,我開

VSphere系列教程ESXI 主機設定開機自動啟動虛擬機器

一、配置 ESXI 主機        登入 WebClient,管理 -> 自動啟動 -> 編輯設定                配置成如下內容,儲