㈠ 搭建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能夠互相無密登陸。
㈡ windows本地沒有hadoop 下怎麼配置linux 下的hadoop home
Windows下運行Hadoop,通常有兩種方式:一種是用VM方式安裝一個Linux操作系統,這樣基本可以實現全Linux環境的Hadoop運行;另一種是通過Cygwin模擬Linux環境。後者的好處是使用比較方便,安裝過程也簡單。在這里咱們就來看看第二種方案:如何再Windows下快速安裝一個Hadoop環境,並結合Eclipse開發環境研究和調整Hadoop代碼。整個安裝過程包括以下三大步驟:安裝和配置Cygwin(http://cygwin.com/install.html)安裝和配置Hadoop-1.2.1(http://hadoop.apache.org/docs/stable/cluster_setup.html)安裝和配置Eclipse開發環境1安裝和配置Cygwin在Windows下通過安裝Cygwin模擬Linux環境,然後再安裝Hadoop,是一種簡單方便的方式,為Hadoop准備的模擬Linux環境安裝過程如下:1.1下載安裝文件針對不同系統類型下載相應的安裝文件,下載地址:http://cygwin.com/install.html。我這里的系統是window 7所以下載的是setup-x86.exe1.2安裝Cygwin剛剛下載的文件是模擬Linux系統所依賴的軟體包下載和管理工具,以後想要在模擬Linux環境中安裝或更新軟體都需要通過這個工具來完成,下面我們就先運行起來這個工具如下:左鍵雙擊setup-x86.exe文件運行安裝向導:cygwin安裝點擊【下一步】按鈕進入程序引導安裝頁,這里有三個選項,選擇第一項網路安裝:網路安裝:通過網路下載並安裝軟體包下載但不安裝:通過網路下載軟體包本地安裝:是用本地軟體包安裝cygwin安裝點擊【下一步】進入選擇模擬Linux系統的根目錄和用戶的向導頁。在Linux的文件系統中有且只有一個根目錄,在這里選擇目錄就是Linux中的那個根目錄了,這里選擇默認:c:\cygwin;用戶選擇第一項:本系統的所有有效用戶。cygwin安裝點擊【下一步】選擇本地軟體包目錄,該工具會自動記住並將以後下載的所有軟體包都會放到這里指定的目錄。我這里選擇:C:\Users\Administrator\Desktop\1,如果選擇不存在目錄,就好提示是否創建目錄選Yes就OK。cygwin安裝點擊【下一步】選擇您的網路連接,我這里使用的是代理伺服器上網,所以我選擇第二項:使用IE瀏覽器代理設置。經測試選擇第三項輸入代理伺服器地址和埠,不能正常訪問網路,原因不明。cygwin安裝點擊【下一步】,等待下載鏡像站點列表,下載完成後出現選擇下載軟體包的站點。如圖:cygwin安裝根據自己的情況選擇合適的下載地址,我這里選擇了國內的163站點,點擊【下一步】,這個工具就會自動下載軟體包信息列表下載完成後進入安裝軟體包選擇頁,如下圖:cygwin安裝這一步比較重要,以下軟體包要確保被安裝:cygwin安裝註:這個軟體包列表由前到後包括:分類、當前安裝版本,最新版本,安裝可執行文件?,安裝源代碼文件?,大小,包名稱和說明。基礎軟體包:Base及其下面的所有軟體包,操作方法:點擊Base後面的Default為Install。SSH相關軟體包:Net下的OpenSSL和和OpenSSH,用於Hadoop需要的SSH訪問,操作方法:點擊【+】展開Net節點,點擊各個軟體包前的最新版本號列的Keep為版本號即為選中安裝。其他軟體包根據自己的需要選中是否安裝即可,我這里還選中了Emacs、VIM、Perl、Python、Ruby、Science、subversion等常用工具。選擇完軟體包點擊【下一步】,進入自動下載與安裝,如下圖:cygwin安裝點擊【下一步】進入向導結束頁,勾選創建桌面快捷方式點擊【完成即可】,如圖:cygwin安裝到這里,您已經完成了模擬Linux環境的安裝,左鍵雙擊桌面上的圖標打開這個模擬Linux的終端窗口輸入幾個常用Linux命令體驗下這個模擬的Linux系統吧,除了可以執行Linux常用命令外,還可以執行Windows的命令例如:net start service_name等。體驗完成後繼續下面的配置工作。1.3配置Cygwin的SSH服務Cygwin安裝完成後,需要先配置SSH服務,以滿足Hadoop提出的SSH無密碼登入,過程如下:打開模擬Linux的終端,進入Linux環境執行命令:ssh-host-config如圖:Hadoop安裝第一次詢問:「Should privilege separation be used? (yes/no)」,輸入no回車。第二次詢問:「Do you want to install sshd a service?」,輸入yes回車。第三次提示:「Enter the value of CYGWIN for the demon: []」,直接回車。第四次詢問:「Do you want to use a different name? (yes/no)」,輸入no回車。第五次提示:「Please enter the password for user 『cyg_server』:」,輸入密碼回車,在此輸入密碼回車。最後提示配置完成。1.4啟動SSH服務在Linux終端或Windows命令行執行net start sshd或命令cygrunsrv –S sshd啟動SSH服務。測試ssh登入本機:在終端執行命令:ssh localhost提示輸入密碼:輸入密碼回車,如下圖:Hadoop安裝 1.5配置SSH免密碼登入在終端執行命令:ssh-keygen -t dsa -P 」 -f ~/.ssh/id_dsa生成秘鑰。執行命令:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys生成認證文件。執行命令:ssh localhost測試是否無需輸入密碼即可登入。Hadoop安裝1.6Cygwin使用積累1.6.1在cygwin里訪問Windows盤cd /cygdrive/c1.6.2整合cygwin命令到Windows中假設cygwin安裝在d:/develop/cygwin,則將d:/develop/cygwin/bin添加到系統變數PATH中(最好加在windows前面,這樣的話,有些相同的命令的話,是先執行cygwin的命令,而不是windows命令,比如find)。添加完後就可以直接在cmd.exe下面執行tar czvf xxx.tgz ./基本上所有的命令都可以用了,包括ls,more,less,find,grep等。1.6.3使用TGZ備份將cygwin的BIN加入到PATH建一個BAT文件:@echo offd:cd d:/website/8thmanagetar czvf 8thmanage.tgz 8thmanage1.6.4Windows使用SHELL腳本將cygwin的BIN加入到PATH在$CYGWIN的目錄/var/下面建一腳本t.sh,注意,t.sh裡面的路徑,都是相對於$CYGWIN的,裡面需要訪問C盤的,請用/cygdrive/c/在Windows下執行:d:/cygwin/bin/bash d:/cygwin/var/t.sh(可以定期執行)1.6.5同步Windows系統用戶mkpasswd -l > /etc/passwdmkgroup -l > /etc/group如果有Domain的話,需要加上-d domainname1.6.6安裝系統服務cygrunsrv1.6.7cygwing下使用rsync安裝rsync組件進入cygwin,配置伺服器vi /etc/rsyncd.conf…screts file=/etc/tom.ipaddr.pas配置文件,參考我寫的另外一篇rsync的文章,注意:密碼文件許可權必須是0400chmod 0400 /etc/tom.ipaddr.pas啟動服務端rsync –daemon客戶端同步在客戶端的cygwin下面,運行rsync同步,具體命令,請參考另外一篇rsync的文章。1.6.8cygwin下使用SSHD需要安裝了cygrunsrc,openssh運行ssh-host-config -y一路回車,直到出現CYGWIN=時,輸入tty ntsec,再回車,(或者,增加一系統環境變數CUGWIN=nesec tty)已經安裝好SSHD服務到你的Windows服務中,可以直接在服務中啟動,關閉。(cygrunsrc -S sshd或者net start sshd)1.6.9中文顯示vi ~/.bashrc# 讓ls和dir命令顯示中文和顏色alias ls=』ls –show-control-chars –color』alias dir=』dir -N –color』# 設置為中文環境,使提示成為中文export LANG=」zh_CN.GBK」# 輸出為中文編碼export OUTPUT_CHARSET=」GBK」~/.inputrc為set completion-ignore-case onset meta-flag onset output-meta. onset convert-meta. offcygwin.bat腳本為:@echo offset MAKE_MODE=UNIX
㈢ 如何配置一個環境變數HADOOP
典型的配置:
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_HOME=$HADOOP_HOMEexport
YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export
LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server:/usr/local/lib:$HADOOP_HOM
/lib/native
修改hadoop解壓文件名稱 :
mv hadoop-2.4.1 hadoop
將hadoop安裝目錄的許可權賦值為hadoop用戶:
chown -R hadoop:hadoop hadoop
創建Hadoop數據目錄,並賦予許可權:
[root@djt java]# mkdir -p /data/dfs/name
[root@djt java]# mkdir -p /data/dfs/data
[root@djt java]# mkdir -p /data/tmp
[root@djt java]# chown -R hadoop:hadoop hadoop /data/
[root@djt java]# ls -l /d
data/ dev/ [root@djt java]# ls -l /data/
total 8
drwxr-xr-x 4 hadoop hadoop 4096 May 21 17:26 dfs
drwxr-xr-x 2 hadoop hadoop 4096 May 21 17:26 tmp
1.1修改主機名
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=itcast ###
㈣ hadoop官網配置項怎麼找
假設HADOOP_HOME是hadoop安裝目錄,
如果hadoop版本是0.20.2的話,那麼其默
認配置(也許就是你說的官方配置)文件
就是以下幾個:
$HADOOP_HOME/src/core/core-default.xml
$HADOOP_HOME/src/hdfs/hdfs-default.xml
$HADOOP_HOME/src/mapred/mapred-default.xml
㈤ 如何配置hadoop偽分布式配置
0.關閉防火牆
service iptables start;#立即開啟防火牆,但是重啟後失效。
service iptables stop;#立即關閉防火牆,但是重啟後失效。
重啟後生效
chkconfig iptables on;#開啟防火牆,重啟後生效
chkconfig iptables off;#關閉防火牆,重啟後生效
1.配置主機名
!!!!!注意安裝hadoop的集群主機名不能有下劃線!!不然會找不到主機!無法啟動!
配置主機名
$vi /etc/sysconfig/network
$source /etc/sysconfig/network
例如:
NETWORKING=yes
HOSTNAME=hadoop01
2.配置Hosts
vi /etc/hosts
填入以下內容
127.0.0.1 hadoop01
其他主機和ip對應信息。。。
3.配置面密碼互通
生成自己的公鑰和私鑰,生成的公私鑰將自動存放在/root/.ssh目錄下。
$ ssh-keygen
把生成的公鑰到遠程機器上
$ ssh--id [user]@[host]
此時在遠程主機的/root/.ssh/authorized_keys文件中保存了公鑰,在known_hosts中保存了已知主機信息,當再次訪問的時候就不需要輸入密碼了。
$ ssh [host]
通過此命令遠程連接,檢驗是否可以不需密碼連接
4.安裝JDK
通過fz將jdk安裝包上傳
解壓安裝包
tar -zxvf [jdk安裝包位置]
配置環境變數
修改profile -- 這個文件是每個用戶登錄時都會運行的環境變數設置,當用戶第一次登錄時,該文件被執行. 並從/etc/profile.d目錄的配置文件中搜集shell的設置。
vim /etc/profile
在文件行尾加入配置後保存退出
export JAVA_HOME=/home/app/jdk1.7.0_45/
export PATH=$PATH:$JAVA_HOME/bin
重新載入profile使配置生效
source /etc/profile
環境變數配置完成,測試環境變數是否生效
echo $JAVA_HOME
java -version
5.安裝hadoop
通過fz將hadoop安裝包上傳到linux
解壓安裝包
tar -zxvf [hadoop安裝包位置]
6.配置hadoop
(1)修改 hadoop-env.sh
通過vim打開
vim [hadoop]/etc/hadoop/hadoop-env.sh
主要是修改java_home的路徑
在hadoop-env.sh的第27行,把export JAVA_HOME=${JAVA_HOME}修改成具體的路徑
重新載入使修改生效
source hadoop-env.sh
(2)修改 core-site.xml
通過vim打開
vim [hadoop]/etc/hadoop/core-site.xml
增加namenode配置、文件存儲位置配置
<configuration>
<property>
<!--用來指定hdfs的老大,namenode的地址-->
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<!--用來指定hadoop運行時產生文件的存放目錄-->
<name>hadoop.tmp.dir</name>
<value>/home/park/work/hadoop-2.5.2/tmp</value>
</property>
</configuration>
(3)修改 hdfs-site.xml
通過vim打開
vim [hadoop]/etc/hadoop/hdfs-site.xml
配置包括自身在內的備份副本數量。
<configuration>
<property>
<!--指定hdfs保存數據副本的數量,包括自己,默認為3-->
<!--偽分布式模式,此值必須為1-->
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
(4)修改 mapred-site.xml
說明:在/etc/hadoop的目錄下,只有一個mapred-site.xml.template文件,復制一個
cp mapred-site.xml.template mapred-site.xml
通過vim打開
vim [hadoop]/etc/hadoop/mapred-site.xml
配置maprece運行在yarn上
<configuration>
<property>
<!--指定maprece運行在yarn上-->
<name>maprece.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5)修改 yarn-site.xml
通過vim打開
vim [hadoop]/etc/hadoop/yarn-site.xml
配置
<configuration>
<property>
<!--指定yarn的老大resourcemanager的地址-->
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<!--NodeManager獲取數據的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>maprece_shuffle</value>
</property>
</configuration>
(6)修改 slaves
(7)配置hadoop的環境變數
vim /etc/profile
export HADOOP_HOME=/home/park/work/hadoop-2.5.2/
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
重新載入profile使配置生效
source /etc/profile
環境變數配置完成,測試環境變數是否生效
echo $HADOOP_HOME
(8)重啟linux
$reboot
????為什麼需要重啟配置文件才起作用?原因不明????
(8)格式化namenode
進入 hadoop/bin 輸入命令格式化namenode
hadoop namenode -format(hdfs namenode -format 以前的方式)
在格式化的時候,會有這樣的輸出:
Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted
7.啟動hadoop
在/home/app/hadoop-2.6.0/sbin目錄下
$start-all.sh
8.關閉hadoop
在/home/app/hadoop-2.6.0/sbin目錄下
$stop-all.sh
9.hdfs命令
hadoop fs -mkdir /user/trunk
hadoop fs -ls /user
hadoop fs -lsr /user (遞歸的)
hadoop fs -put test.txt /user/trunk
hadoop fs -put test.txt . (復制到hdfs當前目錄下,首先要創建當前目錄)
hadoop fs -get /user/trunk/test.txt . (復制到本地當前目錄下)
hadoop fs -cat /user/trunk/test.txt
hadoop fs -tail /user/trunk/test.txt (查看最後1000位元組)
hadoop fs -rm /user/trunk/test.txt
hadoop fs -rmdir /user/trunk
hadoop fs -help ls (查看ls命令的幫助文檔)
10.通過瀏覽器訪問hadoop管理頁面
http://[server_ip]:50070
**如果訪問不了有可能是伺服器50070埠被關閉了。通過如下方式打開50070埠:
service iptables status #查詢防火牆狀態
service iptables start #開啟防火牆
iptables -I INPUT -p tcp --dport 80 -j ACCEPT #開通特定埠
iptables -I INPUT -p tcp --dport 80 -j DROP #關閉特定埠
service iptables save #保存配置
service iptables restart #重啟防火牆
㈥ 如何在Linux上安裝與配置Hadoop
一、安裝hadoop
1 因為hadoop是基於java的,所以要保證hadoop能找到在本地系統中大路徑,即正確設置java的環境變數。
詳細請看:linux 安裝配置jdk
2 到官網: 下載hadoop,
這里我選擇hadoop1.0.4
3 解壓到 /usr/local
tar -xvf hadoop-1.0.4.tar.gz
4 設置hadoop環境變數,為了使環境變數永久有效並對所有用戶有效,我們將下面兩句添加到/etc/profile
export HADOOP_HOME=/usr/local/hadoop-1.0.4
export PATH=$PATH:$HADOOP_HOME/bin
5 驗證hadoop是否可以運行
hadoop version
ok, 安裝成功!(看不算安裝吧,哈哈)
二、配置偽分布式模式
根據上面步驟安裝成功後,hadoop處於獨立模式即本機模式,在本機模式下,沒有運行守護進程,所有程序運行在單個JVM上。本機模式用於開發階段測試調試MapRece程序。偽分布模式用於在本機上模擬一個小規模的集群,全分布模式配置較為復雜,留作後面的文章。
1 配置hadoop
(1) 修改core-site.xml,設置namenode主機及hadoop文件系統
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9001</value>
</property>
</configuration>
(2) 修改hdfs-site.xml,設置數據塊副本數目
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(3) 修改mapred-site.xml,設置jobtracker主機及埠
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
(4)修改hadoop-env.sh,設置JAVA_HOME
在hadoop-env.sh中添加,本機中jdk路徑
export JAVA_HOME=/usr/local/jdk1.7.0
2 配置SSH
(1)如果沒有安裝SSH,安裝之:sudo apt-get install ssh
一般情況下,ubuntu默認安裝openssh-client,但沒有安裝server,我們需要先安裝server:
sudo apt-get install openssh-server
(2)基於空口令創建一個新的SSH密鑰,啟用無密碼登錄
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(3)測試連接是否成功:
ssh localhost
3 格式化HDFS文件系統以創建一個空大文件系統
hadoop namenode -format
4 啟動守護系統HDFS和MapRece
start-dfs.sh
start-mapred.sh
5 查看守護進程啟動情況
jps
如果顯示:
10716 DataNode
11305 Jps
10938 SecondaryNameNode
10503 NameNode
11037 JobTracker
11251 TaskTracker
ok, hadoop偽分布模式配置成功!
㈦ winserver 2012 怎麼配置hadoop
1、安裝JDK1.6或更高版本
官網下載JDK,安裝時注意,最好不要安裝到帶有空格的路徑名下,例如:Programe Files,否則在配置Hadoop的配置文件時會找不到JDK(按相關說法,配置文件中的路徑加引號即可解決,但我沒測試成功)。
2、安裝Cygwin
Cygwin是Windows平台下模擬Unix環境的工具,需要在安裝Cygwin的基礎上安裝Hadoop
根據操作系統的需要下載32位或64的安裝文件。
1)、雙擊下載好的安裝文件,點擊下一步,選擇install from internet
2)、選擇安裝路徑
3)、選擇local Package Directory
4)、選擇您的Internet連接方式
5)、選擇合適的安裝源,點擊下一步
6)、在Select Packages界面里,Category展開net,選擇如下openssh和openssl兩項
如果要在Eclipe上編譯Hadoop,需要安裝Category為Base下的sed
如果想在Cygwin上直接修改hadoop的配置文件,可以安裝Editors下的vim
7)、點擊「下一步」,等待安裝完成。
3、配置環境變數
在「我的電腦」上點擊右鍵,選擇菜單中的「屬性",點擊屬性對話框上的高級頁簽,點擊」環境變數"按鈕,在系統變數列表裡雙擊「Path」變數,在變數值後輸入安裝的Cygwin的bin目錄,例如:D:hadoopcygwin64in
4、安裝sshd服務
雙擊桌面上的Cygwin圖標,啟動Cygwin,執行ssh-host-config -y命令
執行後,會提示輸入密碼,否則會退出該配置,此時輸入密碼和確認密碼,回車。最後出現Host configuration finished.Have fun!表示安裝成功。
輸入net start sshd,啟動服務。或者在系統的服務里找到並啟動Cygwin sshd服務。
可能會遇到無法安裝和啟動sshd服務的問題,可參考此連接http://www.cnblogs.com/kinglau/p/3261886.html。
另外如果是Win8操作系統,啟動Cygwin時,需要以管理員身份運行(右鍵圖標,選擇以管理員身份運行),否則會因為許可權問題,提示「發生系統錯誤5」。
5、配置SSH免密碼登錄
執行ssh-keygen命令生成密鑰文件
如下圖所示,輸入:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa,注意-t -P -f參數區分大小寫。
ssh-keygen是生成密鑰命令
-t 表示指定生成的密鑰類型(dsa,rsa)
-P表示提供的密語
-f指定生成的密鑰文件。
注意:~代表當前用戶的文件夾,/home/用戶名
執行此命令後,在你的Cygwinhome用戶名 路徑下面會生成.ssh文件夾,可以通過命令ls -a /home/用戶名 查看,ssh -version命令查看版本。
執行完ssh-keygen命令後,再執行下面命令,就可以生成authorized_keys文件了。
cd~/.ssh/
cpid_dsa.pubauthorized_keys
如下圖所示:
然後執行exit命令,退出Cygwin窗口
6、再次在桌面上雙擊Cygwin圖標,打開Cygwin窗口,執行ssh localhost命令,第一次執行該命令會有提示,輸入yes後,回車即可。如下圖所示
7、安裝Hadoop
把hadoop壓縮包解壓到/home/用戶名 目錄下,文件夾名稱更改為hadoop,可以不修改,但後邊在執行命令時稍顯麻煩。
(1)單機模式配置方式
單機模式不需要配置,這種方式下,Hadoop被認為是一個單獨的Java進程,這種方式經常用來調試。
(2)偽分布模式
可以把偽分布模式看作是只有一個節點的集群,在這個集群中,這個節點既是Master,也是Slave,既是NameNode,也是DataNode,既是JobTracker,也是TaskTracker。
這種模式下修改幾個配置文件即可。
配置hadoop-env.sh,記事本打開改文件,設置JAVA_HOME的值為你的JDK安裝路徑,例如:
JAVA_HOME="D:hadoopJavajdk1.7.0_25"
配置core-site.xml
<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl"href="configuration.xsl"?>
<!--Putsite-.-->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>mapred.child.tmp</name>
<value>/home/u/hadoop/tmp</value>
</property>
</configuration>
配置hdfs-site.xml
<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl"href="configuration.xsl"?>
<!--Putsite-.-->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
配置mapred-site.xml
<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl"href="configuration.xsl"?>
<!--Putsite-.-->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
<property>
<name>mapred.child.tmp</name>
<value>/home/u/hadoop/tmp</value>
</property>
</configuration>
8、啟動Hadoop
打開Cgywin窗口,執行cd ~/hadoop命令,進入hadoop文件夾,如下圖:
啟動Hadoop前,需要先格式化Hadoop的文件系統HDFS,執行命令:bin/hadoop namenode -format
注意namenode要小些,否則如果輸入NameNode,會提示錯誤,找不到或無法載入主類NameNode。執行正確命令後如下圖所示:
輸入命令 bin/start-all.sh,啟動所有進程,如下圖:
接下來,驗證是否安裝成功
打開瀏覽器,分別輸入下列網址,如果能夠正常瀏覽,說明安裝成功。
localhost:50030,回車打開MapRece的web頁面,如下圖(頁面部分截圖):
localhost:50070,回車打開HDFS的web頁面,如下圖(頁面部分截圖):
第一次啟動後,如果都不能瀏覽,或不能瀏覽某一個,退出Cygwin,重新打開Cygwin,執行bin/start-all.sh命令。
如果只想啟動MapRece,可執行bin/start-mapred.sh命令。
如果只想啟動HDFS,可執行bin/start-dfs.sh命令。
㈧ hiveos網路配置
摘要 Hive的必要配置相當簡單,只需要聲明$HADOOP_HOME(請查閱《Hadoop安裝》文檔)這個環境變數就行了。
㈨ hadoop設置執行對應角色
做法:
(1)核心配置文件core-site.xml,該配置文件屬於Hadoop的全局配置文件,我們主要進行配置分布式文件系統的入口地址NameNode的地址和分布式文件系統中數據落地到伺服器本地磁碟位置的配置
(2)Hadoop環境配置文件hadoop-env.sh,在這個配置文件中我們主要需要制定jdk的路徑JAVA_HOME,避免程序運行中出現JAVA_HOME找不到的異常。
(3)HDFS配置文件hdfs-site.xml,在這個配置文件中主要進行配置HDFS文件系統屬性配置。
(4)YARN的環境配置文件yarn-env.sh,同樣將JAVA_HOME路徑配置指明。
(5)關於YARN的配置文件yarn-site.xml,其中配置YARN的相關參數,主要配置一下兩個參數。
(6)maprece的環境配置文件mapred-env.sh,同樣將JAVA_HOME路徑配置指明。(7)關於MapRece的配置文件mapred-site.xml,主要配置一個參數,指明MapRece的運行框架為YARN.
(8)主節點NameNode和ResourceManager的角色在配置文件中已經做了配置,從節點的角色還需指定,配置文件slaves就是用來配置Hadoop集群中各個從節點角色的。如下,對slaves文件進行修改,即將3台節點全部指定為從節點,可以啟動DataNode和NodeManager進程。
(9)在集群上分發配置好的Hadoop配置文件,這樣3台節點即享有相同的Hadoop的配置,可准備通過不同的進程啟動命令進行啟動了。
(10)查看文件分發情況。
㈩ 安裝hadoop的步驟有哪些
hadoop2.0已經發布了穩定版本了,增加了很多特性,比如HDFSHA、YARN等。最新的hadoop-2.4.1又增加了YARNHA
注意:apache提供的hadoop-2.4.1的安裝包是在32位操作系統編譯的,因為hadoop依賴一些C++的本地庫,
所以如果在64位的操作上安裝hadoop-2.4.1就需要重新在64操作系統上重新編譯
(建議第一次安裝用32位的系統,我將編譯好的64位的也上傳到群共享里了,如果有興趣的可以自己編譯一下)
前期准備就不詳細說了,課堂上都介紹了
1.修改Linux主機名
2.修改IP
3.修改主機名和IP的映射關系
######注意######如果你們公司是租用的伺服器或是使用的雲主機(如華為用主機、阿里雲主機等)
/etc/hosts裡面要配置的是內網IP地址和主機名的映射關系
4.關閉防火牆
5.ssh免登陸
6.安裝JDK,配置環境變數等
集群規劃:
主機名 IP 安裝的軟體 運行的進程
HA181 192.168.1.181 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
HA182 192.168.1.182 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
HA183 192.168.1.183 jdk、hadoop ResourceManager
HA184 192.168.1.184 jdk、hadoop ResourceManager
HA185 192.168.1.185 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
HA186 192.168.1.186 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
HA187 192.168.1.187 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
說明:
1.在hadoop2.0中通常由兩個NameNode組成,一個處於active狀態,另一個處於standby狀態。ActiveNameNode對外提供服務,而StandbyNameNode則不對外提供服務,僅同步activenamenode的狀態,以便能夠在它失敗時快速進行切換。
hadoop2.0官方提供了兩種HDFSHA的解決方案,一種是NFS,另一種是QJM。這里我們使用簡單的QJM。在該方案中,主備NameNode之間通過一組JournalNode同步元數據信息,一條數據只要成功寫入多數JournalNode即認為寫入成功。通常配置奇數個JournalNode
這里還配置了一個zookeeper集群,用於ZKFC(DFSZKFailoverController)故障轉移,當ActiveNameNode掛掉了,會自動切換StandbyNameNode為standby狀態
2.hadoop-2.2.0中依然存在一個問題,就是ResourceManager只有一個,存在單點故障,hadoop-2.4.1解決了這個問題,有兩個ResourceManager,一個是Active,一個是Standby,狀態由zookeeper進行協調
安裝步驟:
1.安裝配置zooekeeper集群(在HA185上)
1.1解壓
tar-zxvfzookeeper-3.4.5.tar.gz-C/app/
1.2修改配置
cd/app/zookeeper-3.4.5/conf/
cpzoo_sample.cfgzoo.cfg
vimzoo.cfg
修改:dataDir=/app/zookeeper-3.4.5/tmp
在最後添加:
server.1=HA185:2888:3888
server.2=HA186:2888:3888
server.3=HA187:2888:3888
保存退出
然後創建一個tmp文件夾
mkdir/app/zookeeper-3.4.5/tmp
再創建一個空文件
touch/app/zookeeper-3.4.5/tmp/myid
最後向該文件寫入ID
echo1>/app/zookeeper-3.4.5/tmp/myid
1.3將配置好的zookeeper拷貝到其他節點(首先分別在HA186、HA187根目錄下創建一個weekend目錄:mkdir/weekend)
scp-r/app/zookeeper-3.4.5/HA186:/app/
scp-r/app/zookeeper-3.4.5/HA187:/app/
注意:修改HA186、HA187對應/weekend/zookeeper-3.4.5/tmp/myid內容
HA186:
echo2>/app/zookeeper-3.4.5/tmp/myid
HA187:
echo3>/app/zookeeper-3.4.5/tmp/myid
2.安裝配置hadoop集群(在HA181上操作)
2.1解壓
tar-zxvfhadoop-2.4.1.tar.gz-C/weekend/
2.2配置HDFS(hadoop2.0所有的配置文件都在$HADOOP_HOME/etc/hadoop目錄下)
#將hadoop添加到環境變數中
vim/etc/profile
exportJAVA_HOME=/app/jdk1.7.0_79
exportHADOOP_HOME=/app/hadoop-2.4.1
exportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
#hadoop2.0的配置文件全部在$HADOOP_HOME/etc/hadoop下
cd/home/hadoop/app/hadoop-2.4.1/etc/hadoop
2.2.1修改hadoop-env.sh
exportJAVA_HOME=/app/jdk1.7.0_79
2.2.2修改core-site.xml
<configuration>
<!--指定hdfs的nameservice為ns1-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1/</value>
</property>
<!--指定hadoop臨時目錄-->
<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop-2.4.1/tmp</value>
</property>
<!--指定zookeeper地址-->
<property>
<name>ha.zookeeper.quorum</name>
<value>HA185:2181,HA186:2181,HA187:2181</value>
</property>
</configuration>
2.2.3修改hdfs-site.xml
<configuration>
<!--指定hdfs的nameservice為ns1,需要和core-site.xml中的保持一致-->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!--ns1下面有兩個NameNode,分別是nn1,nn2-->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!--nn1的RPC通信地址-->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>HA181:9000</value>
</property>
<!--nn1的http通信地址-->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>HA181:50070</value>
</property>
<!--nn2的RPC通信地址-->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>HA182:9000</value>
</property>
<!--nn2的http通信地址-->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>HA182:50070</value>
</property>
<!--指定NameNode的元數據在JournalNode上的存放位置-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://HA185:8485;HA186:8485;HA187:8485/ns1</value>
</property>
<!--指定JournalNode在本地磁碟存放數據的位置-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/app/hadoop-2.4.1/journaldata</value>
</property>
<!--開啟NameNode失敗自動切換-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!--配置失敗自動切換實現方式-->
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.</value>
</property>
<!--配置隔離機制方法,多個機制用換行分割,即每個機制暫用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<!--使用sshfence隔離機制時需要ssh免登陸-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!--配置sshfence隔離機制超時時間-->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>
2.2.4修改mapred-site.xml
<configuration>
<!--指定mr框架為yarn方式-->
<property>
<name>maprece.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2.2.5修改yarn-site.xml
<configuration>
<!--開啟RM高可用-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--指定RM的clusterid-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
</property>
<!--指定RM的名字-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--分別指定RM的地址-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>HA183</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>HA184</value>
</property>
<!--指定zk集群地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>HA185:2181,HA186:2181,HA187:2181</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>maprece_shuffle</value>
</property>
</configuration>
2.2.6修改slaves(slaves是指定子節點的位置,因為要在HA181上啟動HDFS、在HA183啟動yarn,
所以HA181上的slaves文件指定的是datanode的位置,HA183上的slaves文件指定的是nodemanager的位置)
HA185
HA186
HA187
2.2.7配置免密碼登陸
#首先要配置HA181到HA182、HA183、HA184、HA185、HA186、HA187的免密碼登陸
#在HA181上生產一對鑰匙
ssh-keygen-trsa
#將公鑰拷貝到其他節點,包括自己
ssh--idHA181
ssh--idHA182
ssh--idHA183
ssh--idHA184
ssh--idHA185
ssh--idHA186
ssh--idHA187
#配置HA183到HA184、HA185、HA186、HA187的免密碼登陸
#在HA183上生產一對鑰匙
ssh-keygen-trsa
#將公鑰拷貝到其他節點
ssh--idHA184
ssh--idHA185
ssh--idHA186
ssh--idHA187
#注意:兩個namenode之間要配置ssh免密碼登陸,別忘了配置HA182到HA181的免登陸
在HA182上生產一對鑰匙
ssh-keygen-trsa
ssh--id-iHA181
2.4將配置好的hadoop拷貝到其他節點
scp-r/app/hadoop-2.5.1/HA182:/app/
scp-r/app/hadoop-2.5.1/HA183:/app/
scp-r/app/hadoop-2.5.1/HA184:/app/
scp-r/app/hadoop-2.5.1/HA185:/app/
scp-r/app/hadoop-2.5.1/HA186:/app/
scp-r/app/hadoop-2.5.1/HA187:/app/
###注意:嚴格按照下面的步驟
2.5啟動zookeeper集群(分別在HA185、HA186、tcast07上啟動zk)
cd/app/zookeeper-3.4.5/bin/
./zkServer.shstart
#查看狀態:一個leader,兩個follower
./zkServer.shstatus
2.6啟動journalnode(分別在在HA185、HA186、HA187上執行)
cd/app/hadoop-2.5.1
hadoop-daemon.shstartjournalnode
#運行jps命令檢驗,HA185、HA186、HA187上多了JournalNode進程
2.7格式化ZKFC(在HA181上執行即可) hdfszkfc-formatZK
2.8格式化HDFS
#在HA181上執行命令:
hdfsnamenode-format
#格式化後會在根據core-site.xml中的hadoop.tmp.dir配置生成個文件,這里我配置的是/app/hadoop-2.4.1/tmp,然後將/weekend/hadoop-2.4.1/tmp拷貝到HA182的/weekend/hadoop-2.4.1/下。
scp-rtmp/HA182:/app/hadoop-2.5.1/
##也可以這樣,建議hdfsnamenode-bootstrapStandby
2.9啟動HDFS(在HA181上執行)
sbin/start-dfs.sh
2.10啟動YARN(#####注意#####:是在HA183上執行start-yarn.sh,把namenode和resourcemanager分開是因為性能問題,因為他們都要佔用大量資源,所以把他們分開了,他們分開了就要分別在不同的機器上啟動)
sbin/start-yarn.sh
到此,hadoop-2.4.1配置完畢,可以統計瀏覽器訪問:
http://192.168.1.181:50070
NameNode'HA181:9000'(active)
http://192.168.1.182:50070
NameNode'HA182:9000'(standby)
驗證HDFSHA
首先向hdfs上傳一個文件
hadoopfs-put/etc/profile/profile
hadoopfs-ls/
然後再kill掉active的NameNode
kill-9<pidofNN>
通過瀏覽器訪問:http://192.168.1.182:50070
NameNode'HA182:9000'(active)
這個時候HA182上的NameNode變成了active
在執行命令:
hadoopfs-ls/
-rw-r--r--3rootsupergroup19262014-02-0615:36/profile
剛才上傳的文件依然存在!!!
手動啟動那個掛掉的NameNode
sbin/hadoop-daemon.shstartnamenode
通過瀏覽器訪問:http://192.168.1.181:50070
NameNode'HA181:9000'(standby)
驗證YARN:
運行一下hadoop提供的demo中的WordCount程序:
hadoopjarshare/hadoop/maprece/hadoop-maprece-examples-2.4.1.jarwordcount/profile/out
OK,大功告成!!!
CID-74d21742-3e4b-4df6-a99c-d52f703b49c0
測試集群工作狀態的一些指令:
bin/hdfsdfsadmin-report 查看hdfs的各節點狀態信息
bin/hdfshaadmin-getServiceStatenn1 獲取一個namenode節點的HA狀態
sbin/hadoop-daemon.shstartnamenode單獨啟動一個namenode進程
./hadoop-daemon.shstartzkfc單獨啟動一個zkfc進程