1. 程式人生 > >Hadoop之完全分散式

Hadoop之完全分散式

隨著雲時代的來臨,大資料(Big Data)也吸引了越來越多的關注。分析師團隊認為,大資料(Big data)通常用來形容一個公司創造的大量非結構化資料半結構化資料,這些資料在下載到關係型資料庫用於分析時會花費過多時間和金錢。大資料分析常和雲端計算聯絡到一起,因為實時的大型資料集分析需要像MapReduce一樣的框架來向數十、數百或甚至數千的電腦分配工作。

大資料需要特殊的技術,以有效地處理大量的容忍經過時間內的資料。適用於大資料的技術,包括大規模並行處理(MPP)資料庫、資料探勘、分散式檔案系統分散式資料庫雲端計算平臺、網際網路和可擴充套件的儲存系統

分散式檔案系統(Distributed File System)是指檔案系統管理的物理儲存資源不一定直接連線在本地節點上,而是通過計算機網路與節點相連。分散式檔案系統的設計基於客戶機/伺服器模式。一個典型的網路可能包括多個供多使用者訪問的伺服器。另外,對等特性允許一些系統扮演客戶機和伺服器的雙重角色。

一、環境搭建

1、搭建完全分散式之前保證要有至少三臺虛擬機器來執行操作。

2、將需要的jdk和Hadoop安裝包傳到根目錄下的apps位置,解壓

3、配置主機名和虛擬機器存在的IP地址

主機名 /etc/sysconfig/network

 修改主機名 /etc/hosts

 配置IP地址 /etc/sysconfig/network-scripts/ifcfg-eth0 幾個虛擬機器的IP地址都需要這樣進行配置

4、、配置jdk和Hadoop執行的環境

vi  ~/.bash_profile 進入環境配置的介面

檢視是否配置成功 java –version  java   hadoop version  hadoop

關閉幾個虛擬機器的防火牆 service iptables stop

5、配置Hadoop的配置檔案

   core-site.xml、hdfs-site.xml、mapred-site.xml.template、yarn-site.xml

①配置core-site.xml 配置檔案

  < property >

<name>fs.defaultFS</name>

<value>hdfs://Hadoop-1:9000</value>

</property>

Hadoop-1 主機的主機名稱,需要跟hosts檔案中的主機名字對應

②配置hdfs-site.xml 配置檔案

  <property>

  <name>hdfs.replication.dir</name>

  <value>3</value>

</property>

Value 預設的儲存個數為3

< property >

<name>dfs.namenode.name.dir</name>

<value>/app/Hadoop/dfs/name</value>

</property>

< property >

<name>dfs.datanode.data.dir</name>

<value>/app/Hadoop/dfs/data</value>

</property>

<property>

<name>dfs.secondary.http.address</name>

<value>Hadoop-2:50090</value>

</property>

Secondary 儲存namenode結點的資訊,儲存映象,因為是對namenode結點的備份資訊,所以value指定主機的時一般不指定和namenode在同一臺主機上

<property>

<name>dfs.checkpoint.dir</name>

<value>/app/Hadoop/dfs/namesecondary</value>

</property>

與上面的secondary一起發揮作用

③配置mapred-site.xml.template 配置檔案

<property>

<name>mapredurce.framwork.dir</name>

<value>yarn</value>

</property>

④配置yarn-site.xml 配置檔案

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>hadoop-1</value>

</property>

Resourcemanager屬於資源管理者,和namenode一樣,所有指向的應該是namenode結點所在的位置

    配置奴隸檔案slaves ,我們知道資料存放在DataNode結點,也就是說slaves裡面出現的一定是包含DataNode結點的那一臺或者幾臺虛擬機器。

6、①格式化namenode結點 Hadoop namenode –format

   ②返回目錄檢視是否產生了namenode結點的工作目錄,檢視日誌資訊logs

   ③檢視是否能夠正常啟動結點,檢視程序jps,啟動/關閉所有結點start/stop –all.sh

7、免密登陸ssh

  輸入ssh-keygen 生成祕鑰對,預設使用rsa演算法

  輸入ls /root/.ssh/ 產生 祕鑰 公鑰

將獲得的公鑰還有祕鑰通過ssh命令傳送給其它的虛擬主機

例如ssh 192.168.1.247

8、將完全分散式所需要的jdk、hosts和Hadoop傳送到其它虛擬機器

   ssh –r /etc/hosts [email protected]:/etc/hosts

可以將配置好的hosts傳送到各個虛擬機器的hosts中,可以避免錯誤,主機中hosts裡想要傳送的包括三臺虛擬機器的IP地址和主機名

9、更改各個虛擬機器的core-site.xml指定自己本機的本機名

關閉防火牆命令 service iptables stop

  啟動結點之前,關閉防火牆,這樣出現在datanode結點的data目錄才不至於是個假目錄。

啟動程序 start –all.sh