1. 程式人生 > >新手指導:hadoop-搭建叢集必備知識:叢集及記憶體配置介紹

新手指導:hadoop-搭建叢集必備知識:叢集及記憶體配置介紹

1.叢集配置常用配置檔案有哪些? 2.有哪些控制指令碼,如何檢視這些配置指令碼? 3.有哪些守護程序? 4.hadoop的記憶體該如何設定? 5.如何單獨配置namenode記憶體? 叢集介紹 1. 配置檔案列表如下: [[email protected] conf]$ pwd
/home/tianyc/hadoop-1.0.4/conf
[[email protected] conf]$ ll
總用量 76
-rw-rw-r--. 1 tianyc NEU 7457 3月 6 10:38 capacity-scheduler.xml
-rw-rw-r--. 1 tianyc NEU 535 3月 6 10:38 configuration.xsl
-rw-rw-r--. 1 tianyc NEU 371 3月 6 14:26 core-site.xml
-rw-rw-r--. 1 tianyc NEU 327 3月 6 10:38 fair-scheduler.xml
-rw-rw-r--. 1 tianyc NEU 2233 3月 6 10:38 hadoop-env.sh
-rw-rw-r--. 1 tianyc NEU 1488 3月 6 10:38 hadoop-metrics2.properties
-rw-rw-r--. 1 tianyc NEU 4644 3月 6 10:38 hadoop-policy.xml
-rw-rw-r--. 1 tianyc NEU 258 3月 6 10:38 hdfs-site.xml
-rw-rw-r--. 1 tianyc NEU 4441 3月 6 10:38 log4j.properties
-rw-rw-r--. 1 tianyc NEU 2033 3月 6 10:38 mapred-queue-acls.xml
-rw-rw-r--. 1 tianyc NEU 270 3月 7 14:45 mapred-site.xml
-rw-rw-r--. 1 tianyc NEU 19 3月 7 11:52 masters
-rw-rw-r--. 1 tianyc NEU 19 3月 6 10:38 slaves
-rw-rw-r--. 1 tianyc NEU 1243 3月 6 10:38 ssl-client.xml.example
-rw-rw-r--. 1 tianyc NEU 1195 3月 6 10:38 ssl-server.xml.example
-rw-rw-r--. 1 tianyc NEU 382 3月 6 10:38 taskcontroller.cfg

2. 常用配置檔案:
  • hadoop-env.sh:記錄指令碼要用的環境變數。
  • core-site.xml:Hadoop核心配置項
  • hdfs-site.xml:Hadoop守護程序配置項,例如namenode,secondarynamenode和datanode等。
  • mapred-site.xml:MapReduce守護程序配置項,包括jobtracker和tasktracker。
  • master:執行secondarynamenode(而不是namenode)的機器列表(每行一個)。只在namenode或jobtracker節點上使用,無需同步到各節點。
  • slave:執行datanode和tasktracker的機器列表(每行一個)。只在namenode或jobtracker節點上使用,無需同步到各節點。


3. 配置管理 hadoop支援為所有的節點採用同一套配置檔案,這樣管理會變得非常簡單,不過這對於某些叢集來說並不適合。例如在擴充套件叢集時,如果新機器的硬體和現有機器不同,則需要為新機器建立一套新的配置檔案,以充分利用新硬體資源。所以,非常推薦在每個節點儲存一套配置檔案,並由管理員完成這些配置檔案的同步工作。hadoop提供了一個基本工具來進行同步配置,即rsync。 這種情況下,需要引入“機器類”的概念,為不同的機器類分別維護一套配置檔案。不過hadoop並沒有提供執行這個操作的工具,需要藉助外部工具,例如Chef,Puppet,cfengine和bcfg2等。

4. 控制指令碼
  • start-dfs.sh:在本地節點啟動namenode,在slave檔案指定的每個節點啟動datanode,在master檔案指定的每個節點啟動secondarynamenode
  • start-mapred.sh:在本地節點啟動jobtracker,在slave檔案指定的每個節點啟動tasktracker。
  • start-all.sh:依次呼叫start-dfs.sh和start-mapred.sh
  • stop-dfs.sh/stop-mapred.sh/stop-all.sh:前面的start指令碼對應的關閉指令碼。
  • hadoop-daemon.sh:上述指令碼呼叫它來執行啟動和終止hadoop守護程序。如果使用者需要從其他系統或自己編寫指令碼控制hadoop守護程序,可以呼叫它。
  • hadoop-daemons.sh:用於在多個主機上啟動同一hadoop守護程序。


5. 守護程序管理 對於小型叢集(幾十個節點),可以將namenode、secondarynamenode、jobtracker放到單獨一臺機器上,但對於大型叢集,最好分別放到不同的機器上。
  • namenode:在記憶體中儲存整個名稱空間的所有檔案和塊元資料,它的記憶體需求很大。
  • secondnamenode:儲存一份最新的檢查點,記錄檔案系統的元資料,有助於在資料丟失或系統崩潰時恢復namenode的元資料;它在大多時候空閒,但它建立檢查時的記憶體需求和namenode差不多。一旦檔案系統包含大量檔案,單臺主機可能無法同時執行namenode和secondarynamenode。
  • jobtracker:在一個執行大量mapreduce作業的高負載叢集上,jobtracker會使用大量記憶體和CPU資源,因此它最好執行在一個專用節點上。
HDFS控制指令碼需要在namenode機器上執行;mapreduce控制指令碼需要在jobtracker機器上執行。


記憶體設定 1. 記憶體 hadoop為各個守護程序(namenode,secondarynamenode,jobtracker,datanode,tasktracker)統一分配的記憶體在hadoop-env.sh中設定,引數為HADOOP_HEAPSIZE,預設為1000M。
大部分情況下,這個統一設定的值可能並不適合。例如對於namenode節點,1000M的記憶體只能儲存幾百萬個檔案的資料塊的引用。如果我想單獨設定namenode的記憶體,可以通過HADOOP_NAMENODE_OPTS來設定。
同樣的,可以通過HADOOP_SECONDARYNAMENODE_OPTS來設定secondrynamenode的記憶體,使得它與namenode保持一致。
當然,還有HADOOP_DATANODE_OPTS、HADOOP_BALANCER_OPTS、HADOOP_JOBTRACKER_OPTS變數供你使用。
此外,tasktracker啟動獨立的子JVM以執行map和reduce任務,分配給每個子JVM的記憶體量由mapred.child.java.opts屬性(mapred-site.xml)控制,預設值為200M。

2. 最大map任務數 一個tasktracker能夠同時執行最大map任務數,由mapred.tasktracker.map.tasks.maximum屬性(mapred-site.xml)控制,預設為2。

3. 最大reduce任務數 一個tasktracker能夠同時執行最大reduce任務數,由mapred.tasktracker.reduce.tasks.maximum屬(mapred-site.xml)性控制,預設為2。

4. 小總結:計算節點的記憶體佔用量。 預設情況下,一個同時運行了namenode,secondarynamenode和jobtracker的主節點,各自使用1000M記憶體,所以總計使用3000M。 預設情況下,一個從節點運行了如下守護程序:
  • 1個datanode:預設佔用1000M記憶體。
  • 1個tasktracker:預設佔用1000M記憶體。
  • 最多2個map任務:2*200M=400M。
  • 最多2個reduce任務:2*200M=400M。

即預設情況下,一個從節點需要使用2800M記憶體量。
在一個tasktracker上能夠同時執行的任務數取決於這臺機器上有多少個處理器。由於mapreduce作業通常是I/O-bound,因此將任務數設定為超出處理器數也有一定道理,可以獲得更好的利用率。經驗法則是任務總數(map任務數與reduce任務數之和)與處理器的比值在1和2之間。
例如,假設一臺8個處理器的工作節點,每個處理器上執行2個程序,則可以將最大map任務數和最大reduce任務數分別設定成7(因為還有datanode和tasktracker程序,所以不能設定為8),各個JVM子任務可用記憶體設定為400M,則總記憶體開銷=1000M(datanode)+1000M(tasktracker)+7*400M(map)+7*400M(reduce)=7600M 這樣配置是否合理,還需要考慮是否給這臺機器上的其他程序預留了足夠記憶體,否則可能導致各程序在系統中不斷切換,導致效能惡化。可以使用一些工具來監控叢集的記憶體使用情況來進行優化,例如Ganglia工具。
hadoop也可以設定mapreduce操作所能使用的最大記憶體量,這是分別針對各項作業進行設定的。

相關推薦

新手指導hadoop-搭建叢集必備知識叢集記憶體配置介紹

1.叢集配置常用配置檔案有哪些? 2.有哪些控制指令碼,如何檢視這些配置指令碼? 3.有哪些守護程序? 4.hadoop的記憶體該如何設定? 5.如何單獨配置namenode記憶體? 叢集介紹 1. 配置檔案列表如下: [[email protected] co

程式設計師必備知識常見進位制轉換

價值不是你擁有多少,而是你留下多少。                     

web前端工程師必備知識TCP/IP

1.OSI的7層參考模型 分層名稱 功能概述 常見協議 7 應用層 針對特定應用的協議 FTP,DNS,HTTP,SMTP等 6 表示層 負責資料格式的轉換 不用協議 5 會話層 負責建立和斷開通訊連線 不用協議

推薦WordPress 必備的常用外掛外掛功能介紹

All in One SEO Pack All in One SEO Pack外掛(有的中文翻譯為“多合一SEO包(或集)”)是WordPress 優化外掛中最強大的之一,也是最多人使用搜索優化的外掛。該外掛是由uberdose強人打造的WordPress的一款強大的SEO

Hadoop分散式叢集搭建方法(Version java 1.8+CentOS 6.3)

夏天小廚 前言 大資料這個概念,說的通俗點就是對海量資料的處理分析。據不完全統計,世界百分之九十的資料都由近幾年產生,且不說海量資料的ETL,單從資料的儲存和資料展現的實時性,傳統的單機就已經無法滿足實際場景的需要例如很多OLAP系統。由此引出了Hadoop,Hadoop

新手必備Hadoop基礎——YARN認知

Yarn是一個分散式的資源管理系統,用以提高分散式的叢集環境下的資源利用率,這些資源包括記憶體、IO、網路、磁碟等。其產生的原因是為了解決原MapReduce框架的不足。 最初MapReduce的committer們還可以週期性的在已有的程式碼上進行修改,可是隨著程式碼的增加以及原MapReduce框架設計

MacOSDocker搭建Hadoop叢集

前言:docker環境正常 一、下載hadoop映象,在啟動指令碼建立容器的時候會用到,也可以後面直接啟動指令碼直接下載,版本可

阿里雲ECS伺服器部署HADOOP叢集(一)Hadoop完全分散式叢集環境搭建

準備: 兩臺配置CentOS 7.3的阿里雲ECS伺服器; hadoop-2.7.3.tar.gz安裝包; jdk-8u77-linux-x64.tar.gz安裝包; hostname及IP的配置: 更改主機名: 由於系統為CentOS 7,可以直接使用‘hostnamectl set-hostname 主機

Hadoop初體驗快速搭建Hadoop偽分布式環境

hadoop 偽分布式 大數據 0.前言 本文旨在使用一個全新安裝好的Linux系統從0開始進行Hadoop偽分布式環境的搭建,以達到快速搭建的目的,從而體驗Hadoop的魅力所在,為後面的繼續學習提供基礎環境。 對使用的系統環境作如下說明:操作系統:CentOS 6.5 64位主機I

PHP開發中需要註意幾點事項,新手少走彎路必備知識

clas str2 解釋 lac 提高 serve 註意 客戶端 其它 這篇文章主要介紹了PHP開發需要註意的幾點事項總結,非常詳細,需要的朋友可以參考下。新手多看看避免走彎路。 1.使用內嵌的HTML代碼,而不是PHP的echo語句。 因為PHP是一門嵌入式Web編程語言

深入理解 Java 多線程核心知識跳槽面試必備

java多線程多線程相對於其他 Java 知識點來講,有一定的學習門檻,並且了解起來比較費勁。在平時工作中如若使用不當會出現數據錯亂、執行效率低(還不如單線程去運行)或者死鎖程序掛掉等等問題,所以掌握了解多線程至關重要。本文從基礎概念開始到最後的並發模型由淺入深,講解下線程方面的知識。概念梳理本節我將帶大家了

指導手冊03Hadoop基礎操作

查詢 web mdi 9.png add 訪問hdfs 遠程 mov onf 指導手冊03:Hadoop基礎操作 Part 1:查看Hadoop集群的基本信息1.查詢存儲系統信息(1)在WEB瀏覽器的地址欄輸入http://master:50070/ 請查看自己的Hado

Hadoop新手hadoop入門基礎教程

Hadoop新手篇:hadoop入門基礎教程 關於hadoop的分享此前一直都是零零散散的想到什麼就寫什麼,整體寫的比較亂吧。最近可能還算好的吧,畢竟花了兩週的時間詳細的寫完的了hadoop從規劃到環境安裝配置等全部內容。寫過程不是很難,最煩的可能還是要給每一步配圖,工程量確實比較大。 原計

知識整合營銷新手入門詳解

現在很多企業會提到整合營銷的概念。從字面理解,可能是把各種企業資源柔和在一起,發揮各自的最大化效益。整合營銷的目的是把現有的各種營銷方式進行合理化“加工”以後,再服務於企業的一種營銷策略。然而,在企業實際操作過程中,大部分經營者曲解了整合營銷的出發點,知道整合營銷很好,都在積極嘗試,但在嘗試

零基礎java入門小白如何自學java新手入門必備知識

  一、Java 是什麼? 1.Java出現的背景: 1991 年Sun公司的James Gosling等人開始開發名稱為 Oak 的語言。希望用於控制嵌入在有線電視交換盒、PDA等的微處理器,但卻沒有取得成功,後來由於網際網路的發展,而由於Oak語言本身的具有安全、可移植,又

本地搭建hadoop叢集--設定ssh免登陸免登原理

ssh免登就是 機器與機器之間通過金鑰相互信任跳過登陸 命令 cd  cd .ssh/   ssh-keygen -t rsa 會生成兩個金鑰 id_rsa id_rsa.pub 顧名思義 一個是公鑰 一個是私鑰 A與B

指導手冊03Hadoop基礎操作.md

指導手冊03:Hadoop基礎操作 Part 1:檢視Hadoop叢集的基本資訊 1.查詢儲存系統資訊 請檢視自己的Hadoop叢集填寫下表 Configured Capacity:己配置的檔案系統儲存總量 DFS Remaining :可

大資料Hadoop新手入門

大資料:Hadoop入門 一:什麼是大資料 什麼是大資料: (1.)大資料是指在一定時間內無法用常規軟體對其內容進行抓取,管理和處理的資料集合,簡而言之就是資料量非常大,大到無法用常規工具進行處理,如關係型資料庫,資料倉庫等。這裡“大”是一個什麼量級呢?如在阿里巴巴每天處理資

Hadoop-3.1.1完全分散式叢集搭建

一、工作準備 1.虛擬機器 安裝Vmware 安裝CentOs虛擬機器三臺 master 192.168.33.101 slave1 192.168.33.102 slave2 192.168.33.103 2.虛擬機器配置

大資料篇Hadoop叢集統一時間

修改系統時間,將時間改為一致(建議採用本方法): 1.修改日期 date -s 11/2/2018 2.修改時間 date -s 20:40:00 3.檢查硬體(CMOS)時間 clock -r 4.這個修改在系統重啟後就失效了,因此為了將這個時間永久生效,需要