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