Hadoop下載安裝及HDFS配置教程
前言
Hadoop是一個由Apache基金會所開發的分佈式系統基礎架構。用戶可以在不瞭解分佈式底層細節的情況下,開發分佈式程序。充分利用集羣的威力進行高速運算和存儲。Hadoop實現了一個分佈式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯性的特點,並且設計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應用程序的數據,適合那些有着超大數據集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(streaming access)文件系統中的數據。Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS爲海量的數據提供了存儲,而MapReduce則爲海量的數據提供了計算。
簡言之,Hadoop的核心就是解決兩個問題,一是存儲(採用HDFS),二是計算(採用MapReduce編程模型)
一、Hadoop HDFS簡單集羣框架原理
NameNode:整個hdfs集羣的管理者,不存儲實際文件數據,只記錄文件數據的元數據信息(如,數據切分爲多少塊block,每塊數據及其備份數據存儲在哪臺服務器節點上(NameNode))
DataNode:真正用來存儲數據的節點
Block(數據塊):既然要分佈式處理,就要將數據切分,然後分佈在各個服務器節點上。Block就是由NameNode對數據文件進行切分的最小單元。在hadoop2.x版本中一個Block塊爲128M;在hadoop1.x版本中一個Block塊爲64M;
Replice(副本):HDFS集羣爲了保證數據高可用性,默認會對一個數據塊進行3次備份(講白了,就是對每一個Block備份3次,這3次備份數據分別合理的分配在不同的服務器上,防止一個服務器掛掉,數據就丟失或者損壞的問題)
機房 長啥樣?我是沒見過,如果有機會見見也是極好的,不過網傳大概就這樣吧,不知道我對於萬一所有機房都被壞人幹掉了的擔心是否多餘(天真臉)
二、Hadoop安裝準備
1、安裝虛擬機VMware
Hadoop框架運行組lunix系統之上,那麼window系統上如何運行Hadoop呢?這就需要虛擬機了。VMWare (Virtual Machine ware)是一個“虛擬PC”軟件公司,它的產品可以使你在一臺機器上同時運行二個或更多Windows、DOS、LINUX系統。簡單來說是一種軟件,用它可以在一個系統中裝另外一個系統。這就滿足了我們window系統上安裝lunix系統的需求。
1.1 VMware Workstation Pro 15.5下載
鏈接:https://pan.baidu.com/s/1Z3H3SNKgmvcAYD7_Q1rQlQ
提取碼:0zty
1.2 虛擬機安裝
一直下一步直到安裝完成,虛擬機祕鑰:
https://blog.csdn.net/qq_35995514/article/details/98473444
2、在虛擬機上安裝CentOS系統
2.1 CentOS系統下載
https://www.jianshu.com/p/a63f47e096e8
2.2 CentOS系統安裝:
https://www.runoob.com/w3cnote/vmware-install-centos7.html
對於CentOS系統的安裝,我建議新手直接選擇【典型】配置即可,不必設置太多自定義選項。系統安裝關鍵兩點和在電腦上安裝window系統一樣,選擇系統位置和分配磁盤空間。
2.3 JDK安裝和環境配置:
https://www.cnblogs.com/maomao999/p/9764251.html
三、Hadoop安裝和HDFS配置
1、下載Hadoop
到Apache官方網站下載自己對應版本即可
https://hadoop.apache.org/releases.html
2、建議保留安裝的初始CentOS系統,然後克隆這個初始系統,進行Hadoop的相關配置
因爲CentOS系統安裝一次很麻煩,不必要每次都安裝一次,保留安裝好的初始系統,後面搭建集羣的時候,只需要克隆這個初始系統就可以了。
3、添加ip地址和hostname以及ip和hostname的關聯
3.1查看ip地址
ifconfig
3.2 添加ip地址到ifcfg-ens33文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
注意:BOOTPROTO要修改爲static,不然CentOS的ip地址是動態的,下次重啓系統可能就不是我們配置的那個ip了,導致無法在瀏覽器查看
3.3 修改hostname名字
vim /etc/hostname
3.4 將ip與hostname關聯
vim /etc/hosts
3.5 重啓系統
reboot
4、將hadoop壓縮包通過Xftp傳到CentOS系統中
Xftp 6 下載:
鏈接:https://pan.baidu.com/s/1CmUg_MKi3cbAKaR8306A6Q
提取碼:w42m
5、解壓hadoop壓縮包
tar -zxvf hadoop-2.9.2.tar.gz
5.1 hadoop文件結構
bin文件夾:裏面都是可執行的二進制腳本文件
etc/hadoop文件夾:裏面都是hadoop系統配置文件,後面對於hadoopp的配置文件都在這個目錄。
sbn文件夾:裏面都是可執行的二進制腳本文件,裏面包括HDFS的啓動,關閉
share文件夾:裏面是hadoop的文檔和運行核心包
6、配置hadoop環境變量
編輯環境變量
vim /etc/profile
重新加載配置
source /etc/profile
驗證hadoop是否加入環境變量
echo $PATH
7、配置hadoop-env.sh
將JAVA的路徑配置到hadoop的環境文件中
vim /root/hadoop/hadoop-2.9.2/etc/hadoop/hadoop-env.sh
8、配置core-sit.xml
vim /root/hadoop/hadoop-2.9.2/etc/hadoop/core-site.xml
1、配置哪臺機器爲namenode
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop2:9000</value>
</property>
2、默認hadoop的配置將數據放在系統臨時目錄中:/tmp/hadoop-${user.name},系統臨時目錄可能會導致集羣數據的不安全,因此修改配置,將數據存放在指定的目錄,本文將數據存放在解壓後的hadoop-2.9.2的下的data文件夾下
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/hadoop-2.9.2/data</value>
</property>
9、配置hdfs-site.xml(用來對hdfs文件系統做相關配置)
vim /root/hadoop/hadoop-2.9.2/etc/hadoop/hdfs-site.xml
1、修改block的副本數據,因爲本次hdfs是單機版的集羣,只有一個服務器,3個副本也沒有地方放,所以,把副本數修改爲1
<property>
<name>dfs.replication</name>
<value>1 </value>
</property>
2、修改root的權限,這樣可以讓非root用戶也可以操作hdfs
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
10、配置slaves文件,就是配置哪些機器爲DataNode節點,跟隨NameNode同時啓動
vim /root/hadoop/hadoop-2.9.2/etc/hadoop/slaves
本機既作NameNode又充當DataNode
11、格式化NameNode(僅僅第一次需要格式化)
就像U盤一樣,插到windows系統上需要格式化爲windows的文件系統,插到lunix系統上需要格式化爲lunix的文件系統
hdfs namenode -format
12、啓動hdfs集羣
start-dfs.sh
查看是否啓動成功
jps
如下圖則啓動成功
13、上傳文件數據到hdfs
如將aa.txt文件上傳到hdfs的根目錄(/)
hdfs dfs -put ./aa.txt/
14、訪問hdfs可視化管理界面
關閉防火牆
systemctl stop firewalld
在瀏覽器中輸入 IP地址:50070即可查看