Hadoop分布式系統的安裝部署

1、關于虛擬機的復制

新建一臺虛擬機,系統為CentOS7,再克隆兩臺,組成一個三臺機器的小集群。正常情況下一般需要五臺機器(一個Name節點,一個SecondName節點,三個Data節點。)

?此外,為了使網絡生效,需要注意以下幾點:

1> ?編輯網絡配置文件 

/etc/sysconfig/network-scripts/ifcfg-eno16777736

先前的版本需要刪除mac地址行,注意不是uuid,而是hwaddr這一點新的CentOS不再需要

2> 刪除網卡和mac地址綁定文件??

rm -rf /etc/udev/rules.d/70-persistent-net.rules

3> 重啟動系統

此外,mapreduce在運行的時候可能會隨機開放端口,在CentOS7中,可以使用下面的命令將防火墻關閉

systemctl stop firewalld

或者使用下面的命令,使在集群中的機器可以不受限制的互相訪問

#把一個源地址加入白名單,以便允許來自這個源地址的所有連接
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.1.215" accept' --permanent firewall-cmd --reload

?

2、IP地址設置為靜態

準備了三個IP地址

192.168.1.215

192.168.1.218

192.168.1.219

?CentOS7下,修改ip地址的文件為/etc/sysconfig/network-scripts/ifcfg-eno16777736

主要作如下設置,其他的不需要變

# none或static表示靜態
OOTPROTO=static
# 是否隨網絡服務啟動
ONBOOT=yes
IPADDR=192.168.1.215
# 子網掩碼
NETMASK=255.255.255.0
# 網關,設置自己的
GATEWAY=192.168.0.1
# dns
DNS1=202.106.0.20

3、修改hostname與hosts文件

這兩個文件均處于系統根目錄的etc文件夾之中

下圖顯示了映射后的機器名稱以及對應的ip地址(#localhost.localdomain這一行多余,僅master剛剛好)

主節點master,兩個數據節點data1data2

?

4、添加用戶與組

需要為Hadoop軟件系統設置單獨的用戶和組,本例中新添加的用戶和所屬組的名稱均為hadoop??

adduser hadoop
passwd hadoop 

?5、利用ssh實現免密碼登錄

注意,目的是使Hadoop系統的所屬用戶在集群之間實現免密碼登錄,而不是root用戶(除非Hadoop系統的所有者root,但一般不建議這么做)。這一點非常重要。

在本例中,軟件所有者是上面新建的hadoop用戶,密鑰也要由hadoop用戶來生成。

1> 更改配置文件

需要對sshd_config文件進行修改,主要是以下三項,取消注釋即可?

vim /etc/ssh/sshd_config

?

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

之后,執行以下命令重啟sshd服務

service sshd restart

2> 生成密鑰并分發相關文件

簡單的方法,密鑰生成后,使用直接使用 ssh-copy-id 命令把密鑰追加到遠程主機的 .ssh/authorized_key 上,如下:

# 生成密鑰
ssh-keygen -t rsa
# 密鑰追加到遠程主機
ssh-copy-id -i ~/.ssh/id_rsa.pub? hadoop@192.168.1.218
ssh-copy-id -i ~/.ssh/id_rsa.pub? hadoop@data2

復雜的方法,不再推薦,具體實現步驟如下:

a> 將三臺計算機(masterdata1data2)分別切換到hadoop用戶下,并分別cdhadoop用戶的家目錄,然后執行 ssh-keygen -t rsa?命令,這樣的結果,是在各自家目錄的.ssh文件夾中生成了對應的id_rsa.pub?id_rsa 密鑰對。

b> data1192.168.1.218),data2192.168.1.219)兩臺計算機中的公鑰文件復制到master192.168.1.215)中,并重命名為id_rsa.pub218id_rsa.pub219,置于hadoop用戶家目錄下的.ssh文件夾下。命令參考如下:?

scp id_rsa.pub hadoop@master:~/.ssh/id_rsa.pub218
scp id_rsa.pub hadoop@master:~/.ssh/id_rsa.pub219

?hadoop@master表示用master中的hadoop用戶登錄master

這樣以來,master主機hadoop用戶的.ssh文件夾就有了以下三個公鑰文件:

d_rsa.pubd_rsa.pub218d_rsa.pub218

c> master中,將以上三個文件以追加的形式寫入authorized_keys文件,這些文件均位于hadoop用戶.ssh文件夾中。?

cat id_rsa.pub >> authorized_keys 
cat id_rsa.pub218 >> authorized_keys
cat id_rsa.pub219 >> authorized_keys

?d> 更改?authorized_keys?文件的權限。這一步也可在分發后單獨進行?

chmod 600 authorized_keys

?e> 分發authorized_keys?文件到data1,data2中hadoop用戶的.ssh文件中,并再次檢查權限?

scp authorized_keys hadoop@data1:~/.ssh/authorized_keys
scp authorized_keys hadoop@data2:~/.ssh/authorized_keys

?之后就可以在小集群中使用hadoop用戶實現免密碼登錄了。

注意的是,如果使用的linux登錄用戶不是root用戶,需要修改以下.ssh文件夾以及authorized_key文件的權限,否則是無法實現免密碼登錄的

chmod 700 .ssh
cd .ssh/
chmod 600 authorized_keys

?6、安裝jdk?

先在master中安裝,之后分發,這里使用的是jdk-8u112-linux-x64.tar.gz

?1> 解壓安裝

?首先需要切換到root用戶?

su root
cd /usr
mkdir java
tar -zxvf jdk-8u112-linux-x64.tar.gz ./java
ln -s jdk1.8.0_112/ jdk

?2> 分發

scp -r /usr/java root@data2:/usr/
scp -r /usr/java root@data2:/usr/

3> 設置環境變量,三臺都要設置

vim /etc/profile
export JAVA_HOME=/usr/java/jdk
export JRE_HOME=/usr/java/jdk/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
source /etc/profile

?7、安裝hadoop

先在master下安裝,再分發

安裝的版本為2.6.5解壓安裝到/usr/Apache/目錄下,并建立軟連接

Hadoop所有配置文件的目錄位于/usr/Apache/hadoop-2.6.5/etc/hadoop下,由于建立了一個軟連接,所以/usr/Apache/hadoop/etc/hadoop是一樣的

在hadoop軟件目錄的dfs文件夾中創建三個子文件夾name、data、tmp,下面屬性的設置會用到,注意其所有者和所屬組。

以下是配置文件的設置:

1> hdfs.site.xml?

<property><name>dfs.namenode.name.dir</name><value>file:/usr/Apache/hadoop/dfs/name</value>
</property>
<property><name>dfs.datanode.data.dir</name><value>file:/usr/Apache/hadoop/dfs/data</value>
</property>
<property><name>dfs.replication</name><value>3</value>
</property>
<property><name>dfs.namenode.secondary.http-address</name><value>master:50090</value>
</property>
<property><name>dfs.webhdfs.enabled</name><value>true</value>
</property>

2> mapred-site.xml

<property><name>mapreduce.framework.name</name><value>yarn</value>
</property>
<property><name>mapreduce.jobhistory.address</name><value>master:10020</value>
</property>
<property><name>mapreduce.jobhistory.webapp.address</name><value>master:19888</value>
</property>

3> yarn-site.xml

設置如下:?

<property>?<name>yarn.nodemanager.aux-services</name>?<value>mapreduce_shuffle</value>?
</property>?
<property>?<name>yarn.resourcemanager.address</name>? <value>master:8032</value>? 
</property>? 
<property>? <name>yarn.resourcemanager.scheduler.address</name>? <value>master:8030</value>? 
</property>? 
<property>? <name>yarn.resourcemanager.resource-tracker.address</name>?<value>master:8031</value>?
</property>?
<property>?<name>yarn.resourcemanager.admin.address</name>?<value>master:8033</value>?
</property>?
<property>?<name>yarn.resourcemanager.webapp.address</name>?<value>master:8088</value>?
</property>?

?4> slaves配置文件

master
data1
data2

注:本例將master也作為了一個數據節點

5> hadoop-env.sh和yarn-env.sh

這是兩個相當重要的環境變量配置文件,由于目前僅安裝Hadoop,所以僅設置jdk即可,其他默認。

export JAVA_HOME=/usr/java/jdk

6> core-site.xml

<property>
<name>hadoop.tmp.dir</name><value>/usr/Apache/hadoop/tmp</value><description>A base for other temporary directories.</description>
</property>
<property><name>fs.defaultFS</name><value>hdfs://master:9000</value>
</property>

?

7> 將Apache文件夾分發到data1,data2對應的目錄下

# 分發
scp -r ./Apache root@data1:/usr/
scp -r ./Apache root@data2:/usr/# 這里使用了root用戶,記得分發后要改所有者與所屬組
chown -R hadoop:hadoop Apache/

注意jdk是不需要改所有者與所屬組的,因為通用?

8> 三臺機器分別配置hadoop用戶的.bashrc文件,設置環境變量

su hadoop
vim ~/.bashrc
export $HADOOP_HOME=/usr/Apache/hadoop
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export CLASSPATH=.:$HADOOP_HOME/lib:$CLASSPATH
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc

8、開啟與結束

start-dfs.sh

start-yarn.sh

mr-jobhistory-daemon.sh start historyserver

yarn-daemon.sh start historyserver?


#####

stop-dfs.sh

stop-yarn.sh

mr-jobhistory-daemon.sh stop historyserver

yarn-daemon.sh stop historyserver

9、運行結果

相關進程

?

??

??

All Applications

http://192.168.1.215:8088

JobHistory?

http://192.168.1.215:19888

Master

http://192.168.1.215:50070

?

?

轉載于:https://www.cnblogs.com/learn21cn/p/learn21cn.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255886.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255886.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255886.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Windows線程調度學習(一)

前言 Windows 線程調度器的實現分散在內核各處&#xff0c;并且與許多組件都有關聯&#xff0c;很難進行系統地學習&#xff0c;所以我打算寫幾篇文章來記錄下自己學習過程中的思考和分析&#xff0c;同時也方便日后查閱&#xff0c;此文可以看作是《Windows內核原理與實現》中…

機器人的有效負荷

問題&#xff1a; 假如我想在程序里做多幾個有效載荷,但在手動操縱畫面上只能加一個,其它要怎樣用?給個實際例子給我啊. 回答&#xff1a; 在搬運中&#xff0c;確實是有載荷發生變化的情況&#xff0c;如兩抓(A B)的夾具&#xff0c;有三種載荷情況&#xff0c;1、A抓有載荷…

【Python生成readme文件】——Markdown語法

鏈接&#xff1a;https://www.cnblogs.com/wj-1314/p/8547763.html

編程之美2.13子數組的最大乘積

題目&#xff1a; 給定一個長度為N的數組&#xff0c;只許用乘法&#xff0c;不許用除法&#xff0c;計算任意&#xff08;N-1&#xff09;個數的組合中乘積最大的一個組&#xff0c;并寫出算法的時間復雜度。 如果把所可能的乘積找出來&#xff0c;共有&#xff08;N-1&#x…

[SceneKit專題]11-Reference-Nodes引用節點

說明 本系列文章是對<3D Apple Games by Tutorials>一書的學習記錄和體會 此書對應的代碼地址 SceneKit系列文章目錄 本文將完成一個完整的node節點,帶有完整貼圖,并將其導入其他場景中,成為其中的一個引用節點.這樣可以更方便的組織場景,并能復用場景中的節點,正類似于面…

scapy 安裝及簡單測試

關于scapy Scapy的是一個強大的交互式數據包處理程序&#xff08;使用python編寫&#xff09;。它能夠偽造或者解碼大量的網絡協議數據包&#xff0c;能夠發送、捕捉、匹配請求和回復包等等。它可以很容易地處理一些典型操作&#xff0c;比如端口掃描&#xff0c;tracerouting&…

MoveAbsJ在使用時和MOVEJ有什么區別

問 題&#xff1a; MoveAbsJ在使用時和MOVEJ有什么區別 回 答&#xff1a; MoveAbsJ的目標點是用六個軸伺服電機的偏轉角度值來指定的。 MOVEJ和MOVEL的目標點是用坐標系X Y Z的值來指定的。

Python中的序列操作

Python中的序列操作 分類: python undefined 官方手冊&#xff1a;https://docs.python.org/3.7/library/stdtypes.html#sequence-types-list-tuple-range 序列簡介 序列是指按照位置順序來存儲數據的數據結構&#xff0c;也就是說能通過數值索引進行操作。實際上&#x…

automaticallyAdjustsScrollViewInsets的作用

簡單點說就是automaticallyAdjustsScrollViewInsets根據按所在界面的status bar&#xff0c;navigationbar&#xff0c;與tabbar的高度&#xff0c;自動調整scrollview的 inset,設置為no&#xff0c;不讓viewController調整&#xff0c;我們自己修改布局即可~轉載于:https://ww…

JavaScript 基礎知識 - BOM篇

前言 本篇文章是JavaScript基礎知識的BOM篇&#xff0c;如果前面的《JavaScript基礎知識-DOM篇》看完了&#xff0c;現在就可以學習BOM了。 注意&#xff1a; 所有的案例都在這里鏈接: 提取密碼密碼: yvxo&#xff0c;文章中的每個案例后面都有對應的序號。 1. BOM 基本概念 B…

全球首例機器人自殺事件 因受夠無聊家務

據鳳凰網,一個奧地利家庭購買一小機器人,每天工作就是倒垃圾、倒垃圾。一天完工后,它竟自己啟動,爬到爐邊&#xff0c;推開上面的鍋&#xff0c;把自己活活燒死…專家稱這個機器人實在受夠了無聊的家務瑣事&#xff0c;才毅然選擇自殺機器人也是有尊嚴的!為這有骨氣的robot點根…

【python基礎】——數據類型(列表、字典、集合)

駿馬金龍——python語法基礎 python基礎 變量與運算 符號//%**意義整除整除取余冪次方數據種類 #mermaid-svg-7nSRRijcYFCYwTDr .label{font-family:trebuchet ms, verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-7nSRRijcYFCYw…

linux命令:mkdir命令

命令參數&#xff1a; -m, --mode模式&#xff0c;設定權限<模式> (類似 chmod)&#xff0c;而不是 rwxrwxrwx 減 umask -p, --parents 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄; …

js設置奇偶行數樣式

$(document).ready(function () {odd { "background": "none" }; //奇數樣式 even { "background": "#f3f3f3" }; //偶數樣式 odd_even(".gys_xq", odd, even);});function odd_even(id, odd, even) {$(id).find("…

貝塞爾曲線切割圓角

ios 系統框架已經給我們提供了相應的切割圓角的方法, 但是如果在一個見面有很多控件切割的話會出現卡頓和個別不切的現象 ?123456789101112131415161718192021222324252627/* 創建一個Button */UIButton * button [UIButton buttonWithType:(UIButtonTypeSystem)];[button se…

機器人實現屠宰自動化

當 WESTFLEISCH 注冊合作社考慮在 Coesfeld 肉類加工中心內自動化原有的人工屠宰設備過程時&#xff0c;首先在“剔除直腸”及“切開盆腔骨及腹部”兩個流程中測試使用了兩臺庫卡機器人。在此過程中&#xff0c;機器人主要以它工作的質量及經濟效益說服了使用者。 實施措施/解…

DOM編程藝術12章

在submit.html中&#xff0c;代碼簡略成如下也行 <article><h1>Thanks!</h1><p>Thanks for contacting us. Well get back to you as soon as we can.</p></article> </body> </html> 說明了只是插入article的部分&#xff0c…

python數據結構《排序專題復習》

目錄 常見的三種排序方法 冒泡排序 插入排序 選擇排序 其他經典的排序方法 快速排序 堆排序 歸并排序 希爾排序 不同排序方法的各維度對比 排序方式的穩定性&#xff1a;若兩個相同的元素在排序前后的相對位置不發生改變的排序為穩定排序&#xff0c;否則不穩定排序 常…

BZOJ2844 albus就是要第一個出場

AC通道&#xff1a;http://www.lydsy.com/JudgeOnline/problem.php?id2844 這題貌似HDU上有一道差不多的題&#xff0c;不過我沒做過&#xff0c;也就沒管了。 首先講一個線性基的東西&#xff0c;大概就是這樣&#xff1a; 然后就是一個什么性質&#xff1a;S異或起來會出現重…

HTG Explains: Why Linux Doesn’t Need Defragmenting

If you’re a Linux user, you’ve probably heard that you don’t need to defragment your Linux file systems. You’ll also notice that Linux distributions don’t come with disk-defragmenting utilities. But why is that? To understand why Linux file systems d…