1. 程式人生 > >Hadoop2.4.1分散式安裝(詳細)

Hadoop2.4.1分散式安裝(詳細)

注意:第1,第2步每臺機器的安裝路徑要相同,第3步datanode機器不需要

編輯如下檔案:

etc/hadoop/hadoop-env.sh

etc/hadoop/yarn-env.sh

etc/hadoop/slaves

etc/hadoop/core-site.xml 

etc/hadoop/hdfs-site.xml

etc/hadoop/mapred-site.xml

etc/hadoop/yarn-site.xml

1、 配置檔案:etc/hadoop/hadoop-env.sh

修改JAVA_HOME值(export JAVA_HOME=/usr/local/java/jdk1.6.0_38)

2、 配置檔案:etc/hadoop/yarn-env.sh

修改JAVA_HOME值(export JAVA_HOME=/usr/local/java/jdk1.6.0_38)

3、 配置檔案:etc/hadoop/slaves (這個檔案裡面儲存所有slave節點)

寫入以下內容:

hadoop2datanode1

hadoop2datanode2

hadoop2datanode3

hadoop2datanode4

hadoop2datanode5

4、 配置檔案:etc/hadoop/core-site.xml 

<configuration>
<property> 
         <name>fs.defaultFS</name>
         <value>hdfs://hadoop2cluster</value>
         <!-- HDFS路徑 -->
 </property>
 <property>
         <name>io.file.buffer.size</name>
         <value>131072</value>
         <!--讀寫檔案的緩衝區大小 -->
 </property>
 <property>
    <name>hadoop.tmp.dir</name>
         <value>/home/${user.name}/tmp</value><!--零時目錄檔案 -->
         <description>Abase for other temporary directories.</description>
 </property> 

 <property>
   <name>dfs.journalnode.edits.dir</name>
   <value>/home/${user.name}/journal/data</value>
   <!--JournalNode過程對峙邏輯狀況的路徑-->
 </property>

 <property>
   <name>ha.zookeeper.quorum</name>
   <value>10.0.1.68:2181,10.0.1.69:2181,10.0.1.70:2181</value>
   <!--zookeeper叢集地址-->
 </property>
</configuration>

6、 配置檔案:etc/hadoop/hdfs-site.xml

<configuration>
 <property>
        <name>dfs.nameservices</name>
        <value>hadoop2cluster</value>
        <!--dfs聯盟NameServices包含那些叢集,如有多個叢集,用逗號分割 -->
 </property>
 <property>
  <name>dfs.ha.namenodes.hadoop2cluster</name>
         <value>nn1,nn2</value>
             <!--指定NameServices的hadoop2cluster下的namenode有nn1,nn2 -->
        </property>
        <property>
                <name>dfs.namenode.rpc-address.hadoop2cluster.nn1</name>
                <value>hadoop2namenode1:8020</value>
                <!--nn1的RPC地址 -->
        </property>
        <property>
                <name>dfs.namenode.rpc-address.hadoop2cluster.nn2</name>
                <value>hadoop2namenode2:8020</value>
                <!--nn2的RPC地址 -->
        </property>
        <property>
                <name>dfs.namenode.http-address.hadoop2cluster.nn1</name>
                <value>hadoop2namenode1:50070</value>
                <!--nn1的http地址 -->
        </property>
        <property>
                <name>dfs.namenode.http-address.hadoop2cluster.nn2</name>
                <value>hadoop2namenode2:50070</value>
                <!--nn2的http地址 -->
        </property>
        <property>
                <name>dfs.namenode.shared.edits.dir</name>
                <value>qjournal://hadoop2datanode1:8485;hadoop2datanode2:8485;hadoop2datanode3:8485;hadoop2datanode4:8485;hadoop2datanode5:8485/hadoop2cluster</value>
                <!--指定hadoop2cluster的NameNode共享edits檔案目錄時,使用JournalNode叢集資訊-->
        </property>
        <property>
                <name>dfs.ha.automatic-failover.enabled.hadoop2cluster</name>
                <value>true</value>
                <!-- hadoop2cluster啟動自動故障恢復-->
        </property>
        <property>
                <name>dfs.client.failover.proxy.provider.hadoop2cluster</name>
                <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
                <!--指定該實現類處理故障恢復 -->
        </property>
        <property>
                <name>dfs.ha.fencing.methods</name>
                <value>sshfence</value>
                <!--NameNode切換,使用ssh方式進行操作 -->
        </property>
        <property>
                <name>dfs.ha.fencing.ssh.private-key-files</name>
                <value>/home/hadoop/.ssh/id_rsa</value>
                <!--指定祕鑰位置 -->
        </property>
        <property>
             <name>dfs.namenode.name.dir</name>
             <value>/home/${user.name}/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
             <value>/home/${user.name}/dfs/data</value>
        </property>
        <property>
             <name>dfs.replication</name>
          <value>3</value>
         <!--副本數 -->
 </property>
 <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
        <!--web對hdfs操作 -->
 </property>
 <property>
       <name>dfs.permissions.enabled</name>
       <value>false</value>
       <!--是否許可權驗證 -->
 </property>
</configuration>

7、 配置檔案:etc/hadoop/mapred-site.xml

cp mapred-site.xml.template mapred-site.xml

<configuration>
 <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
         </property>
 <property>
         <name>mapreduce.jobtracker.address</name>
         <value>hadoop2namenode1:9101</value>
 </property>
 <property>
         <name>mapreduce.jobhistory.address</name>
         <value>hadoop2namenode1:10020</value>
 </property>
 <property>
         <name>mapreduce.jobhistory.webapp.address</name>
         <value>hadoop2namenode1:19888</value>
 </property>
 <property>
         <name>mapreduce.app-submission.cross-platform</name>
         <value>true</value>
 </property>
</configuration>

8、 配置檔案:etc/hadoop/yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
 <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>hadoop2resourcemanager:8032</value>
 </property>
 <property>
         <name>yarn.resourcemanager.scheduler.address</name>
         <value>hadoop2resourcemanager:8030</value>
 </property>
 <property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>hadoop2resourcemanager:8031</value>
 </property>
 <property>
         <name>yarn.resourcemanager.admin.address</name>
         <value>hadoop2resourcemanager:8033</value>
 </property>
 <property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>hadoop2resourcemanager:8088</value>
 </property>
 <property>
         <name>yarn.application.classpath</name>
         <value>
                    %HADOOP_HOME%\etc\hadoop,
                    %HADOOP_HOME%\share\hadoop\common\*,
                    %HADOOP_HOME%\share\hadoop\common\lib\*,
                    %HADOOP_HOME%\share\hadoop\hdfs\*,
                    %HADOOP_HOME%\share\hadoop\hdfs\lib\*,
                    %HADOOP_HOME%\share\hadoop\mapreduce\*,
                    %HADOOP_HOME%\share\hadoop\mapreduce\lib\*,
                    %HADOOP_HOME%\share\hadoop\yarn\*,
                    %HADOOP_HOME%\share\hadoop\yarn\lib\*
               </value>
        </property>
</configuration>


yarn對外提供的web執行介面訪問地址:http://namenode:8088/

第六:拷貝檔案到datanode1,datanode2和datanode3

scp -r /usr/local/hadoop-2.4.1 [email protected]:/usr/local/
scp -r /usr/local/hadoop-2.4.1 [email protected]:/usr/local/
scp -r /usr/local/hadoop-2.4.1 [email protected]:/usr/local/
scp -r /usr/local/hadoop-2.4.1 [email protected]:/usr/local/
scp -r /usr/local/hadoop-2.4.1 [email protected]:/usr/local/
scp -r /usr/local/hadoop-2.4.1 [email protected]:/usr/local/
scp -r /usr/local/hadoop-2.4.1 [email protected]:/usr/local/

以下是啟動hadoop叢集:

第七:每個Journalnode節點上hadoop2datanode1hadoop2datanode2hadoop2datanode3,hadoop2datanode4,hadoop2datanode5上分別執行命令:

sbin/hadoop-daemon.sh start journalnode        啟動journalnode 節點

sbin/hadoop-daemon.sh stop journalnode        關閉journalnode 節點

執行後,在每個節點在使用jps命令檢視到JournalNode(紅色標記)已經啟動,如:

[[email protected] hadoop-2.4.1]$ jps
6948 JournalNode
7297 Jps

注:執行bin/hdfs namenode -format命令必須啟動journalnode。如果連線不到8485(見journalnode配置)埠,namenode是不能被格式化的,錯誤如下:

14/07/24 09:06:15 INFO ipc.Client: Retrying connect to server: hadoop2datanode5/10.0.1.72:8485. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)

第八:在hadoop2namenode1格式化namenode

bin/hdfs namenode -format  格式化之前Journalnode啟動(超過半數)

否則報如下錯誤:

14/07/24 09:06:15 INFO ipc.Client: Retrying connect to server: hadoop2datanode5/10.0.1.72:8485. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)

第九:hadoop2namenode1節點執行:bin/hdfs zkfc -formatZK

第十:啟動namenode

首先在hadoop2namenode1機器上啟動namenode:

sbin/hadoop-daemon.sh start namenode    啟動本機namenode

sbin/hadoop-daemon.sh start namenode    關閉本機namenode

hadoop2namenode2機器上啟動standby namenode:

bin/hdfs namenode –bootstrapStandby(必須主節點(hadoop2namenode1)啟動才行),否則會報如下錯誤:

org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /home/hadoop/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.

sbin/hadoop-daemon.sh start namenode

最後,分別在hadoop2namenode1和hadoop2namenode2節點在使用jps命令檢視到NameNode(紅色標記)已經啟動,如:

[[email protected] hadoop-2.4.1]$ jps
9566 NameNode
10156 Jps

這時候,使用瀏覽器訪問 http://hadoop2namenode1:50070/dfshealth.jsp  和 http://hadoop2namenode2:50070/dfshealth.jsp  兩個URL都成功的話,證明NameNode啟動成功了。

第十一:啟動datanode

在hadoop2namenode1節點:

執行:sbin/hadoop-daemons.sh start datanode

[[email protected] hadoop-2.4.1]$ sbin/hadoop-daemons.sh start datanode
hadoop2datanode1: starting datanode, logging to /usr/local/hadoop-2.4.1/logs/hadoop-hadoop-datanode-hadoop2datanode1.out
hadoop2datanode2: starting datanode, logging to /usr/local/hadoop-2.4.1/logs/hadoop-hadoop-datanode-hadoop2datanode2.out
hadoop2datanode3: starting datanode, logging to /usr/local/hadoop-2.4.1/logs/hadoop-hadoop-datanode-hadoop2datanode3.out
hadoop2datanode4: starting datanode, logging to /usr/local/hadoop-2.4.1/logs/hadoop-hadoop-datanode-hadoop2datanode4.out
hadoop2datanode5: starting datanode, logging to /usr/local/hadoop-2.4.1/logs/hadoop-hadoop-datanode-hadoop2datanode5.out

最後,分別在五個datanode節點在使用jps命令可以看到DataNode啟動(紅色標記),如:

[[email protected] hadoop-2.4.1]$ jps
6365 Jps
6027 JournalNode
6108 DataNode

第十二:啟動YARN

在hadoop2resourcemanager節點,執行:sbin/start-yarn.sh

[[email protected] hadoop-2.4.1]$ sbin/start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop-2.4.1/logs/yarn-hadoop-resourcemanager-hadoop2resourcemanager.out
hadoop2datanode4: starting nodemanager, logging to /usr/local/hadoop-2.4.1/logs/yarn-hadoop-nodemanager-hadoop2datanode4.out
hadoop2datanode1: starting nodemanager, logging to /usr/local/hadoop-2.4.1/logs/yarn-hadoop-nodemanager-hadoop2datanode1.out
hadoop2datanode2: starting nodemanager, logging to /usr/local/hadoop-2.4.1/logs/yarn-hadoop-nodemanager-hadoop2datanode2.out
hadoop2datanode3: starting nodemanager, logging to /usr/local/hadoop-2.4.1/logs/yarn-hadoop-nodemanager-hadoop2datanode3.out
hadoop2datanode5: starting nodemanager, logging to /usr/local/hadoop-2.4.1/logs/yarn-hadoop-nodemanager-hadoop2datanode5.out

最後,分別在五個datanode節點在使用jps命令可以看到resourcemanager程序NodeManager(紅色標記)已經啟動,如:
[[email protected] hadoop-2.4.1]$ jps
7147 Jps
6973 NodeManager
6776 JournalNode
6867 DataNode
1705 QuorumPeerMain   #這個是zookeeper節點

第十三:啟動ZooKeeperFailoverController

分別兩個namenode所在機器hadoop2namenode1和hadoop2namenode2啟動:

sbin/hadoop-daemon.sh start zkfc     啟動

sbin/hadoop-daemon.sh stop zkfc     停止

hadoop2namenode1和hadoop2namenode2執行jps命令可以看到DFSZKFailoverController(紅色標記)已經啟動檢視:

[[email protected] hadoop-2.4.1]$ jps
10227 Jps
9566 NameNode
9787 DFSZKFailoverController

第十四:在hadoop2namenode1節點啟動JobHistoryServer

啟動日誌服務(檢視mapreduce歷史):JobHistoryServer

sbin/mr-jobhistory-daemon.sh start historyserver啟動

      sbin/mr-jobhistory-daemon.sh stop historyserver停止

hadoop2namenode1執行jps命令可以看到JobHistoryServer(紅色標記)已經啟動檢視:

[[email protected] hadoop-2.4.1]$ jps
9566 NameNode
9787 DFSZKFailoverController
10345 Jps
10302 JobHistoryServer

相關啟動命令:

yarn-daemon.sh start resourcemanager

yarn-daemon.sh start nodemanager

hadoop-daemon.sh start namenode

hadoop-daemon.sh start datanode

hadoop-daemon.sh start secondarynamenode

殺死某個正在執行的Job : hadoop job -kill job_201005310937_0053

檢視叢集狀態:./bin/hdfs dfsadmin –report

檢視檔案塊組成:  ./bin/hdfsfsck / -files -blocks

檢視HDFS:    http://namenode:50070

檢視RM:    http://namenode:8088

第十五:執行hadoop程式

[[email protected] .ssh]$ ./hadoop jar /home/hadoop/project/hadoop-1.0.jar com.fish.hadoop.WordCount

相關推薦

Hadoop2.4.1分散式安裝詳細

注意:第1,第2步每臺機器的安裝路徑要相同,第3步datanode機器不需要 編輯如下檔案: etc/hadoop/hadoop-env.sh etc/hadoop/yarn-env.sh etc/hadoop/slaves etc/hadoop/core-site.xml  etc/hadoop/hdfs

VS2005下編譯、安裝Net-snmp 5.4.1.2手記原創

VS2005下編譯、安裝Net-snmp 5.4.1.2手記 by Flyfish <[email protected]>2008-09-08:=======================================================

mysql編譯安裝詳細(轉載)

所有 man 同時 wget borde ins s參數 set sysconf mysql編譯安裝(詳細) 一、編譯安裝MySQL前的準備工作 安裝編譯源碼所需的工具和庫 yum install gcc gcc-c++ ncurses-dev

最新版Eclipse下載及安裝詳細

Eclipse是JavaWeb開發最常用的工具,下面詳細介紹一下如何下載安裝最新版Eclipse。 一、Eclipse下載 1.輸入網址:https://www.eclipse.org/downloads/ 我們會到官網中找到如下的下載按鈕,但預設下載的是Windows作業系統的64位,

C# EMGU 3.4.1學習筆記示例程式:霍夫圓變換HoughCircles函式

霍夫圓變換的基本思路是認為影象上每一個非零畫素點都有可能是一個潛在的圓上的一點,跟霍夫線變換一樣,也是通過投票,生成累積座標平面,設定一個累積權重來定位圓。 在笛卡爾座標系中圓的方程為: 其中(a,b)是圓心,r是半徑,也可以表述為: 即: 所以在ab

C# EMGU 3.4.1學習筆記XML和YAML檔案的寫入

以下是《OpenCV3程式設計入門》中5.6.3的示例程式的C# + EMGU 3.4.1版,和C++程式相比,有如下幾點不同: 1. 使用Matrix<>儲存多維陣列,多維陣列的各維需要使用{}擴起來,之間用逗號分隔; 2. C#中無法使用<<和

SpringMVC 4.1 新特性JSONP的支援

為了啟用@ResponseBody和ResponseEntity方法的JSONP支援,需宣告一個@ControllerAdvice的bean,它擴充套件了AbstractJsonpResponseBod

Spark偽分散式安裝

筆者是在已安裝好的偽分散式Hadoop環境下安裝的Spark。虛擬機器環境為:centos7。 Hadoop版本號為: [centosm@centosm spark]$ hadoop version Hadoop 2.7.2 一、Spark偽分散式安裝

ThreadPoolExecutor裡面4種拒絕策略詳細

ThreadPoolExecutor類實現了ExecutorService介面和Executor介面,可以設定執行緒池corePoolSize,最大執行緒池大小,AliveTime,拒絕策略等。常用構造方法:ThreadPoolExecutor(int corePoolSiz

【機器學習】Windows +Anaconda3(python3.5)+opencv3.4.1 安裝2

                 Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(2)   原文參考:https://www.cnblogs.com/

sqoop-1.4.7安裝

(一):簡介和環境說明 sqoop是apache旗下一款“Hadoop和關係資料庫伺服器之間傳送資料”的工具。   匯入資料:MySQL,Oracle匯入資料到Hadoop的HDFS、HIVE、HBASE等資料儲存系統;   匯出資料:從Hadoop的檔案系統中匯出資料到關係資料庫

ubuntu 安裝 pytorch ubuntu16.04+pytorch0.4.1+python2.7+cuda8.0

這裡使用pip安裝pytorch,我試過cuda安裝,和電腦的配置沒相容,沒有安裝成功,後來發現使用pip安裝很簡單方便,就是用pip安裝 首先進入pytorch官網,往下拉會看到不同的安裝選項 根據自

詳細圖解mongodb 3.4.1 win7x64安裝

個數 問題 存在 vertica ext 安裝服務 img value 數據庫管理 詳細圖解,記錄 win7 64 安裝mongo數據庫的過程。安裝的版本是 MongoDB-win32-x86_64-2008plus-ssl-3.4.1-signed。 我下載的源文件:m

windows64系統下安裝 redis服務 詳細

sta 保存數據 card class 再看 exe track ttl -c Linux下Redis安裝鏈接 : 轉到 redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list

spring boot 1.5.4 集成devTools

springboot springboot1.5.4 springboot整合jsp springboot之web開發 springboot熱部署devtools 上一篇:spring boot 1.5.4 整合JSP(四)1.1 Spring Boot集成devToolssprin

spring boot 1.5.4 統一異常處理

springboot springboot1.5.4 springboot整合springdatajpa springboot集成jdbctemplate springboot異常處理 上一篇:springboot 1.5.4 配置文件詳解(八) 1 Spring Boot統一異

kubernetes 1.8 高可用安裝

k8s 1.8 calico 網絡5安裝網絡組件calico安裝前需要確認kubelet配置是否已經增加--network-plugin=cni如果沒有配置就加到kubelet配置文件裏Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-

1.4 配置備份策略Policy

所有 nes 需求 console ive bubuko 進入 AR mon 1.1 配置備份策略(Policy) 一個備份策略由四部分組成。 Attributes(屬性) Policy是否Active

VS2017 + opencv 3.4.1 配置 簡記 window 64位

step1 下載opencv: 下載地址  下載完畢後點擊解壓得到    將    D:\cv1012\opencv\build\x64\vc15\bin    新增到環境變數 step2 下載VS2017:

Centos6.10下Open-falcon的分散式安裝虛擬機器偽分散式和前端介面安裝

官方文件地址,還在開發階段,文件部分有點亂 https://book.open-falcon.org/zh_0_2/distributed_install/ 偽分散式安裝,只有一臺虛擬機器,重在學習每個元件 1 環境準備 1.1 配置epel源 必備操作,很多軟體官方源沒有