在Redhat7中安裝Hadoop
1、安裝Linux、JDK、關閉防火牆、配置主機名 解壓:tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/ 設定Hadoop的環境變數: vi ~/.bash_profile 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之前要先安裝jdk)
2、Hadoop的目錄結構
三種安裝模式:
1.本地模式(一臺機器)
特點:沒有HDFS、只能測試MapReduce程式 MapReduce處理的是本地Linux的檔案資料
vi hadoop-env.sh 25 export JAVA_HOME=/root/training/jdk1.8.0_144(先檢視echo $JAVA_HOME) 測試MapReduce程式: 1、建立目錄 mkdir ~/input 2、執行(只能測試mapreduce) 例子:/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 ~/input/data.txt ~/output
2.偽分佈模式(一臺機器)
特點:是在單機上,模擬一個分散式的環境 具備Hadoop的主要功能 HDFS: namenode+datanode+secondarynamenode
Yarn: resourcemanager + nodemanager
配置檔案如下: hadoop-env.sh export JAVA_HOME=/root/training/jdk1.8.0_144(也要新增jdk路徑) hdfs-site.xml
(原則:一般資料塊的冗餘度跟資料節點(DataNode)的個數一致;最大不超過3) <!--表示資料塊的冗餘度,預設: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地址,9000是RPC通訊埠--> <property> <name>fs.defaultFS</name> <value>hdfs://bigdata111:9000</value> </property>
<!--HDFS資料儲存在Linux的哪個目錄,預設值是Linux的tmp目錄--> <property> <name>hadoop.tmp.dir</name> <value>/root/training/hadoop-2.7.3/tmp</value> </property> mapred-site.xml 預設沒有 cp mapred-site.xml.template mapred-site.xml <!--MR執行的框架--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> yarn-site.xml <!--Yarn的主節點RM的位置--> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata111</value> </property>
<!--MapReduce執行方式:shuffle洗牌--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
在配置好後需要格式化:HDFS(NameNode) 命令: hdfs namenode -format 日誌: Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.
啟動停止Hadoop的環境 start-all.sh stop-all.sh 訪問:通過Web介面(在訪問web頁面時要先關閉防火牆或者開啟防火牆的下面兩個埠,防火牆關閉命令為systemctl stop firewalld.service
systemctl disable firewalld.service)
web頁面
HDFS: http://192.168.157.111:50070 Yarn: http://192.168.157.111:8088
3.全分佈模式
特點:正在的分散式環境,用於生產 做好規劃 1、準備工作 (*)關閉防火牆 systemctl stop firewalld.service systemctl disable firewalld.service (*)安裝JDK (*)配置主機名 vi /etc/hosts 192.168.157.112 bigdata112 192.168.157.113 bigdata113 192.168.157.114 bigdata114 (*)配置免密碼登入:兩兩之間的免密碼登入 (1) 每臺機器產生自己的公鑰和私鑰 ssh-keygen -t rsa (2) 每臺機器把自己的公鑰給別人 ssh-copy-id -i .ssh/id_rsa.pub [email protected] ssh-copy-id -i .ssh/id_rsa.pub [email protected] ssh-copy-id -i .ssh/id_rsa.pub [email protected] (*)保證每臺機器的時間同步(建議直接在虛擬機器上直接設定同步主機時間) 如果時間不一樣,執行MapReduce程式的時候可能存在問題 2、在主節點上(bigdata112)安裝 (1)解壓設定環境變數 tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/ 設定:112 113 114 HADOOP_HOME=/root/training/hadoop-2.7.3 export HADOOP_HOME PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH export PATH (2) 修改配置檔案 hadoop-env.sh export JAVA_HOME=/root/training/jdk1.8.0_144 hdfs-site.xml <!--表示資料塊的冗餘度,預設:3--> <property> <name>dfs.replication</name> <value>2</value> </property> core-site.xml <!--配置NameNode地址,9000是RPC通訊埠--> <property> <name>fs.defaultFS</name> <value>hdfs://bigdata112:9000</value> </property>
<!--HDFS資料儲存在Linux的哪個目錄,預設值是Linux的tmp目錄--> <property> <name>hadoop.tmp.dir</name> <value>/root/training/hadoop-2.7.3/tmp</value> </property> mapred-site.xml 預設沒有 cp mapred-site.xml.template mapred-site.xml
<!--MR執行的框架--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> yarn-site.xml <!--Yarn的主節點RM的位置--> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata112</value> </property>
<!--MapReduce執行方式:shuffle洗牌--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> slaves bigdata113 bigdata114 (3) 格式化NameNode: hdfs namenode -format (4) 把主節點上配置好的hadoop複製到從節點上 scp -r hadoop-2.7.3/ [email protected]:/root/training(解壓後的hadoop的存放目錄) scp -r hadoop-2.7.3/ [email protected]:/root/training
(5) 在主節點上啟動 start-all.sh
啟動後輸入jps,發現有jps,namenode,datanode,secondrynamenode,resourcemaner,nodemanger,則為正常啟動 --------------------- 作者:博得不在 來源:CSDN 原文:https://blog.csdn.net/xxw_sample/article/details/80139489 版權宣告:本文為博主原創文章,轉載請附上博文連結!