一.Hadoop安裝部署的預備條件node
準備:一、安裝Linux和JDK。linux
安裝JDK安全
解壓:tar -zxvf jdk-8u144-linux-x64.tar.gz -C ~/training/ 設置環境變量:vi ~/.bash_profile JAVA_HOME=/root/training/jdk1.8.0_144 export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export PATH 生效環境變量: source ~/.bash_profile
二、關閉防火牆bash
查看防火牆的狀態:systemctl status firewalld.service 關閉防火牆: systemctl stop firewalld.service 禁用防火牆(永久)systemctl disable firewalld.service
三、配置主機名ssh
輸入:vi /etc/hosts,回車分佈式
192.168.153.11 bigdata11
解壓hadoop:tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/
設置環境變量:vi ~/.bash_profileoop
HADOOP_HOME=/root/training/hadoop-2.7.3 export HADOOP_HOME PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH export PATH
source ~/.bash_profile測試
二.Hadoop的目錄結構spa
三.Hadoop安裝部署的三種模式命令行
1.本地模式
2.僞分佈模式
3.全分佈模式
本地模式的配置 | ||
參數文件 | 配置參數 | 參考值 |
hadoop-env.sh | JAVA_HOME | /root/training/jdk1.8.0_144 |
本地模式 一臺Linux
(*)特色:沒有HDFS,只能測試MapReduce程序(本地數據:Linux的文件)
(*)配置:hadoop-env.sh
26行 export JAVA_HOME=/root/training/jdk1.8.0_144
(*)Demo:測試MapReduce程序
example: /root/training/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount ~/temp/data.txt ~/temp/mr/wc1
僞分佈模式的配置 | ||
參數文件 | 配置參數 | 參考值 |
hadoop-env.sh | JAVA_HOME | /root/training/jdk1.8.0_144 |
hdfs-site.xml | dfs.replication | 1 |
dfs.permissions | false | |
core-site.xml | fs.defaultFS | hdfs://<hostname>:9000 |
hadoop.tmp.dir | /root/training/hadoop-2.7.3/tmp | |
mapred-site.xml | mapreduce.framework.name | yarn |
yarn-site.xml | yarn.resourcemanager.hostname | <hostname> |
yarn.nodemanager.aux-services | mapreduce_shuffle |
僞分佈模式 一臺Linux (*)特色:在單機上,模擬一個分佈式的環境,具有Hadoop的全部功能 (*)hdfs-site.xml <!--數據塊的冗餘度,默認是3--> <property> <name>dfs.replication</name> <value>1</value> </property> <!--是否開啓HDFS的權限檢查,默認:true--> <!-- <property> <name>dfs.permissions</name> <value>false</value> </property> --> core-site.xml <!--NameNode的地址--> <property> <name>fs.defaultFS</name> <value>hdfs://bigdata11:9000</value> </property> <!--HDFS數據保存的目錄,默認是Linux的tmp目錄--> <property> <name>hadoop.tmp.dir</name> <value>/root/training/hadoop-2.7.3/tmp</value> </property> mapred-site.xml <!--MR程序運行的容器是Yarn--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> yarn-site.xml <!--ResourceManager的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata11</value> </property> <!--NodeManager運行MR任務的方式--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> 對NameNode進行格式化: hdfs namenode -format 日誌:Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted. 啓動:start-all.sh = start-dfs.sh + start-yarn.sh
全分佈模式的配置 | ||
參數文件 | 配置參數 | 參考值 |
hadoop-env.sh | JAVA_HOME | /root/training/jdk1.8.0_144 |
hdfs-site.xml | dfs.replication | 2 |
dfs.permissions | false | |
core-site.xml | fs.defaultFS | hdfs://<hostname>:9000 |
hadoop.tmp.dir | /root/training/hadoop-2.7.3/tmp | |
mapred-site.xml | mapreduce.framework.name | yarn |
yarn-site.xml | yarn.resourcemanager.hostname | <hostname> |
yarn.nodemanager.aux-services | mapreduce_shuffle | |
slaves | DataNode的地址 | 從節點一、從節點2 |
全分佈模式安裝詳解
一、三臺機器:bigdata12 bigdata13 bigdata14
二、每臺機器準備工做:
a.安裝JDK
b.關閉防火牆
systemctl stop firewalld.service systemctl disable firewalld.service
c.設置主機名: vi /etc/hosts
192.168.153.12 bigdata12 192.168.153.13 bigdata13 192.168.153.14 bigdata14
若是出現如下警告信息
四.驗證Hadoop環境
HDFS Console: http://192.168.153.11:50070
正常狀況下,安全模式是關閉的。由於安全模式下,HDFS是隻讀
Yarn Console: http://192.168.153.11:8088
3.配置SSH免密碼登陸
(1)在每臺機器上產生公鑰和私鑰
ssh-keygen -t rsa
(2)須要將每臺機器的公鑰複製給其餘機器(下面的三句話,須要在每臺機器上執行)
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata12 ssh-copy-id -i .ssh/id_rsa.pub root@bigdata13 ssh-copy-id -i .ssh/id_rsa.pub root@bigdata14
四、保證每臺機器的時間同步的
五、安裝Hadoop的全分佈環境(在主節點bigdata12上安裝)
(1)解壓設置環境變量
(2)修改配置文件
hadoop-env.sh
26行 export JAVA_HOME=/root/training/jdk1.8.0_144
hdfs-site.xml
<!--數據塊的冗餘度,默認是3--> <property> <name>dfs.replication</name> <value>2</value> </property> <!--是否開啓HDFS的權限檢查,默認:true--> <property> <name>dfs.permissions</name> <value>false</value> </property>
core-site.xml
<!--NameNode的地址--> <property> <name>fs.defaultFS</name> <value>hdfs://bigdata12:9000</value> </property> <!--HDFS數據保存的目錄,默認是Linux的tmp目錄--> <property> <name>hadoop.tmp.dir</name> <value>/root/training/hadoop-2.7.3/tmp</value> </property>
mapred-site.xml
<!--MR程序運行的容器是Yarn--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
yarn-site.xml
<!--ResourceManager的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata12</value> </property> <!--NodeManager運行MR任務的方式--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
slaves: 配置的是全部的從節點
bigdata13 bigdata14
(3)格式化NameNode:
hdfs namenode -format
六、將配置好的目錄複製到bigdata13和bigdata14上
scp -r hadoop-2.7.3/ root@bigdata13:/root/training scp -r hadoop-2.7.3/ root@bigdata14:/root/training
七、啓動Hadoop集羣(在主節點上):
start-all.sh
關閉:stop-all.sh
八、驗證
(*)命令行:hdfs dfsadmin -report (*)網頁:HDFS:http://192.168.153.12:50070/ Yarn:http://192.168.153.12:8088