1 練習題目
2 Hadoop1.X安裝
2.1 准備工作
2.1.1 硬軟件環境
2.1.2 集群網絡環境
2.1.3 安裝使用工具
2.2 環境搭建
2.2.1 安裝操作系統
2.2.2 配置本地環境
2.2.3 設置操作系統環境
2.3 Hadoop變量配置
2.3.1 下載並解壓hadoop安裝包
2.3.2 在Hadoop-1.1.2目錄下創建子目錄
2.3.3 配置hadoop-env.sh
2.3.4 配置core-site.xml
2.3.5 配置hdfs-site.xml
2.3.6 配置mapred-site.xml
2.3.7 配置masters和slaves文件
2.3.8 向各節點復制hadoop
2.3.9 格式化namenode
2.3.10啟動hadoop
2.3.11用jps檢驗各后台進程是否成功啟動
3 Hadoop2.X安裝
3.1 運行環境說明
3.1.1 硬軟件環境
3.1.2 集群網絡環境
3.1.3 安裝使用工具
3.2 環境搭建
3.2.1 配置本地環境
3.2.2 設置操作系統環境
3.3 配置Hadooop設置
3.3.1 下載並解壓hadoop安裝包
3.3.2 在Hadoop目錄下創建子目錄
3.3.3 配置hadoop-env.sh
3.3.4 配置yarn-env.sh
3.3.5 配置core-site.xml
3.3.6 配置hdfs-site.xml
3.3.7 配置mapred-site.xml
3.3.8 配置yarn-site.xml
3.3.9 配置slaves文件
3.3.10向各節點分發hadoop程序
3.3.11格式化namenode
3.3.12啟動hdfs
3.3.13驗證當前進行
3.3.14啟動yarn
3.3.15驗證當前進行
4 問題解決
4.1 安裝CentOS64位虛擬機 This host supports Intel VT-x, but Intel VT-x is disabled
4.2 *** is not in the sudoers file解決方法
4.3 yum無法下載
1 練習題目
1. 完成Hadoop 1.x集群的安裝,把安裝的過程抓圖(不方便抓圖的可以用拍照等各種手段)放在作業中,作業中應要介紹具體的安裝環境和主要安裝步驟。
2. (可選)准備好Hadoop 2.x的安裝環境,下周進行Hadoop 2.x安裝,下周作業量可能比較大,請提前准備。可以考慮使用6台虛擬機,3台給1.x集群,3台給2.x集群,只要具備能同時開動三節點的能力即可。如果在同一節點上同時實施1.x和2.x可以考慮分開成不同的用戶進行安裝,這樣不容易混淆環境變量和主目錄。
2 Hadoop1.X安裝
2.1 准備工作
2.1.1硬軟件環境
以下為完全分布式環境下在CentOS6.5中配置Hadoop-1.1.2時的總結文檔,但該文檔也適合其他版本的Linux系統和目前各版本的Hadoop(需要注意的是Hadoop-0.20之后的版本配置文件hadoop-site.xml被拆分成了三個core-site.xml、hdfs-site.xml和mapred-site.xml)。
Hadoop搭建環境:
l 主機操作系統:Windows 64 bit,雙核4線程,主頻2.2G,6G內存
l 虛擬軟件:VMware® Workstation 9.0.0 build-812388
l 虛擬機操作系統:三個節點均為CentOS6.5 64位,單核,1G內存
l JDK:1.7.0_55 64位
l Hadoop:1.1.2
2.1.2集群網絡環境
集群包含三個節點:1個namenode、2個datanode,其中節點之間可以相互ping通。節點IP地址和主機名分布如下:
序號 |
機器名 |
類型 |
用戶名 |
運行進程 |
|
1 |
10.88.147.221 |
hadoop1 |
名稱節點 |
hadoop |
NN、SNN、JobTracer |
2 |
10.88.147.222 |
hadoop2 |
數據節點 |
hadoop |
DN、TaskTracer |
3 |
10.88.147.223 |
hadoop3 |
數據節點 |
hadoop |
DN、TaskTracer |
所有節點均是CentOS系統,防火牆均禁用,所有節點上均創建了一個hadoop用戶,用戶主目錄是/usr/hadoop。所有節點上均創建了一個目錄/usr/local/hadoop,並且擁有者是hadoop用戶。因為該目錄用於安裝hadoop,用戶對其必須有rwx權限。(一般做法是root用戶在/usr/local下創建hadoop目錄,並修改該目錄擁有者為hadoop(chown –R hadoop /usr/local/hadoop),否則通過SSH往其他機器分發Hadoop文件會出現權限不足的提示。
2.1.3安裝使用工具
2.1.3.1Linux文件傳輸工具
向Linux系統傳輸文件推薦使用SSH Secure File Transfer,該工具頂部為工具的菜單和快捷方式,中間部分左面為本地文件目錄,右邊為遠程文件目錄,可以通過拖拽等方式實現文件的下載與上傳,底部為操作情況監控區,如下圖所示:
2.1.3.2Linux命令行執行工具
l SSH Secure Shell
SSH Secure工具的SSH Secure Shell提供了遠程命令執行,如下圖所示:
l SecureCRT
SecureCRT是常用遠程執行Linux命令行工具,如下圖所示:
2.2 環境搭建
本次安裝集群分為三個節點,節點設置按照1.2章節進行設置。環境搭建分為三部分,具體為安裝操作系統、配置本地環境和設置操作系統環境。
2.2.1安裝操作系統
第一步插入CentOS 6.5的安裝介質,使用介質啟動電腦出現如下界面
lInstall or upgrade an existing system 安裝或升級現有的系統
linstall system with basic video driver 安裝過程中采用基本的顯卡驅動
lRescue installed system 進入系統修復模式
lBoot from local drive 退出安裝從硬盤啟動
lMemory test 內存檢測
第二步介質檢測選擇"Skip",直接跳過
第三步出現引導界面,點擊“next”
第四步選擇安裝過程語言,選中"English(English)"
第五步鍵盤布局選擇“U.S.English”
第六步選擇“Basic Storage Devies"點擊"Next"
第七步詢問是否覆寫所有數據,選擇"Yes,discard any data"
第八步Hostname填寫格式“英文名.姓”
第九步 時區可以在地圖上點擊,選擇“Shanghai”並取消System clock uses UTC選擇
第十步 設置root的密碼
第十一步 硬盤分區,一定要按照圖示點選
第十二步 詢問是否改寫入到硬盤,選擇"Write changes to disk"
第十三步 選擇系統安裝模式為"Desktop"
第十四步 桌面環境就設置完成了,點擊安裝
第十五步 安裝完成,重啟
第十六步 重啟之后,的License Information
第十七步 創建用戶和設置密碼
lUsername:填寫您的英文名(不帶.姓)
lFull Name:填寫您的英文名.姓(首字母大寫)
第十八步 "Date and Time" 選中 “Synchronize data and time over the network”
Finsh之后系統將重啟
2.2.2配置本地環境
該部分對服務器的配置需要在服務器本地進行配置,配置完畢后需要重啟服務器確認配置是否生效,特別是遠程訪問服務器需要設置固定IP地址。
2.2.2.1設置IP地址
1. 點擊System-->Preferences-->Network Connections,如下圖所示:
2. 修改或重建網絡連接,設置該連接為手工方式,設置如下網絡信息:
IP地址: 10.88.147.*
子網掩碼: 255.255.255.0
網關: 10.88.*.*
DNS: 10. **.***.** (上網需要設置DNS服務器)
注意:網關、DNS等根據所在網絡實際情況進行設置,並設置連接方式為"Available to all users",否則通過遠程連接時會在服務器重啟后無法連接服務器
3. 在命令行中,使用ifconfig命令查看設置IP地址信息,如果修改IP不生效,需要重啟機器再進行設置(如果該機器在設置后需要通過遠程訪問,建議重啟機器,確認機器IP是否生效):
2.2.2.2設置機器名
以root用戶登錄,使用 vi /etc/sysconfig/network 打開配置文件,根據實際情況設置該服務器的機器名,新機器名在重啟后生效
2.2.2.3設置Host映射文件
1. 使用root身份編輯/etc/hosts映射文件,設置IP地址與機器名的映射,設置信息如下:
vi /etc/hosts
l 10.88.147.221 hadoop1
l 10.88.147.222 hadoop2
l 10.88.147.223 hadoop3
2. 使用如下命令對網絡設置進行重啟
/etc/init.d/network restart
3. 驗證設置是否成功
2.2.2.4上網配置
第一步 以root用戶使用vi /etc/profile命令打開配置文件,如下圖所示:
第二步 在該文件設置如下配置:
export http_proxy=proxy.*****:8080
export no_proxy="localhost,10.88.*,hadoop*"
export https_proxy=proxy.*****:8080
2.2.3設置操作系統環境
2.2.3.1關閉防火牆
在Hadoop安裝過程中需要關閉防火牆和SElinux,否則會出現異常
1. service iptables status 查看防火牆狀態,如下所示表示iptables已經開啟
2. 以root用戶使用如下命令關閉iptables
chkconfig iptables off
2.2.3.2關閉SElinux
1. 使用getenforce命令查看是否關閉
2. 修改/etc/selinux/config 文件
將SELINUX=enforcing改為SELINUX=disabled,執行該命令后重啟機器生效
2.2.3.3JDK安裝及配置
1. 下載JDK1.7 64bit安裝包
打開JDK1.7 64bit安裝包下載鏈接為:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
打開界面之后,先選中 Accept License Agreement ,然后下載 jdk-7u55-linux-x64.tar.gz,如下圖所示:
2. 賦予hadoop用戶/usr/lib/java目錄可讀寫權限,使用命令如下:
sudo chmod -R 777 /usr/lib/java
該步驟有可能遇到問題4.2,可參考解決辦法處理
3. 把下載的安裝包,使用2.3.1介紹的ssh工具上傳到/usr/lib/java 目錄下,使用如下命令進行解壓
tar -zxvf jdk-7u55-linux-x64.tar.gz
解壓后目錄如下圖所示:
4. 使用root用戶配置 /etc/profile,該設置對所有用戶均生效
vi /etc/profile
export JAVA_HOME=/usr/lib/java/jdk1.7.0_55
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
5. 重新登錄並驗證
logout
java -version
2.2.3.4更新OpenSSL
C自帶的OpenSSL存在bug,如果不更新OpenSSL在Ambari部署過程會出現無法通過SSH連接節點,使用如下命令進行更新:
yum update openssl
該步驟有可能遇到問題4.3,可參考解決辦法處理
2.2.3.5SSH無密碼驗證配置
1. 以root用戶使用vi /etc/ssh/sshd_config,打開sshd_config配置文件,開放三個配置,如下圖所示:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
2. 配置后重啟服務
service sshd restart
3. 完成以上步驟后,復制該虛擬機兩份,分別為hadoop2和hadoop3數據節點,IP設置參見1.2章節
4. 使用hadoop用戶登錄在三個節點中使用如下命令生成私鑰和公鑰;
ssh-keygen -t rsa
5. 進入/home/hadoop/.ssh目錄在三個節點中分別把公鑰命名為authorized_keys_hadoop1、authorized_keys_hadoop2和authorized_keys_hadoop3,使用命令如下:
cp id_rsa.pub authorized_keys_hadoop1
6. 把兩個從節點(hadoop2、hadoop3)的公鑰使用scp命令傳送到hadoop1節點的/home/hadoop/.ssh文件夾中;
scp authorized_keys_hadoop2 hadoop@hadoop1:/home/hadoop/.ssh
7. 把三個節點的公鑰信息保存到authorized_key文件中
使用cat authorized_keys_hadoop1 >> authorized_keys 命令
8. 把該文件分發到其他兩個從節點上
使用scp authorized_keys hadoop@hadoop2:/home/hadoop/.ssh把密碼文件分發出去
9. 在三台機器中使用如下設置authorized_keys讀寫權限
chmod 400 authorized_keys
10. 測試ssh免密碼登錄是否生效
2.3 Hadoop變量配置
2.3.1下載並解壓hadoop安裝包
1. 把下載的hadoop-1.1.2-bin.tar.gz安裝包,使用2.3.1介紹的ssh工具上傳到/home/hadoop/Downloads 目錄下
2. 在主節點hadoop1上使用如下命令進行解壓縮
cd /home/hadoop/Downloads
sudo tar -xzvf hadoop-1.1.2-bin.tar.gz
ls
3. 把解壓的目錄轉移到/usr/local目錄下
4. 使用chown命令遍歷修改hadoop-1.1.2目錄所有者為hadoop
sudo chown -R hadoop /usr/local/hadoop-1.1.2
2.3.2在Hadoop-1.1.2目錄下創建子目錄
mkdir tmp
mkdir hdfs
mkdir hdfs/name
mkdir hdfs/data
ls
2.3.3配置hadoop-env.sh
1. 進入hadoop-1.1.2/conf目錄,打開配置文件hadoop-env.sh
cd /usr/local/hadoop-1.1.2/conf
vi hadoop-env.sh
2. 加入配置內容,設置了hadoop中jdk和hadoop/bin路徑
export JAVA_HOME=/usr/lib/java/jdk1.7.0_55
export PATH=$PATH:/usr/local/hadoop-1.1.2/bin
3. 編譯配置文件hadoop-env.sh,並確認生效
source hadoop-env.sh
hadoop version
2.3.4配置core-site.xml
1. 使用如下命令打開core-site.xml配置文件
vi core-site.xml
2. 在配置文件中,按照如下內容進行配置
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-1.1.2/tmp</value>
</property>
</configuration>
2.3.5配置hdfs-site.xml
1. 使用如下命令打開hdfs-site.xml配置文件
vi hdfs-site.xml
2. 在配置文件中,按照如下內容進行配置
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop-1.1.2/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop-1.1.2/hdfs/data</value>
</property>
</configuration>
2.3.6配置mapred-site.xml
1. 使用如下命令打開mapred-site.xml配置文件
vi mapred-site.xml
2. 在配置文件中,按照如下內容進行配置
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop1:9001</value>
</property>
</configuration>
2.3.7配置masters和slaves文件
1. 設子主節點
vi masters
hadoop1
2. 設置從節點
vi slaves
2.3.8向各節點復制hadoop
1. 在hadoop2和hadoop3機器中創建/usr/local/hadoop-1.1.2目錄,然后修改該目錄所有權限
sudo mkdir /usr/local/hadoop-1.1.2
sudo chown –R hadoop /usr/local/hadoop-1.1.2
2. 在hadoop1機器上使用如下命令把hadoop文件夾復制到hadoop2和hadoop3機器
scp -r * hadoop@hadoop2:/usr/local/hadoop-1.1.2
3. 在從節點查看是否復制成功
2.3.9格式化namenode
在hadoop1機器上使用如下命令進行格式化namenode
./hadoop namenode -format
2.3.10 啟動hadoop
./start-all.sh
2.3.11 用jps檢驗各后台進程是否成功啟動
1. 使用jps命令在主節點上查看
2. 使用jps命令在從節點上查看
3 Hadoop2.X安裝
3.1 運行環境說明
3.1.1硬軟件環境
l 主機操作系統:Windows 64 bit,雙核4線程,主頻2.2G,6G內存
l 虛擬軟件:VMware® Workstation 9.0.0 build-812388
l 虛擬機操作系統:Ubuntu12 32bit,單核,1G內存
l JDK:1.7.0_09 32 bit
l Hadoop:2.2.0
3.1.2集群網絡環境
集群包含三個節點:1個namenode、2個datanode,其中節點之間可以相互ping通。節點IP地址和主機名分布如下:
序號 |
IP地址 |
機器名 |
類型 |
用戶名 |
運行進程 |
1 |
10.88.147.226 |
hadoop1 |
名稱節點 |
hadoop |
NN、SNN、ResourceManager |
2 |
10.88.147.227 |
hadoop2 |
數據節點 |
hadoop |
DN、NodeManager |
3 |
10.88.147.228 |
hadoop3 |
數據節點 |
hadoop |
DN、NodeManager |
所有節點均是CentOS6.5 64bit系統,防火牆均禁用,所有節點上均創建了一個hadoop用戶,用戶主目錄是/usr/hadoop。所有節點上均創建了一個目錄/usr/local/hadoop,並且擁有者是hadoop用戶。因為該目錄用於安裝hadoop,用戶對其必須有rwx權限。(一般做法是root用戶在/usr/local下創建hadoop目錄,並修改該目錄擁有者為hadoop(chown –R hadoop /usr/local/hadoop),否則通過SSH往其他機器分發Hadoop文件會出現權限不足的提示。
3.1.3安裝使用工具
3.1.3.1Linux文件傳輸工具
向Linux系統傳輸文件推薦使用SSH Secure File Transfer,該工具頂部為工具的菜單和快捷方式,中間部分左面為本地文件目錄,右邊為遠程文件目錄,可以通過拖拽等方式實現文件的下載與上傳,底部為操作情況監控區,如下圖所示:
3.1.3.2Linux命令行執行工具
l SSH Secure Shell
SSH Secure工具的SSH Secure Shell提供了遠程命令執行,如下圖所示:
l SecureCRT
SecureCRT是常用遠程執行Linux命令行工具,如下圖所示:
3.2 環境搭建
本次安裝集群分為三個節點,節點設置按照2.1.2章節進行設置。環境搭建分為兩部分,具體為配置本地環境和設置操作系統環境。
3.2.1配置本地環境
該部分對服務器的配置需要在服務器本地進行配置,配置完畢后需要重啟服務器確認配置是否生效,特別是遠程訪問服務器需要設置固定IP地址。
3.2.1.1設置IP地址
4. 點擊System-->Preferences-->Network Connections,如下圖所示:
5. 修改或重建網絡連接,設置該連接為手工方式,設置如下網絡信息:
IP地址: 10.88.147.*
子網掩碼: 255.255.255.0
網關: 10.88.*.*
DNS: 10. **.***.** (上網需要設置DNS服務器)
注意:網關、DNS等根據所在網絡實際情況進行設置,並設置連接方式為"Available to all users",否則通過遠程連接時會在服務器重啟后無法連接服務器
6. 在命令行中,使用ifconfig命令查看設置IP地址信息,如果修改IP不生效,需要重啟機器再進行設置(如果該機器在設置后需要通過遠程訪問,建議重啟機器,確認機器IP是否生效):
3.2.1.2設置機器名
以root用戶登錄,使用 vi /etc/sysconfig/network 打開配置文件,根據實際情況設置該服務器的機器名,新機器名在重啟后生效
3.2.1.3設置Host映射文件
4. 使用root身份編輯/etc/hosts映射文件,設置IP地址與機器名的映射,設置信息如下:
vi /etc/hosts
l 10.88.147.226 hadoop1
l 10.88.147.227 hadoop2
l 10.88.147.228 hadoop3
5. 使用如下命令對網絡設置進行重啟
/etc/init.d/network restart
6. 驗證設置是否成功
3.2.1.4上網配置
第三步 以root用戶使用vi /etc/profile命令打開配置文件,如下圖所示:
第四步 在該文件設置如下配置:
export http_proxy=proxy.*****:8080
export no_proxy="localhost,10.88.*,hadoop*"
export https_proxy=proxy.*****:8080
3.2.2設置操作系統環境
3.2.2.1關閉防火牆
在Hadoop安裝過程中需要關閉防火牆和SElinux,否則會出現異常
3. service iptables status 查看防火牆狀態,如下所示表示iptables已經開啟
4. 以root用戶使用如下命令關閉iptables
chkconfig iptables off
3.2.2.2關閉SElinux
3. 使用getenforce命令查看是否關閉
4. 修改/etc/selinux/config 文件
將SELINUX=enforcing改為SELINUX=disabled,執行該命令后重啟機器生效
3.2.2.3JDK安裝及配置
6. 下載JDK1.7 64bit安裝包
打開JDK1.7 64bit安裝包下載鏈接為:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
打開界面之后,先選中 Accept License Agreement ,然后下載 jdk-7u55-linux-x64.tar.gz,如下圖所示:
7. 賦予hadoop用戶/usr/lib/java目錄可讀寫權限,使用命令如下:
sudo chmod -R 777 /usr/lib/java
該步驟有可能遇到問題4.2,可參考解決辦法處理
8. 把下載的安裝包,使用2.1.3.1介紹的ssh工具上傳到/usr/lib/java 目錄下,使用如下命令進行解壓
tar -zxvf jdk-7u55-linux-x64.tar.gz
解壓后目錄如下圖所示:
9. 使用root用戶配置 /etc/profile,該設置對所有用戶均生效
vi /etc/profile
export JAVA_HOME=/usr/lib/java/jdk1.7.0_55
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
10. 重新登錄並驗證
logout
java -version
3.2.2.4更新OpenSSL
C自帶的OpenSSL存在bug,如果不更新OpenSSL在Ambari部署過程會出現無法通過SSH連接節點,使用如下命令進行更新:
yum update openssl
該步驟有可能遇到問題4.3,可參考解決辦法處理
3.2.2.5SSH無密碼驗證配置
11. 以root用戶使用vi /etc/ssh/sshd_config,打開sshd_config配置文件,開放三個配置,如下圖所示:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
12. 配置后重啟服務
service sshd restart
13. 完成以上步驟后,復制該虛擬機兩份,分別為hadoop2和hadoop3數據節點,IP設置參見1.2章節
14. 使用hadoop用戶登錄在三個節點中使用如下命令生成私鑰和公鑰;
ssh-keygen -t rsa
15. 進入/home/hadoop/.ssh目錄在三個節點中分別把公鑰命名為authorized_keys_hadoop1、authorized_keys_hadoop2和authorized_keys_hadoop3,使用命令如下:
cp id_rsa.pub authorized_keys_hadoop1
16. 把兩個從節點(hadoop2、hadoop3)的公鑰使用scp命令傳送到hadoop1節點的/home/hadoop/.ssh文件夾中;
scp authorized_keys_hadoop2 hadoop@hadoop1:/home/hadoop/.ssh
17. 把三個節點的公鑰信息保存到authorized_key文件中
使用cat authorized_keys_hadoop1 >> authorized_keys 命令
18. 把該文件分發到其他兩個從節點上
使用scp authorized_keys hadoop@hadoop2:/home/hadoop/.ssh把密碼文件分發出去
19. 在三台機器中使用如下設置authorized_keys讀寫權限
chmod 400 authorized_keys
20. 測試ssh免密碼登錄是否生效
3.3 配置Hadooop設置
3.3.1下載並解壓hadoop安裝包
1. 把下載的hadoop-1.1.2-bin.tar.gz安裝包,使用2.1.3.1介紹的ssh工具上傳到/home/hadoop/Downloads 目錄下
2. 在主節點上解壓縮
cd /home/hadoop/Downloads/
tar -xzvf hadoop-2.2.0.tar.gz
3. 把hadoop-2.2.0目錄移到/usr/local目錄下
sudo mv hadoop-2.2.0 /usr/local
cd /usr/local
ls
4. 使用chown命令遍歷修改hadoop-1.1.2目錄所有者為hadoop
sudo chown -R hadoop /usr/local/hadoop-2.2.0
3.3.2在Hadoop目錄下創建子目錄
使用hadoop用戶在hadoop-2.2.0目錄下創建tmp、name和data目錄,保證目錄所有者為hadoop
mkdir tmp
mkdir name
mkdir data
ls
3.3.3配置hadoop-env.sh
4. 打開配置文件hadoop-env.sh
cd etc/hadoop
vi hadoop-env.sh
5. 加入配置內容,設置了hadoop中jdk和hadoop/bin路徑
export JAVA_HOME=/usr/lib/java/jdk1.7.0_55
export PATH=$PATH:/usr/local/hadoop-2.2.0/bin
6. 編譯配置文件hadoop-env.sh,並確認生效
source hadoop-env.sh
hadoop version
3.3.4配置yarn-env.sh
1. 在/usr/local/hadoop-2.2.0/etc/hadoop打開配置文件yarn-env.sh
cd /usr/local/hadoop-2.2.0/etc/hadoop
vi yarn-env.sh
2. 加入配置內容,設置了hadoop中jdk和hadoop/bin路徑
export JAVA_HOME=/usr/lib/java/jdk1.7.0_55
3. 編譯配置文件yarn-env.sh,並確認生效
source yarn-env.sh
3.3.5配置core-site.xml
1. 使用如下命令打開core-site.xml配置文件
sudo vi core-site.xml
2. 在配置文件中,按照如下內容進行配置
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop1:9000</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop-2.2.0/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
</configuration>
3.3.6配置hdfs-site.xml
3. 使用如下命令打開hdfs-site.xml配置文件
sudo vi hdfs-site.xml
4. 在配置文件中,按照如下內容進行配置
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop1:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-2.2.0/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-2.2.0/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
3.3.7配置mapred-site.xml
3. 默認情況下不存在mapred-site.xml文件,可以從模板拷貝一份
cp mapred-site.xml.template mapred-site.xml
4. 使用如下命令打開mapred-site.xml配置文件
sudo vi mapred-site.xml
5. 在配置文件中,按照如下內容進行配置
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop1:19888</value>
</property>
</configuration>
3.3.8配置yarn-site.xml
1. 使用如下命令打開yarn-site.xml配置文件
sudo vi yarn-site.xml
2. 在配置文件中,按照如下內容進行配置
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop1:8088</value>
</property>
</configuration>
3.3.9配置slaves文件
3. 設置從節點
sudo vi slaves
hadoop2
haddop3
3.3.10 向各節點分發hadoop程序
4. 在hadoop2和hadoop3機器中創建/usr/local/hadoop-2.2.0目錄,然后修改該目錄所有權限
sudo mkdir /usr/local/hadoop-2.2.0
sudo chown –R hadoop hadoop-2.2.0
5. 在hadoop1機器上進入/usr/local/hadoop-2.2.0目錄,使用如下命令把hadoop文件夾復制到hadoop2和hadoop3機器
使用命令scp -r * hadoop@hadoop2:/usr/local/hadoop-2.2.0
6. 在從節點查看是否復制成功
3.3.11 格式化namenode
./bin/hdfs namenode -format
3.3.12 啟動hdfs
cd hadoop-2.2.0/sbin
./start-dfs.sh
3.3.13 驗證當前進行
此時在hadoop1上面運行的進程有:namenode,secondarynamenode
hadoop2和hadoop3上面運行的進程有:datanode
3.3.14 啟動yarn
./start-yarn.sh
3.3.15 驗證當前進行
此時在hadoop1上運行的進程有:NN、SNN、ResourceManager
hadoop2和hadoop3上面運行的進程有:DN、NodeManager
4 問題解決
4.1 安裝CentOS64位虛擬機 This host supports Intel VT-x, but Intel VT-x is disabled
在進行Hadoop2.X 64bit編譯安裝中由於使用到64位虛擬機,安裝過程中出現下圖錯誤:
按F1 鍵進入BIOS 設置實用程序使用箭頭鍵security面板下找virtualization按Enter 鍵 進去Intel VirtualizationTechnology改成Enabled按F10 鍵保存並退出 選擇Yes按Enter 鍵 完全關機(關閉電源)等待幾秒鍾重新啟動計算機此Intel虛擬化技術開啟成功
4.2 *** is not in the sudoers file解決方法
當使用hadoop用戶需要對文件夾進行賦權,使用chmod命令出現“hadoop is not in the sudoers file. This incident will be reported”錯誤,如下所示:
1. 使用su命令進入root用戶
2. 添加文件的寫權限,操作命令為:chmod u+w /etc/sudoers
3. 編輯/etc/sudoers文件,使用命令"vi /etc/sudoers"進入編輯模式,找到:"root ALL=(ALL) ALL"在起下面添加"hadoop ALL=(ALL) ALL",然后保存退出。
4.3 yum無法下載
1. 在/etc/yum.conf中加入proxy=htt://XX.XXX.XX:PORT
2. 重啟網絡
3. 再次運行yum install ambari-server則能夠正常下載