hadoop集羣部署

一、Hadoop框架簡介
Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS爲海量的數據提供了存儲,則MapReduce爲海量的數據提供了計算。

HDFS(Hadoop Distribution File System),稱爲Hadoop分佈式文件系統,主要特點:

HDFS最小以64MB的數據塊存儲文件,相比其他文件系統中的4KB~32KB分塊大得多。 HDFS在時延的基礎上對吞吐量進行了優化,它能夠高效處理了對大文件的讀請求流,但不擅長對衆多小文件的定位請求 HDFS對普通的“一次寫入,多次讀取”的工作負載進行了優化。 每個存儲節點運行着一個稱爲DataNode的進程,它管理着相應主機上的所有數據塊。這些存儲節點都由一個稱爲NameNode的主進程來協調,該進程運行於一臺獨立進程上。 與磁盤陣列中設置物理冗餘來處理磁盤故障或類似策略不同,HDFS使用副本來處理故障,每個由文件組成的數據塊存儲在集羣衆的多個節點,HDFS的NameNode不斷監視各個DataNode發來的報告。
(1)MapReduce工作原理
客戶端,提交MapReduce作業;jobtracker,協調作業的運行,jobtracker是一個java應用程序,它的主類是JobTracker;tasktracker。運行作業劃分後的任務,tasktracker是一個java應用程序,TaskTracker是主類。

(2)Hadoop優點
Hadoop是一個能夠讓用戶輕鬆架構和使用的分佈式計算平臺。用戶可以輕鬆地在Hadoop上開發和運行處理海量數據的應用程序。它主要有以下幾個優點:

高可靠性:Hadoop按位存儲和處理數據的能力值得人們信賴。

高擴展性:Hadoop是在可用的計算機集簇間分配數據並完成計算任務的,這些集簇可以方便地擴展到數以千計的節點中。

高效性:Hadoop能夠在節點之間動態地移動數據,並保證各個節點的動態平衡,因此處理速度非常快。

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

低成本:與一體機、商用數據倉庫以及QlikView、Yonghong Z-Suite等數據集市相比,hadoop是開源的,項目的軟件成本因此會大大降低。

Hadoop帶有用Java語言編寫的框架,因此運行在 Linux 生產平臺上是非常理想的。Hadoop 上的應用程序也可以使用其他語言編寫,比如 C++。

Hadoop官網:http://hadoop.apache.org/
二、部署hadoop集羣
①下載安裝包
mkdir /root/software
mkdir /home/hadoop 我將所有的服務都放在了home下,具體情況根據磁盤狀況而定
cd /root/software
wget http://s***.hc-yun.com:10081/down/hadoop-2.8.4.tar.gz
hadoop集羣部署
②解壓到指定目錄
tar zxvf hadoop-2.8.4.tar.gz -C /home/hadoop/
③配置hadoop-env.sh文件
hadoop集羣部署
④配置yarn.sh文件
hadoop集羣部署
Hadoop 3種運行模式

本地獨立模式:Hadoop的所有組件,如NameNode,DataNode,Jobtracker,Tasktracker都運行在一個java進程中。

僞分佈式模式:Hadoop的各個組件都擁有一個單獨的Java虛擬機,它們之間通過網絡套接字通信。

完全分佈式模式:Hadoop分佈在多臺主機上,不同的組件根據工作性質的不同安裝在不通的Guest上。

⑤修改core-site.xml文件
#配置完全分佈式模式
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>13107200</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.8.4/tmp</value>
</property>
</configuration>
hadoop集羣部署
⑥修改hdfs-site.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hadoop-2.8.4/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop-2.8.4/data</value>
</property>
</configuration>
hadoop集羣部署
⑦修改mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:19888</value>
</property>
</configuration>
hadoop集羣部署
⑧配置節點yarn-site.xml
#該文件爲yarn架構的相關配置
<?xml version="1.0"?>

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
hadoop集羣部署
⑨複製配置文件到hadoop的配置文件夾下,並創建對應目錄。
cp -r /root/software/hdp_config/hadoop/ /home/hadoop/hadoop-2.8.4/etc/hadoop/
mkdir -p /home/hadoop/hadoop-2.8.4/{name,data,logs,tmp}
⑩將hadoop文件夾拷貝到兩臺slave服務器上
scp -r /home/hadoop/ hadoop-2.8.4 root@slave01:/home/hadoop
scp -r /home/hadoop/ hadoop-2.8.4 root@slave02:/home/hadoop
⑪在master初始化NameNode
/home/hadoop/hadoop-2.8.4//bin/hdfs namenode –format*
tree /home/hadoop/hadoop-2.8.4/name 查看是否格式化ok
hadoop集羣部署
⑫啓動hadoop集羣
sh /home/hadoop/hadoop/sbin/start-all.sh
echo "/home/hadoop/hadoop/sbin/start-all.sh" >> /etc/rc.d/rc.local
hadoop集羣部署

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