前期准備工作:
此配置參照大牛給力星進行配置,並做修改!!!
注意:如下命令如果權限不夠,請在命令前面加sudo;以下配置所有的cqb-Lenovo-B40請換成自己的主機名或localhost!!!
打開終端:
Ctrl+Alt+T
安裝vim:
sudo apt-get install vim
安裝SSH、配置SSH無密碼登陸:
sudo apt-get install openssh-server
安裝后,可以使用如下命令登陸本機:
ssh localhost
此時會有如下提示(SSH首次登陸提示),輸入 yes 。然后按提示輸入密碼,這樣就登陸到本機了.
但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH無密碼登陸比較方便。
退出剛才的ssh localhost:
exit
若沒有該目錄,請先執行一次ssh localhost:
cd ~/.ssh/
會有提示,都按回車就可以:
ssh-keygen -t rsa
加入授權:
cat ./id_rsa.pub >> ./authorized_keys
此時再用ssh locahost命令,無需輸入密碼就可以直接登錄了。
安裝java環境:
安裝Hadoop:
打開終端:
Ctrl+Alt+T
下載Hadoop:
wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.1/hadoop-2.8.1.tar.gz
創建Hadoop的安裝目錄:
mkdir -p /data/service/
解壓到/data/service/目錄中:
tar -zxvf hadoop-2.8.1.tar.gz -C /data/service/
進入/data/service/目錄中:
cd /data/service/
將文件名該為hadoop:
mv hadoop-2.8.1.tar.gz/ hadoop
給hadoop修改文件權限:
chown -R 用戶名 hadoop/
進入hadoop目錄:
cd /data/service/hadoop/
檢查 Hadoop 是否可用,成功則會顯示 Hadoop 版本信息:
配置hadoop環境:
vim /etc/profile.d/hdfs-env.sh
執行hadoop環境,讓其生效:
source /etc/profile.d/hdfs-env.sh
Hadoop偽分布式配置:
Hadoop 可以在單節點上以偽分布式的方式運行,Hadoop 進程以分離的 Java 進程來運行,節點既作為 NameNode 也作為 DataNode,同時,讀取的是 HDFS 中的 文件。
Hadoop 的配置文件位於 /data/lservice/hadoop/etc/hadoop/ 中,偽分布式需要修改2個配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每 個配置以聲明 property 的 name 和 value 的方式來實現。
因為如果在/data/lservice/hadoop/etc/hadoop/里面的配置文件進行配置,如果下次我們下載了Hadoop更新的版本又要重新配置,為了只需配置一次,我們把
/data/lservice/hadoop/etc/下的hadoop目錄復制到/etc/下面:
cp -a /data/service/hadoop/etc/hadoop/ /etc/
修改配置文件 core-site.xml (vim /etc/hadoop/core-site.xml
),將當中的
修改為下面配置:
修改配置文件hdfs-site.xml之前創建好name目錄和data目錄:
mkdir -p /data/service/hadoop/dfs/name/
mkdir -p /data/service/hadoop/dfs/data/
修改配置文件 hdfs-site.xml( vim /etc/hadoop/hdfs-site.xml),將當中的
修改為下面配置:
配置完成后,執行NameNode的格式化:
./bin/hdfs namenode -format
成功的話,會看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若為 “Exitting with status 1” 則是出錯。
如果在這一步時提示 Error: JAVA_HOME is not set and could not be found. 的錯誤,則說明之前設置 JAVA_HOME 環境變量那邊就沒設置好,請按教 程先設置好 JAVA_HOME 變量,否則后面的過程都是進行不下去的。
開啟 NameNode 和 DataNode 守護進程:
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
啟動完成后,可以通過命令 jps 來判斷是否成功啟動,若成功啟動則會列出如下進程: “NameNode”、”DataNode” 。如果沒有 NameNode 或 DataNode ,那 就是配置不成功,請仔細檢查之前步驟,或通過查看啟動日志排查原因。
如通過jps沒有NameNoda,可通過查看啟動日志查看異常:
按Ctrl+c可退出異常命令。
成功啟動后,可以訪問 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,還可以在線查看 HDFS 中的文件:
關閉NameNode和DataNode守護進程:
hadoop-daemon.sh stop namenode
hadoop-daemon.sh stop datanode
關閉成功后就沒有NameNode進程和DataNode進程了。
啟動YARN:
上述啟動 Hadoop,僅僅是啟動了 MapReduce 環境,我們可以啟動 YARN ,讓 YARN 來負責資源管理與任務調度。
首先修改配置文件 mapred-site.xml,因為/etc/hadoop/下沒有mapred-site.xml配置文件,所以需要先進行復制mapred-site.xml.template進行重命名:
mv /etc/hadoop/mapred-site.xml.template /etc/hadoop/mapred-site.xml
然后再進行編輯( vim /etc/hadoop/mapred-site.xml),將當中的
修改為下面配置:
接着修改配置文件 yarn-site.xml(vim /etc/hadoop/yarn-site.xml),將當中的
修改為下面配置:
配置完成后就可以啟動 YARN 了:
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager;
啟動成功就會出現ResoureManager和NodeManager進程了。
我們還要開啟歷史服務器,才能在Web中查看任務運行情況:
mr-jobhistory-daemon.sh start historyserver;
啟動成功就會出現JobHistoryServer進程了。
啟動 YARN 之后,運行實例的方法還是一樣的,僅僅是資源管理方式、任務調度不同。觀察日志信息可以發現,不啟用 YARN 時,是 “mapred.LocalJobRunner” 在 跑任務,啟用 YARN 之后,是 “mapred.YARNRunner” 在跑任務。啟動 YARN 有個好處是可以通過 Web 界面查看任務的運行情況:
http://localhost:8088/cluster,如下圖所 示。
同樣的,關閉 YARN 的進程如下:
yarn-daemon.sh stop resourcemanager
yarn-daemon.sh stop nodemanager
mr-jobhistory-daemon.sh stop historyserver
自此,你已經掌握 Hadoop 的配置和基本使用了。