Hadoop(一) 簡介 集羣搭建

目錄

Hadoop簡介

1.1Hadoop產生的背景

1.2 Hadoop的優勢

1.3 Hadoop組成

1.4 大數據技術生態體系圖

Hadoop集羣安裝

 linux的集羣配置: 參照linux集羣的配置

安裝相應的軟件 

hadoop集羣的配置

修改以下配置文件

ssh免密登陸的設置

拷貝hadoop的配置文件到其他結點 

格式化namenode


Hadoop簡介

1.1Hadoop產生的背景

1. HADOOP最早起源於Nutch。Nutch的設計目標是構建一個大型的全網搜索引擎,包括網頁抓取、索引、查詢等功能,但隨着抓取網頁數量的增加,遇到了嚴重的可擴展性問,如何解決數十億網頁的存儲和索引問題。

2. 2003年開始谷歌陸續發表的三篇論文爲該問題提供了可行的解決方案

  • 分佈式文件系統(GFS),可用於處理海量網頁的存儲
  • 分佈式計算框架MAPREDUCE,可用於處理海量網頁的索引計算問題。
  • BigTable 數據庫:OLTP 聯機事務處理 Online Transaction Processing 增刪改,OLAP 聯機分析處理 Online Analysis Processing 查詢,真正的作用:提供了一種可以在超大數據集中進行實時CRUD操作的功能

3.Nutch的開發人員完成了相應的開源實現HDFS和MAPREDUCE,並從Nutch中剝離成爲獨立項目HADOOP,到2008年1月,HADOOP成爲Apache頂級項目,迎來了它的快速發展期。

1.2 Hadoop的優勢

1)高可靠性:因爲Hadoop假設計算元素和存儲會出現故障,因此它維護多個工作數據副本,在出現故障時可以對失敗的節點重新分佈處理

2)高擴展性:在集羣間分配任務數據,可方便的擴展數以千計的節點。

3)高效性:在MapReduce的思想下,Hadoop是並行工作的,以加快任務處理速度。

4)高容錯性:自動保存多份副本數據,並且能夠自動將失敗的任務重新分配。

1.3 Hadoop組成

1)Hadoop HDFS:一個高可靠、高吞吐量的分佈式文件系統。

2)Hadoop MapReduce:一個分佈式的離線並行計算框架。

3)Hadoop YARN:作業調度與集羣資源管理的框架。

4)Hadoop Common:支持其他模塊的工具模塊。

1.4.1 YARN架構概述

1)ResourceManager(rm):  處理客戶端請求、啓動/監控ApplicationMaster、監控NodeManager、資源分配與調度;

2)NodeManager(nm):單個節點上的資源管理、處理來自ResourceManager的命令、處理來自ApplicationMaster的命令;

3)ApplicationMaster:數據切分、爲應用程序申請資源,並分配給內部任務、任務監控與容錯。

4)Container:對任務運行環境的抽象,封裝了CPU、內存等多維資源以及環境變量、啓動命令等任務運行相關的信息。

1.4.2 MapReduce架構概述  MapReduce將計算過程分爲兩個階段:Map和Reduce

1)Map階段並行處理輸入數據

2)Reduce階段對Map結果進行彙總

1.4 大數據技術生態體系圖

Hadoop生態圈重點組件:

HDFS:Hadoop的分佈式文件存儲系統。

MapReduce:Hadoop的分佈式程序運算框架,也可以叫做一種編程模型。

Hive:基於Hadoop的類SQL數據倉庫工具

Hbase:基於Hadoop的列式分佈式NoSQL數據庫

ZooKeeper:分佈式協調服務組件

Mahout:基於MapReduce/Flink/Spark等分佈式運算框架的機器學習算法庫

Oozie/Azkaban:工作流調度引擎

Sqoop:數據遷入遷出工具

Flume:日誌採集工具

獲取數據的三種方式

1、自己公司收集的數據--日誌     或者     數據庫中的數據

2、有一些數據可以通過爬蟲從網絡中進行爬取

3、從第三方機構購買

 

Hadoop集羣安裝

集羣規劃如下, 一個namenode節點,3個datanode節點

        namenode: s1

        datanode: s2-s4

linux的集羣配置: 參照linux集羣的配置

      通過secureCRT將jdk,hadoop的安裝包上傳到linux

安裝相應的軟件 

0. 將要安裝的軟件的安裝包上傳至用戶home

1. 創建安裝目錄

    mkdir /myoft ; chown centos:centos /mysoft

2.解壓安裝包到安裝目錄

tar -zxvf jdk-8u181-linux-x64.tar.gz -C /mysoft

tar -zxvf hadoop-2.7.3.tar.gz -C /mysoft

 3.創建軟連接

ln -s /mysoft/hadoop-2.7.3 /mysoft/hadoop
ln -s /mysoft/jdk1.8.0_181 /mysoft/jdk

4.設置環境變量

#jdk configuration
export JAVA_HOME=/mysoft/jdk
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

#hadoop configuration
export HADOOP_HOME=/mysoft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

5.驗證安裝

 java -version

 hadoop version

 

出現上述信息,即爲安裝成功!

 

hadoop集羣的配置

將配置文件分爲三個集羣模式的配置

========================================================

local:本地模式

pesudo: 僞分佈模式

full: 完全分佈模式

cd  /mysoft/hadoop/etc

 cp -r  hadoop local
 cp -r hadoop pesudo
 cp -r hadoop full
 rm -r hadoop

 #hadoop在運行時,讀取的是hadoop下的配置文件,因此當有多種模式的配置時,需要通過建立軟
 #連接來切換相應模式的配置文件
 ln -s /mysoft/hadoop/etc/full /mysoft/hadoop/etc/hadoop

默認配置文件

core-default.xml --- hadoop-common-2.7.3.jar
hdfs-default.xml---hadoop-hdfs-2.7.3.jar
mapred-default.xml---hadoop-mapreduce-client-core-2.7.3.jar
yarn-default.xml---hadoop-yarn-common-2.7.3.jar

裏面有hadoop配置的詳細說明,我們在使用時只是配置了一小部分

 

配置文件

core-site.xml    hadoop集羣的核心配置

hdfs-site.xml    hdfs模塊的相關配置

yarn-site.xml    yarn模塊的相關配置

mapred-site.xml    mapreduce模塊相關配置

hadoop-env.sh   hadoop集羣運行環境設置

slaves     告訴hadoop集羣哪些節點是從節點

<!-- core-site.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<property>
        <!-- 指定hdfs的訪問地址 -->
		<name>fs.defaultFS</name>
		<value>hdfs://s1:8020</value>  
	</property>
	<property>
        <!-- hadoop 的工作目錄 -->
		<name>hadoop.tmp.dir</name>
		<value>/home/centos/hadoop</value>  
	</property>
</configuration>


<!-- hdfs-site.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<property>
        <!-- hdfs文件系統下每個文件塊的副本數 -->
		<name>dfs.replication</name> 
		<value>3</value>     		
	</property>
</configuration>

<!-- mapred-site.xml -->
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
        <!-- 在mapreduce計算時使用什麼模塊來管理 -->
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

<!-- yarn-site.xml -->
<?xml version="1.0"?>

<configuration>
	<property>
        <!-- yarn模塊的master節點 -->
		<name>yarn.resourcemanager.hostname</name>   
		<value>s1</value> 
	</property>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>   
	</property>
	
	<property>
		<name>yarn.nodemanager.vmem-check-enabled</name>
		<value>false</value>  
	</property>
</configuration>

slaves 文件, 每一行代表了一個節點
s2
s3
s4

 

ssh免密登陸的設置

================================

#生成ssh密碼對
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

#將公密鑰拷貝到其他主機
ssh-copy-id centos@s2
ssh-copy-id centos@s3
ssh-copy-id centos@s4

 

拷貝hadoop的配置文件到其他結點 

==========================================

scp -r /mysoft/hadoop/etc/full centos@s2:/mysoft/hadoop/etc/
scp -r /mysoft/hadoop/etc/full centos@s3:/mysoft/hadoop/etc/
scp -r /mysoft/hadoop/etc/full centos@s4:/mysoft/hadoop/etc/

 

格式化namenode

=============================================

hdfs namenode -format

出現上述信息,即格式化成功!

 

start-all.sh

啓動集羣,訪問web-ui出現下列參數,即爲集羣配置成功

==========================================

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章