當前位置:首頁 » 存儲配置 » hadoop為什麼要配置ssh

hadoop為什麼要配置ssh

發布時間: 2023-11-04 22:47:00

㈠ hadoop分布式部署(轉載)--賊靠譜

原文地址:https://blog.csdn.net/sjmz30071360/article/details/79889055

1. 集群搭建形式

Hadoop環境搭建分為三種形式:單機模式、偽分布式模式、完全分布模式

單機模式—— 在一台單機上運行,沒有分布式文件系統,而是直接讀寫本地操作系統的文件系統。

偽分布式—— 也是在一台單機上運行,但不同的是java進程模仿分布式運行中的各類節點。即一台機器上,既當NameNode,又當DataNode,或者說既是JobTracker又是TaskTracker。沒有所謂的在多台機器上進行真正的分布式計算,故稱為「偽分布式」。

完全分布式—— 真正的分布式,由3個及以上的實體機或者虛擬機組成的機群。一個Hadoop集群環境中,NameNode,SecondaryName和DataNode是需要分配在不同的節點上,也就需要三台伺服器。

前兩種模式一般用在開發或測試環境下,生產環境下都是搭建完全分布式模式。

從分布式存儲的角度來說,集群中的節點由一個NameNode和若干個DataNode組成,另有一個SecondaryNameNode作為NameNode的備份。

從分布式應用的角度來說,集群中的節點由一個JobTracker和若干個TaskTracker組成。JobTracker負責任務的調度,TaskTracker負責並行執行任務。TaskTracker必須運行在DataNode上,這樣便於數據的本地計算。JobTracker和NameNode則無須在同一台機器上。

2. 環境

    操作系統:CentOS7(紅帽開源版)

    機器:虛擬機3台,(master 192.168.0.104, slave1 192.168.0.102, slave2 192.168.0.101)

    JDK:1.8(jdk-8u162-linux-x64.tar)

    Hadoop:2.9.0(http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz)

3. 搭建步驟

3.1 每台機器安裝&配置JDK(1台做好後,克隆出其它機器)

1) 創建目錄 mkdir /usr/java

2) 上傳jdk安裝包到 /usr/java/

3) 解壓 tar -xvf jdk-8u162-linux-x64.tar

4) 追加環境變數 vi /etc/profile

5) 使環境變數生效 source /etc/profile

6) 檢測jdk正確安裝 java -version

3.2 修改每台機器主機名(hostname)

hostnamectl set-hostname master  (立即生效)

hostnamectl set-hostname slave1    (立即生效)

hostnamectl set-hostname slave2    (立即生效)

確認修改

3.3 修改每台機器/etc/hosts文件

vi /etc/hosts

修改其中1台,然後scp到其它機器

scp 文件名 遠程主機用戶名@遠程主機名或ip:存放路徑

scp hosts [email protected]:/etc/

scp hosts [email protected]:/etc/

修改完之後,互ping其它機器,能互ping則說明修改OK

ping -c 3 slave1 (※ 3表示發送 3 個數據包)

3.4 配置ssh,實現無密碼登錄

無密碼登錄,效果也就是在master上,通過ssh slave1或者ssh slave2就可以登錄對方機器,而不用輸入密碼。

1) 每台機器執行ssh-keygen -t rsa,接下來一路回車即可

執行ssh-keygen -t rsa主要是生成 密鑰 和 密鑰的存放路徑

我們用的root用戶,公鑰私鑰都會保存在~/.ssh下

2) 在master上將公鑰放到authorized_keys里,命令:cat id_rsa.pub > authorized_keys

3) 將master上的authorized_keys放到其它機器上

scp authorized_keys root@slave1:~/.ssh/

scp authorized_keys root@slave2:~/.ssh/

4) 測試是否成功

3.5 上傳&配置hadoop(配置完master後,將/usr/hadoop/整個目錄內容到其它機器)

1) 創建目錄 mkdir /usr/hadoop

2) 上傳hadoop安裝包hadoop-2.9.0.tar.gz到 /usr/hadoop/

3) 解壓 tar -xvf hadoop-2.9.0.tar.gz

4) 追加環境變數 vi /etc/profile(其它機器也要相應配置一次hadoop環境變數)

5) 使環境變數生效 source /etc/profile

6) 確認環境變數配置OK

7) 創建HDFS存儲目錄

cd /usr/hadoop

mkdir hdfs

cd hdfs

mkdir name data tmp

/usr/hadoop/hdfs/name    --存儲namenode文件

/usr/hadoop/hdfs/data      --存儲數據

/usr/hadoop/hdfs/tmp      --存儲臨時文件

8) 修改/usr/hadoop/hadoop-2.9.0/etc/hadoop/hadoop-env.sh文件,設置JAVA_HOME為實際路徑

否則啟動集群時,會提示路徑找不到

9) 修改/usr/hadoop/hadoop-2.9.0/etc/hadoop/yarn-env.sh文件,設置JAVA_HOME為實際路徑

10) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/core-site.xml

增加hadoop.tmp.dir 和 fs.default.name

11) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml

dfs.replication:默認值3

dfs.permissions:默認值為true,設置為true有時候會遇到數據因為許可權訪問不了;設置為false可以不要檢查許可權就生成dfs上的文件

12) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/mapred-site.xml

cd /usr/hadoop/hadoop-2.9.0/etc/hadoop

cp mapred-site.xml.template mapred-site.xml

maprece.framework.name:指定maprece運行在yarn平台,默認為local

13) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/yarn-site.xml

yarn.resourcemanager.hostname:指定yarn的resourcemanager的地址

yarn.nodemanager.aux-services:recer獲取數據的方式

yarn.nodemanager.vmem-check-enabled:意思是忽略虛擬內存的檢查,如果安裝在虛擬機上,這個配置很有用,配上去之後後續操作不容易出問題。如果是在實體機上,並且內存夠多,可以將這個配置去掉

14) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/slaves文件,將裡面的localhost刪除,配置後內容如下:

15) 整個/usr/hadoop/目錄到其它機器

scp -r hadoop root@slave1:/usr/

scp -r hadoop root@slave2:/usr/

3.6 啟動Hadoop

1) 啟動之前需要格式化一下。因為master是namenode,slave1和slave2都是datanode,所以在master上運行

hadoop namenode -format

格式化成功後,可以看到在/usr/hadoop/hdfs/name目錄下多了一個current目錄,而且該目錄下有一系列文件,如下:

2) 執行啟動(namenode只能在master上啟動,因為配置在master上;datanode每個節點上都可以啟動)

執行 start-all.sh

master上執行jps,會看到NameNode, SecondaryNameNode, ResourceManager

其它節點上執行jps,會看到DataNode, NodeManager

3) 在wins上打開網頁,查看HDFS管理頁面 http://192.168.0.104:50070查看,提示無法訪問

在master上,執行以下命令關閉防火牆,即可訪問(為了能夠正常訪問node節點,最好把其它機器的防火牆也stop了)

systemctl stop firewalld.service

HDFS管理首頁

HDFS Datenodes頁

訪問Yarn管理頁: http://192.168.0.104:8088

4)通過主機名也可以訪問的設置

win7為例,需要將以下信息追加到C:\Windows\System32\drivers\etc\hosts文件中

192.168.0.104 master

192.168.0.102 slave1

192.168.0.101 slave2

Over!!!搭建成功!!!

4. 運行實例

cd /usr/hadoop/hadoop-2.9.0/share/hadoop/maprece

hadoop jar hadoop-maprece-examples-2.9.0.jar pi 5 10

。。。。。。

=====================================================

如果不關防火牆,子節點可能出現,輸入jps後只有jps一個進程,或者是缺進程的情況,關閉防火牆就好了。

㈡ 搭建hadoop集群,常用配置文件是什麼,以及配置哪些屬性

一. 簡介

參考了網上許多教程,最終把hadoop在ubuntu14.04中安裝配置成功。下面就把詳細的安裝步驟敘述一下。我所使用的環境:兩台ubuntu 14.04 64位的台式機,hadoop選擇2.7.1版本。(前邊主要介紹單機版的配置,集群版是在單機版的基礎上,主要是配置文件有所不同,後邊會有詳細說明)

二. 准備工作

2.1 創建用戶

創建用戶,並為其添加root許可權,經過親自驗證下面這種方法比較好。

1 sudo adser hadoop2 sudo vim /etc/sudoers3 # 修改內容如下:4 root ALL = (ALL)ALL5 hadoop ALL = (ALL)ALL

給hadoop用戶創建目錄,並添加到sudo用戶組中,命令如下:

1 sudo chown hadoop /home/hadoop2 # 添加到sudo用戶組3 sudo adser hadoop sudo

最後注銷當前用戶,使用新創建的hadoop用戶登陸。

2.2安裝ssh服務

ubuntu中默認是沒有裝ssh server的(只有ssh client),所以先運行以下命令安裝openssh-server。安裝過程輕松加愉快~

sudo apt-get install ssh openssh-server

2.3 配置ssh無密碼登陸

直接上代碼:執行完下邊的代碼就可以直接登陸了(可以運行ssh localhost進行驗證)

1 cd ~/.ssh# 如果找不到這個文件夾,先執行一下 "ssh localhost"2 ssh-keygen -t rsa3 cp id_rsa.pub authorized_keys

注意:

這里實現的是無密登陸自己,只適用與hadoop單機環境。如果配置Hadoop集群設置Master與Slave的SSH無密登陸可

三. 安裝過程

3.1 下載hadoop安裝包

有兩種下載方式:

1. 直接去官網下載:

2. 使用wget命令下載:

3.2 配置hadoop

1. 解壓下載的hadoop安裝包,並修改配置文件。我的解壓目錄是(/home/hadoop/hadoop-2.7.1),即進入/home/hadoop/文件夾下執行下面的解壓縮命令。

tar -zxvf hadoop-2.7.1.tar.gz

2. 修改配置文件:(hadoop2.7.1/etc/hadoop/)目錄下,hadoop-env.sh,core-site.xml,mapred-site.xml.template,hdfs-site.xml。

(1). core-site.xml 配置:其中的hadoop.tmp.dir的路徑可以根據自己的習慣進行設置。

至此,wordcount demo 運行結束。

六. 總結

配置過程遇到了很多問題,最後都一一解決,收獲很多,特此把這次配置的經驗分享出來,方便想要配置hadoop環境的各位朋友~

(Hadoop集群安裝配置過程基本和單機版是一樣的,主要是在配置文件方面有所區別,以及ssh無密登陸要求master和slave能夠互相無密登陸。

㈢ 如何在Linux上安裝與配置Hadoop

在Linux上安裝Hadoop之前,需要先安裝兩個程序:
1. JDK 1.6或更高版本;
2. SSH(安全外殼協議),推薦安裝OpenSSH。
下面簡述一下安裝這兩個程序的原因:
1. Hadoop是用Java開發的,Hadoop的編譯及MapRece的運行都需要使用JDK。
2. Hadoop需要通過SSH來啟動salve列表中各台主機的守護進程,因此SSH也是必須安裝的,即使是安裝偽分布式版本(因為Hadoop並沒有區分集群式和偽分布式)。對於偽分布式,Hadoop會採用與集群相同的處理方式,即依次序啟動文件conf/slaves中記載的主機上的進程,只不過偽分布式中salve為localhost(即為自身),所以對於偽分布式Hadoop,SSH一樣是必須的。
(2)配置環境變數
輸入命令:
sudo gedit /etc/profile
輸入密碼,打開profile文件。
在文件的最下面輸入如下內容:
#set Java Environment
export JAVA_HOME= (你的JDK安裝位置,一般為/usr/lib/jvm/java-6-sun)
export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
export PATH="$JAVA_HOME/:$PATH"
這一步的意義是配置環境變數,使你的系統可以找到JDK。
(3)驗證JDK是否安裝成功
輸入命令:
java -version
查看信息:
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Server VM (build 14.0-b16, mixed mode)

熱點內容
龍村m腳本 發布:2024-11-29 17:38:10 瀏覽:781
linuxc配置文件 發布:2024-11-29 17:08:31 瀏覽:826
wow刷碎片腳本 發布:2024-11-29 15:58:24 瀏覽:592
明小子源碼 發布:2024-11-29 15:15:30 瀏覽:144
蘋果8plus什麼配置 發布:2024-11-29 14:16:36 瀏覽:677
androidmvp結構 發布:2024-11-29 14:16:34 瀏覽:536
androidsqlite命令 發布:2024-11-29 14:04:38 瀏覽:156
信用卡分期演算法 發布:2024-11-29 13:50:56 瀏覽:808
安卓手機dll文件為什麼打不開 發布:2024-11-29 13:40:49 瀏覽:1003
百分之五十石碳酸怎麼配置 發布:2024-11-29 13:38:56 瀏覽:974