hadoop為什麼要配置ssh
㈠ 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)