Post on 24-May-2015
Intern 技術分享2014/08/11
黃泓霖
1. Hadoop Muti-node Cluster Setup
1.1 Hadoop Cluster Overview• 透過分散式架構的 HDFS 搭配可分散運算的 MapReduce
演算方法,將多臺伺服器組合成分散式運算和儲存的叢集(Cluseter) ,來提供巨量資料的儲存和處理能力
• MapReduce→ 先拆解任務,分工處理再彙總結果
• Master & Slaves
1.1 Hadoop Cluster Overview
1.1 Hadoop Cluster Overview
1.1 Hadoop Cluster Overview• Hadoop 2.2.x → YARN
• 將 JobTracker 的兩個主要的功能:資源管理和作業生命週期管理分成不同的部分
1.1 Hadoop Cluster Overview
1.1 Hadoop Cluster Overview
1.2 Setup
Software Versions• Ubuntu Linux 12.04.4 LTS• Hadoop 2.2.0
1.2 Setup
• 在每台 VM 上安裝 JAVA 、 Hadoophttp://www.slideshare.net/recast203/hadoop-cluster
• Networking sudo vim /etc/hosts (for master AND slave) ( 可用 ifconfig 查看 IP)
10.0.3.176 master 10.0.3.184 honglin10110.0.3.223 honglin102
1.2 Setup• SSH access ssh-keyegen -t rsa -P "“ ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@honglin101 ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@honglin102 ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@master
1.2 Setup• 修改 core-site.xml<?xml version="1.0" encoding="UTF-8"?><configuration><property><name>fs.default.name</name><value>hdfs://master:9000</value></property> <property><name>hadoop.tmp.dir</name><value>/usr/local/hadoop/etc/hadoop/tmp</value></property> </configuration>
1.2 Setup• 修改yarn-site.xml<?xml version="1.0"?>
<configuration><property><name>yarn.resourcemanager.resource-tracker.address</name><value>master:8031</value></property>
<property><name>yarn.resourcemanager.scheduler.address</name><value>master:8030</value></property>
<property><name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value></property>
<property><name>yarn.resourcemanager.address</name><value>master:8032</value></property>
<property><name>yarn.nodemanager.local-dirs</name><value>${hadoop.tmp.dir}/nodemanager/local</value></property>
1.2 Setup<property><name>yarn.nodemanager.address</name><value>0.0.0.0:8034</value></property>
<property><name>yarn.nodemanager.remote-app-log-dir</name><value>${hadoop.tmp.dir}/nodemanager/remote</value></property>
<property><name>yarn.nodemanager.log-dirs</name><value>${hadoop.tmp.dir}/nodemanager/logs</value></property>
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
<property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property>
</configuration>
1.2 Setup• Do only on master hadoop namenode –format
啟動 / 關閉 DFS 檢查start-dfs.shstop-dfs.sh
Jps 檢查運作
1.2 Setup
啟動 / 關閉 yarnstart-yarn.shstop-yarn.sh
1.2 Setup
1.2 Setup
1.3 參考網頁• http://www.michael-noll.com/tutorials/running-had
oop-on-ubuntu-linux-multi-node-cluster/
• http://samchu.logdown.com/posts/169103-hadoop-2-fully-distributed-installation-steps
2. 管理多台 Linux 機器的 command tool
Fabric
2.1 Introduction of Fabric• Fabric 是一個自動化的通過 SSH 在多台機器上批量執行
程序的框架。
• 利用事先編輯好的項目配置文件,可以實現項目的自動部署和維護。
• 整個操作都在本地的當前目錄進行,非常方便。
2.2 Installation• 使用 pip 安裝• sudo pip install fabric
2.3 基本使用• Fabric 可以透過 command line 或者是讀
取 fabfile.py 檔案方式來執行, fabfile.py 務必放在執行 fab command 的目錄底下,也就是的命令列所在位置 。
• 如果不透過 fabfile.py 檔案的話,你直接打 fab 會得到 Couldn’t find any fabfiles!
2.3 基本使用
2.3 基本使用
參考網頁• http://blog.wu-boy.com/2013/04/fabric-ssh-for-depl
oy-or-systems-administration/
• http://docs.fabfile.org/en/1.9/
3. Ansible