從零開始搭建大資料平臺系列之(2.1)—— Apache Hadoop 2.x 偽分散式環境搭建
JDK 版本:jdk 1.7.0_67
Apache Hadoop 版本:Hadoop 2.5.0
1、安裝目錄準備
~]$ cd /opt/
opt]$ sudo mkdir /opt/modules
opt]$ sudo chown beifeng:beifeng modules
opt]$ sudo mkdir softwares
opt]$ sudo chown beifeng:beifeng softwares/
2、安裝 JDK
(1)解壓 JDK
softwares]$ tar -zxf jdk-7u67-linux-x64.tar.gz -C /opt/modules/
(2)配置環境變數
在配置檔案 /etc/profile 中配置如下環境變數:
#JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
3、Apache Hadoop 2.x 偽分散式環境搭建
(1)解壓 Hadoop
softwares]$ tar -zxf hadoop-2.5.0.tar.gz -C /opt/modules/
(2)刪除 share/doc/ 目錄下的全部內容,裡面是英文文件,比較佔用儲存空間
hadoop-2.5.0]$ rm -rf /opt/modules/hadoop-2.5.0/share/doc/
(3)建立目錄 data/tmp/,該目錄存放 NameNode 和 DataNode 的塊檔案、映象檔案和日誌檔案
hadoop-2.5.0]$ mkdir -p data/tmp/
(4)修改配置檔案,配置 Hadoop 基本元件
Hadoop 的配置檔案存放在 /opt/modules/hadoop-2.5.0/etc/hadoop/ 目錄下。
export JAVA_HOME=/opt/modules/jdk1.7.0_67
2. 在 core-site.xml 配置檔案中指定 NameNode 所在機器位置及互動埠號,另外也是指定使用的是 HDFS 檔案系統:
<property> <name>fs.defaultFS</name> <value>hdfs://bigdata-senior.ibeifeng.com:8020</value> </property>
3. 在 hdfs-site.xml 配置檔案中指定副本數個數,預設為 3 個:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
4. 在 core-site.xml 配置檔案中更改 Hadoop 預設的臨時目錄位置,用於存放塊檔案和元資料檔案:
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.5.0/data/tmp</value>
</property>
5. 在 slaves 配置檔案中指定從節點位置(主機名),包括 DataNode 和 NodeManager:
6. 更改 mapred-site.xml 檔名稱,指定 MR 執行在 yarn 上:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
7. 修改配置檔案 yarn-site.xml,設定 yarn 的相關服務和 ResourceManager 所在的主機名:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata-senior.ibeifeng.com</value>
</property>
(5)配置 Hadoop 歷史伺服器
在配置檔案 mapred-site.xml 中如下配置:
<property>
<name>mapreduce.jobhistory.address</name>
<value>bigdata-senior.ibeifeng.com:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata-senior.ibeifeng.com:19888</value>
</property>
(6)配置 Hadoop 日誌聚集
在配置檔案 yarn-site.xml 中如下配置:
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>106800</value>
</property>
(7)配置 HDFS 使用者許可權檢查
在配置檔案 hdfs-site.xml 中如下配置:
<property>
<name>dfs.permissions.enabled</name>
<value>false</name>
</property>
在配置檔案 core-site.xml 中如下配置:
<property>
<name>hadoop.http.staticuser.user</name>
<value>beifeng</value>
</property>
(8)配置 SecondaryNameNode
在配置檔案 hdfs-site.xml 中如下配置:
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata-senior.ibeifeng.com:50090</value>
</property>
(9)配置 SSH 免密碼登陸
~]$ cd home/beifeng/.ssh
.ssh]$ ssh-keygen -t rsa
即生成 id_rsa 和 id_rsa.pub 檔案,其中 id_rsa 是私鑰,id_rsa.pub 是公鑰。
.ssh]$ ssh-copy-id bigdata-senior.ibeifeng.com
即生成 authorized_keys 和 known_hosts 檔案,其中 authorized_keys 是向遠端主機發送的使用者公鑰,known_hosts 是記錄檔案,有記錄檔案就不需要再輸入密碼了。
4、格式化 NameNode
格式化 NameNode,對於元資料進行初始化,否則無法讀取元資料:
hadoop-2.5.0]$ bin/hdfs namenode -format
注:不要多次格式化 NameNode,如需再次格式化,需要先刪除 data/tmp/ 下的所有檔案。
5、啟動 Hadoop 服務元件
(1)啟動 NameNode:
hadoop-2.5.0]$ sbin/hadoop-daemon.sh start namenode
(2)啟動 DataNode:
hadoop-2.5.0]$ sbin/hadoop-daemon.sh start datanode
(3)啟動 ResourceManager:
hadoop-2.5.0]$ sbin/yarn-daemon.sh start resourcemanager
(4)啟動 NodeManager:
hadoop-2.5.0]$ sbin/yarn-daemon.sh start nodemanager
(5)啟動 SecondaryNameNode:
hadoop-2.5.0]$ sbin/hadoop-daemon.sh start secondarynamenode
(6)啟動 HistoryServer:
hadoop-2.5.0]$ sbin/mr-jobhistory-daemon.sh start historyserver
6、停止 Hadoop 服務元件
(1)停止 NameNode:
hadoop-2.5.0]$ sbin/hadoop-daemon.sh stop namenode
(2)停止 DataNode:
hadoop-2.5.0]$ sbin/hadoop-daemon.sh stop datanode
(3)停止 ResourceManager:
hadoop-2.5.0]$ sbin/yarn-daemon.sh stop resourcemanager
(4)停止 NodeManager:
hadoop-2.5.0]$ sbin/yarn-daemon.sh stop nodemanager
(5)停止 SecondaryNameNode:
hadoop-2.5.0]$ sbin/hadoop-daemon.sh stop secondarynamenode
(6)停止 HistoryServer:
hadoop-2.5.0]$ sbin/mr-jobhistory-daemon.sh stop historyserver