Hadoop
是一個(gè)由Apache
基金會(huì)開發(fā)的分布式系統(tǒng)架構(gòu)贪绘,簡(jiǎn)稱HDFS
徘键,具有高容錯(cuò)性练对、可伸縮性等特點(diǎn),并且可以部署在低配置的硬件上吹害;同時(shí)螟凭,提供了高吞吐量的數(shù)據(jù)訪問性能,適用于超大數(shù)據(jù)集的應(yīng)用程序它呀,以及通過集群拓?fù)涓咝Э焖俚奶幚頂?shù)據(jù)的能力螺男。
本文主要介紹一下Hadoop
的開發(fā)環(huán)境搭建棒厘,平臺(tái)是Mac
系統(tǒng)。
下載源碼
在搭建環(huán)境之前下隧,需要先下載hadoop
的binary奢人,可以把 source也下載下來,方便以后閱讀淆院。下載后進(jìn)行解壓:
$ tar -zxvf hadoop-2.8.0.tar.gz
配置hadoop
hadoop
的配置稍許麻煩何乎,暫時(shí)沒有一鍵化配置的功能;另外土辩,hadoop
是基于java
開發(fā)的支救,所需需要安裝java
開發(fā)環(huán)境,如果沒有安裝拷淘,請(qǐng)參考其它資料先安裝java
開發(fā)環(huán)境各墨。設(shè)置好java
開發(fā)環(huán)境后,再設(shè)置hadoop
的開發(fā)環(huán)境辕棚。
hadoop
的配置文件主要都在etc/hadoop
目錄下欲主,可以配置hdfs
、yarn
逝嚎、mapreduce
等扁瓢,下面具體介紹:
1. 添加hadoop環(huán)境變量
添加的方式很多,可以修改系統(tǒng)級(jí)的文件补君,如:/etc/bashrc
引几、/etc/profile
,也可以修改當(dāng)然用戶的文件挽铁,比如:~/.bash_profile
(shell用的是bash)伟桅、~/.zshrc
(shell用的是zsh),添加如下代碼即可
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
export HADOOP_HOME=/Users/gandalf/Documents/kelvin/Hadoop/hadoop-2.8.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
配置完成后叽掘,需要設(shè)置其生效楣铁,安裝zsh
的配置設(shè)置:
$ source ~/.zshrc
設(shè)置完成后,如果出現(xiàn)下面信息更扁,表示hadoop
開發(fā)環(huán)境變量設(shè)置好了
$ hadoop version
Hadoop 2.8.0
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 91f2b7a13d1e97be65db92ddabc627cc29ac0009
Compiled by jdu on 2017-03-17T04:12Z
Compiled with protoc 2.5.0
From source with checksum 60125541c2b3e266cbf3becc5bda666
This command was run using /Users/gandalf/Documents/kelvin/Hadoop/hadoop-2.8.0/share/hadoop/common/hadoop-common-2.8.0.jar
2. 修改hadoop-env.sh
直接設(shè)置JAVA_HOME
的路徑盖腕,不要用$JAVA_HOME
代替,因?yàn)?code>hadoop對(duì)系統(tǒng)變量的支持不是太好
# The java implementation to use.
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
3. 修改core-site.xml
設(shè)置hadoop
的臨時(shí)目錄及文件系統(tǒng)浓镜,其中localhost:9000
表示本地主機(jī)溃列,如果是遠(yuǎn)程主機(jī),則需要把localhost
修改為相應(yīng)的IP
地址膛薛,如果填寫遠(yuǎn)程主機(jī)的域名听隐,則需要到/etc/hosts
文件中做DNS
映射
<configuration>
<!--設(shè)置臨時(shí)目錄-->
<property>
<name>hadoop.tmp.dir</name>
<value>/Users/gandalf/Documents/kelvin/Hadoop/hadoop-2.8.0/data</value>
</property>
<!--設(shè)置文件系統(tǒng)-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
4. 配置hdfs-site.xml
由于是一臺(tái)Mac
電腦,所以數(shù)據(jù)的副本設(shè)置為1
哄啄,默認(rèn)是3
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
5. 配置mapred-site.xml
由于hadoop
的根目錄下的etc/hadoop
目錄下沒有mapred-site.xml
文件雅任,所以需要?jiǎng)?chuàng)建該文件风范,但是我們可以直接把etc/hadoop
目錄下的mapred-site.xml.template
文件重命名為mapred-site.xml
,然后配置數(shù)據(jù)處理的框架為yarn
椿访。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
6. 配置yarn-site.xml
配置數(shù)據(jù)處理框架yarn
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:9000</value>
</property>
</configuration>
啟動(dòng)hadoop
配置完hadoop
后乌企,就可以啟動(dòng)hadoop
了
1. 啟動(dòng)namenode
$ hadoop namenode -format
如果出現(xiàn)如下圖片提示,表示namenode
啟動(dòng)成功
需要注意的是成玫,如果有錯(cuò)誤加酵,請(qǐng)先檢查是不是hadoop
安裝包是32-bit
,而計(jì)算機(jī)系統(tǒng)是64-bit
哭当,造成不匹配
2. 啟動(dòng)hdfs
啟動(dòng)hdfs
猪腕,有可能需要輸入3
次密碼
$ start-dfs.sh
如果出現(xiàn)如下提示,表示hadoop
無法遠(yuǎn)程登錄主機(jī)钦勘,需要開放權(quán)限
具體開放權(quán)限的步驟如下陋葡,先到系統(tǒng)設(shè)置里的共享里,然后允許遠(yuǎn)程登錄彻采,最后添加當(dāng)前的用戶即可:
如果不想每次啟動(dòng)都輸入3
次密碼腐缤,可以添加ssh
的公鑰到authorized_keys
文件中
// 添加ssh的公鑰到authorized_keys文件中
$ mkdir ~/.ssh && cd ~/.ssh
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3. 啟動(dòng)yarn
啟動(dòng)數(shù)據(jù)處理mapreduce
框架yarn
$ start-yarn.sh
如果執(zhí)行jps
命令出現(xiàn)如下提示,表示hadoop
啟動(dòng)完成
4. 瀏覽器查看hadoop
我們也可以通過瀏覽器查看hadoop
的詳細(xì)信息肛响,打開鏈接:
http://localhost:50070/
然后在如下界面岭粤,我們就可以查看hadoop
的具體信息了
hadoop
的開發(fā)環(huán)境搭建如上,如有不足之處特笋,歡迎指出剃浇,共同進(jìn)步