hadoop的介紹及ubuntu下配置

Hadoop平臺搭建

   Hadoop實現了一個分佈式文件系統HDFS。(存儲數據的系統大量的數據)

HDFS有高容錯性的特點,並且設計用來部署在低廉的硬件上;而且它提供高吞吐量來訪問應用程序的數據,適合那些有着超大數據集的應用程序。

   Hadoop的框架最核心的設計就是:HDFS和MapReduce.HDFS爲海量的數據提供了存儲,則MapReduce爲海量的數據提供了計算。(提供處理數據的算法進行處理數據)

   Hadoop充分利用集羣(就是將多臺計算機弄成一個大的羣體)的威力進行高速運算和存儲。

 

Hadoop架構

 

HDFS的體系:

Namenode()HDFS的守護進程,核心,記錄文件如何劃分,存儲,對i/o,內存進行管理,hadoopnamenode知道文件存在哪些節點,然後和集羣打交道,但是它是單節點,一旦奔潰則集羣奔潰,每個集羣有一個

Secondary Namenode:namenode會把信息給他,然後namenode奔潰時補救,人工介入解決奔潰,每個集羣一個

Master不一定唯一,但是是運行namenode,secondary namenodejobtracker,

slave是運行datanode,tasktracker

JobTracker:每個集羣只有唯一的一個,用於處理用戶提交的任務的後臺程序,分配任務,知道任務完成情況

TaskTracker位於Slave上,管理各節點上的任務,並行Mapreduce任務,與jobTracker交互

 

Hadoop的三種運行方式:

 

1.單機模式只是用於瞭解hadoop單機就是一臺機器。

2.僞分佈也是單機其實,但是安裝和完全分佈式一樣

3.完全分佈式要求至少三個幾點,不然構不成集羣(如果爲三個節點時,這時候就是三個節點都裝hadoop,但是一個節點充當master,用於管理其他節點,其他節點充當slave)運行的時候就是,其他的節點的請求會給mastermaster會給slave分配處理數據的任務,每個一小部分,slave運行map-reduce算法來處理,結果返回master,然後master給用戶。

主要是要研究map-reduce的算法。Map-reduce的算法就是分佈式計算的,是先將問題map映射到下部分,然後進行並行運算,然後reduce合成後就可以。有時候要進行多次的mapreduce

 

截取論文中:Hadoop是由Apache基金會開發並開源的分佈式系統基礎架構。它的核心功能有兩個,文件的分佈式存儲和對分佈在集羣中的文件的並行處理。這兩個功能分別由HDFS(Hadoop Distributed File System,分佈式文件系統)和MapReduce編程模型實現。HDFS提供了友好的命令行工具,供用戶對文件進行常規操作。MapReduce則提供了底層的運行環境和開發接口,開發人員調用Hadoop的API,實現所需的業務邏輯,將工程打包成jar包後即可在集羣上運行。

HDFS是一個安全高效的分佈式存儲系統,它對硬件要求很低,用多節點備份的方法保證數據安全和容錯性,因而可以部署在低廉的硬件上。Hadoop用HDFS存儲從Scribe傳送來的日誌,並運行MapReduce並行處理程序。過程代碼的開發服從MapReduce框架。它按行都去處理日誌文件,當讀到滿足條件的記錄時,例如包含字符串“interest_from”,就會解析該行並做指定的計數和記錄。

HDFS採用master/slave的結構,其中master爲Namenode節點,slave爲Datanode節點在集羣中,Namenode只有一個,它作爲管理者負責管理整個文件系統的命名空間、協調並記錄文件的各個數據塊在集羣中的位置、在出現讀寫故障時根據日誌信息對文件進行重建。開發人員可以在HDFS上對文件進行諸如建立、刪除、移動、重命名等操作爲了防止單點故障,系統中還設置一個Secondary Namenode,該節點會同步更新Namenode上的數據,當Namenode失效時,系統會啓用Secondary Namenode[10]

MapReduce也採用Master/Slave結構,其中master上運行jobtracker守護進程,slave上運行Tasktracker守護進程。jobtracker作爲管理者,負責調度所有任務,這些任務分佈在不同的Tasktracker,僅完成Tasktracker指派的任務,並向jobtracker彙報自身任務執行情況。

Ubuntu 

 

hadoop 單機安裝與部署  

說明:安裝hadoop首先要安裝java 然後再安裝hadoop

 

安裝JAVA

 

。解壓

cd /usr/local 

tar -zxvf jdk-7u25-linux-x64.gz 

 

2.配置/etc/profile  

 

vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.7.0_55
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HONE/jre/bin:$PATH

 

3.使其生效

source /etc/profile  

 

4.查看JAVA安裝是否成功

java -version 

 

 

安裝ssh,免密碼登陸。

apt-get install openssh-server 安裝ssh

建立 SSH KEY 

$ ssh-keygen -t rsa -P "" (注意不要多加空格或缺少空格)

中途需要安裝者選擇保存密鑰的文件,按回車使用默認的文件就可以了:

Enter file in which to save the key (/root/.ssh/id_rsa):(按回車)

啓用SSH KEY:

$ cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

/etc/init.d/ssh reload

reload ssh

ssh localhost

 

 

1.    安裝配置單機hadoop 

1)解壓到/opt/hadoop 

Java代碼 

1.  $ tar zxvf hadoop-1.2.0.tar.gz 

2.  $ sudo mv hadoop-1.2.0 /opt/ 

3.  $ sudo chown -R hadoop:hadoop /opt/hadoop-1.2.0

4.  $ sudo ln -sf /opt/hadoop-1.2.0 /opt/hadoop 

4. 配置 hadoop-env.sh 
1)在hadoop/conf 裏面hadoop-env.sh增加 

Java代碼 

1.  export JAVA_HOME=/usr/jdk1.7.0_25

2.  export HADOOP_HOME=/opt/hadoop 

3.  export PATH=$PATH:/opt/hadoop/bin 

5.配置文件 
1)編輯 /opt/hadoop/conf/core-site.xml 

Java代碼 

1.  <configuration> 

2.  <property> 

3.  <name>fs.default.name</name> 

4.  <value>hdfs://localhost:9000</value> 

5.  </property> 

6.  <property> 

7.  <name>hadoop.tmp.dir</name> 

8.  <value>/tmp/hadoop/hadoop-${user.name}</value> 

9.  </property> 

10.     </configuration> 

2)編輯 /opt/hadoop/conf/hdfs-site.xml 

Java代碼 

1.  <configuration> 

2.  <property> 

3.  <name>dfs.replication</name> 

4.  <value>1</value> 

5.  </property> 

6.  </configuration> 

3)編輯 /opt/hadoop/conf/mapred-site.xml 

Java代碼 

1.  <configuration> 

2.  <property> 

3.  <name>mapred.job.tracker</name> 

4.  <value>localhost:9001</value> 

5.  </property> 

6.  </configuration> 

6.格式化hdfs 

Java代碼 

1.  $ cd /opt/hadoop 

2.  $ source conf/hadoop-env.sh 

3.  $ hadoop namenode -format 

提示信息一大堆... 

7. 啓動hadoop

Java代碼

1.  $ sudo ./start-all.sh //hadoop/bin下執行

8.完成後的測試 

Java代碼 

1.  http://localhost:50030/ - Hadoop 管理接口 

 

 

 

 

 


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