創(chuàng)建本地Hadoop集群
Hadoop需要的環(huán)境支持
操作系統(tǒng):Linux
JDK支持:最新版JDK:Linux環(huán)境下JDK安裝和配置
三種運(yùn)行模式
- 單機(jī)模式:安裝簡(jiǎn)單,幾乎不用作任何配置,但僅限于調(diào)試用途。
- 偽分布模式:在單節(jié)點(diǎn)上同時(shí)啟動(dòng)namenode、datanode、jobtracker、tasktracker、secondary namenode等五個(gè)進(jìn)程,模擬分布式運(yùn)行的各個(gè)節(jié)點(diǎn)。
- 完全分布式模式:正常的Hadoop集群,由多個(gè)各司其職的節(jié)點(diǎn)構(gòu)成。
這里我們介紹偽分布模式的安裝和配置。
Hadoop的安裝和配置
1、下載安裝
(1)進(jìn)入Hadoop官網(wǎng)http://hadoop.apache.org/,進(jìn)入頁(yè)面后向下拉動(dòng),找到如下圖所示鏈接,點(diǎn)擊進(jìn)入

(2)然后,我們將進(jìn)入會(huì)看到Hadoop的各種版本的列表,你可以選擇你想要的版本,進(jìn)行下載,點(diǎn)擊對(duì)應(yīng)版本后面的“binary”進(jìn)入下載頁(yè)面。

(3)然后,單擊第一個(gè)鏈接,即可下載:

(4)將我們下載的hadoop-2.7.4.tar.gz文件放到/opt/hadoop目錄下,然后使用超級(jí)用戶權(quán)限執(zhí)行解壓命令
tar -zxvf hadoop-2.7.4.tar.gz
(5)解壓之后,我們執(zhí)行“l(fā)s”命令,可以看到在/opt/hadoop目錄下多了一個(gè)hadoop-2.7.4目錄,進(jìn)入此目錄,我們可以看到:

2、修改配置文件
此時(shí),我們需要配置的文件主要是“etc”目錄下,進(jìn)入etc/hadoop目錄,我們需要修改的文件主要包括:
core-site.xml ## Hadoop核心配置文件。
hdfs-site.xml ## 配置HDFS系統(tǒng),HDFS后臺(tái)程序設(shè)置的配置:namenode、secondary namenode、datanode
mapred-site.xml ## MapReduce后臺(tái)程序設(shè)置的配置:jobtracker和tasktracker。
hadoop-env.sh ## 環(huán)境配置文件,在運(yùn)行Hadoop的腳本中使用的環(huán)境變量。
(1)執(zhí)行“vim hadoop-env.sh ”,開(kāi)始編輯hadoop-env.sh ,修改JAVA_HOME的值:
# The java implementation to use.
export JAVA_HOME=/usr/java/jdk1.8.0_151

(2)執(zhí)行“vim core-site.xml ”,開(kāi)始編輯core-site.xml:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value> # NameNode的ip地址和端口
</property>
</configuration>

(3)執(zhí)行“vim hdfs-site.xml ”,開(kāi)始編輯hdfs-site.xml :
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop/hadoop-2.7.4/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

說(shuō)明:
hdfs-site.xml是HDFS的配置文件,這里配置了2個(gè)參數(shù)
- dfs.data.dir:本地磁盤(pán)目錄,HDFS數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)塊的地方??梢允嵌禾?hào)分隔的目錄列表,典型的,每個(gè)目錄在不同的磁盤(pán)。這些目錄被輪流使用,一個(gè)塊存儲(chǔ)在這個(gè)目錄,下一個(gè)快存儲(chǔ)在下一個(gè)目錄,,一次循環(huán)。每個(gè)塊在同一個(gè)機(jī)器上僅存儲(chǔ)一份。不存在目錄被忽略。必須常見(jiàn)文件夾,否則被視為不存在。
- dfs.replication:數(shù)據(jù)庫(kù)副本數(shù)。
(4)執(zhí)行“mapred-site.xml ”,開(kāi)始編輯mapred-site.xml :
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value> # 作業(yè)跟蹤器的ip和端口
</property>
</configuration>

3、設(shè)置環(huán)境變量
使用root用戶編輯/etc/profile文件,添加環(huán)境變量。

使環(huán)境變量生效
source /ect/profile
4、配置SSH免密登錄
配置SSH,生成秘鑰,使用SSH可以免密碼連接到localhost。
切換目錄到 /root 下,執(zhí)行 ** ssh-keygen -t rsa **,命令,為當(dāng)前root用戶來(lái)創(chuàng)建一對(duì)秘鑰(公鑰和私鑰)。
id_rsa 為私鑰,id_rsa.pub 為公鑰

將公鑰拷貝到 /root/.ssh/authorized_keys 目錄下,用戶遠(yuǎn)程登錄時(shí),即可免密碼登錄。
# cd authorized_keys
5、格式化分布式文件系統(tǒng)
格式化名稱節(jié)點(diǎn),在名稱節(jié)點(diǎn)上建立一系列的結(jié)構(gòu)用來(lái)存放HDFS的元數(shù)據(jù),執(zhí)行命令:
[root@localhost hadoop-2.7.4]# bin/hadoop namenode -format
執(zhí)行完成后,看到如下語(yǔ)句,則說(shuō)明格式化成功 。

6、啟動(dòng)守護(hù)進(jìn)程
[root@localhost hadoop-2.7.4]# sbin/start-all.sh
輸出結(jié)果如下:
[root@localhost hadoop-2.7.4]# sbin/start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [localhost]
localhost: starting namenode, logging to /opt/hadoop/hadoop-2.7.4/logs/hadoop-root-namenode-localhost.out
localhost: starting datanode, logging to /opt/hadoop/hadoop-2.7.4/logs/hadoop-root-datanode-localhost.out
Starting secondary namenodes [0.0.0.0]
The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established.
ECDSA key fingerprint is 8e:46:af:27:57:3e:fc:b6:c8:b3:a7:0e:1f:02:d2:5a.
Are you sure you want to continue connecting (yes/no)? yes
0.0.0.0: Warning: Permanently added '0.0.0.0' (ECDSA) to the list of known hosts.
0.0.0.0: starting secondarynamenode, logging to /opt/hadoop/hadoop-2.7.4/logs/hadoop-root-secondarynamenode-localhost.out
starting yarn daemons
starting resourcemanager, logging to /opt/hadoop/hadoop-2.7.4/logs/yarn-root-resourcemanager-localhost.out
localhost: starting nodemanager, logging to /opt/hadoop/hadoop-2.7.4/logs/yarn-root-nodemanager-localhost.out
查看任務(wù)是否啟動(dòng)成功:
[root@localhost hadoop-2.7.4]# /usr/java/jdk1.8.0_151/bin/jps
18033 DataNode
18433 NodeManager
18775 Jps
17912 NameNode
18188 SecondaryNameNode
18333 ResourceManager