Hadoop2.7.1彪标,Hadoop的環(huán)境配置不是特別的復(fù)雜倍权,但是確實(shí)有很多細(xì)節(jié)需要注意,不然會造成許多配置錯(cuò)誤的情況捞烟。盡量保證一次配置正確防止反復(fù)修改薄声。
操作環(huán)境說明
操作系統(tǒng)
- 操作系統(tǒng): window10
- cpu: i7-6700k
-
內(nèi)存:16g
虛擬機(jī)版本:VMware12
ssh-keygen -t rsa -C "mmmwhy@qq.com"
材料準(zhǔn)備
- ubuntu-14.10-desktop-amd64.iso (Ubuntu 光盤映像)
-
hadoop-2.7.1.tar.gz (Hadoop 環(huán)境包)
注意:
ubuntu14.04有自帶的java,版本是1.7坷襟,輸入java -version
即可查看
如果沒有安裝java的話奸柬,網(wǎng)上找個(gè)安裝java的文章即可,比如這篇
搭建開始
搭建開始
Vmware 創(chuàng)建虛擬機(jī)
根據(jù)Hadoop的調(diào)度規(guī)則婴程,我們將使用VMware 12 加載 ubuntu….iso來創(chuàng)建三個(gè)Ubuntu 虛擬機(jī)廓奕。創(chuàng)建用典型安裝即可。安裝位置請選一個(gè)足夠大的硬盤,預(yù)估需要50g桌粉。記住這個(gè)位置
這時(shí)我們先創(chuàng)建一個(gè)Ubuntu虛擬機(jī)蒸绩,為什么這樣稍后解釋。
SSH 安裝以及配置
先配置ubuntu鏡像源
打開軟件源文件
sudo gedit /etc/apt/sources.list
將以下內(nèi)容替換到源文件(注意在清華大學(xué)網(wǎng)站上選擇合適自己系統(tǒng)的版本)
# 默認(rèn)注釋了源碼鏡像以提高 apt update 速度铃肯,如有需要可自行取消注釋
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse
# 預(yù)發(fā)布軟件源患亿,不建議啟用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse
更新軟件源
sudo apt-get update
安裝ssh
sudo apt-get install openssh-server
已有ssh或者安裝成功了的輸入命令
ps -e | grep ssh
驗(yàn)證SSH是否成功安裝輸入
ssh localhost
出現(xiàn)以下提示說明安裝成功
注意,這個(gè)時(shí)候不是特權(quán)模式押逼,特權(quán)模式反而會報(bào)錯(cuò)步藕,因?yàn)槲覀冊O(shè)置的賬戶名其實(shí)不是
root
生成密鑰Pair
ssh-keygen -t rsa
輸入后一直回車選擇默認(rèn)即可
mater主機(jī)中輸入命令復(fù)制一份公鑰到home中
cp .ssh/id_rsa.pub ~/id_rsa_master.pub
復(fù)制出兩個(gè)虛擬機(jī)
到開始我們放置虛擬機(jī)的位置,復(fù)制兩份放在旁邊挑格,然后用vm直接打開那兩個(gè)文件夾咙冗。
這樣可以生成三個(gè)一毛一樣的虛擬機(jī)。
順便給他們把名字改成各自的角色漂彤。
這樣做的好處是不需要將之前的步驟重復(fù)進(jìn)行多次雾消,不容易出錯(cuò)。
配置 Hadoop (**以下配置將僅僅在master主機(jī)上進(jìn)行 **)
- 將解壓縮好的hadoop-2.7.1文件夾拷貝到home根目錄下面
- 在hadoop-2.7.1文件夾下創(chuàng)建文件挫望,輸入
mkdir hadoop-2.7.1/tmp
mkdir hadoop-2.7.1/hdfs
mkdir hadoop-2.7.1/hdfs/name
mkdir hadoop-2.7.1/hdfs/data
- 輸入命令查看ip地址 立润,三個(gè)都要看,找個(gè)小本本記下媳板。
ifconfig -a
eg. 我所使用的IP地址
192.168.232.36 master
192.168.232.54 slave1
192.168.232.79 slave2
- 修改hosts
sudo gedit /etc/hosts
三個(gè)ip地址和對應(yīng)的角色寫在hosts內(nèi)
- 修改hostname
sudo gedit /etc/hostname
master 的改為 master
slave1 的改為 slave1
slave2 的改為 slave2
修改環(huán)境變量
cd ~/hadoop-2.7.1/
hadoop-env.sh
gedit etc/hadoop/hadoop-env.sh
找到JAVA_HOME=… 一行修改為Java HOME的路徑
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
core-site.xml
gedit etc/hadoop/core-site.xml
在configuration標(biāo)簽中添加
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/mmmwhy/hadoop-2.7.1/tmp</value>
</property>
mapred-site.xml
創(chuàng)建并編輯
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
gedit etc/hadoop/mapred-site.xml
在configuration標(biāo)簽中添加
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/mmmwhy/hadoop-2.7.1/tmp</value>
</property>
hdfs-site.xml
gedit etc/hadoop/hdfs-site.xml
在configuration標(biāo)簽中添加
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/mmmwhy/hadoop-2.7.1/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/mmmwhy/hadoop-2.7.1/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
yarn-site.xml
gedit etc/hadoop/yarn-site.xml
在configuration標(biāo)簽中添加
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
slaves文件
gedit etc/hadoop/slaves
刪除原有內(nèi)容桑腮,根據(jù)配置修改,此處為
slave1
slave2
- 分發(fā)配置好的hadoop文件夾到slave1, slave2
前提是設(shè)置好ssh
scp -r hadoop-2.7.1 mmmwhy@slave1:~/
scp -r hadoop-2.7.1 mmmwhy@slave2:~/
應(yīng)該出現(xiàn)一大堆看起來非常厲害的東西拷肌。
- 格式化hdfs
進(jìn)入hadoop home目錄
bin/hdfs namenode -format
- 啟動集群
sbin/start-all.sh
啟動后分別在master, slave下輸入jps查看進(jìn)程
如上則說明啟動成功
集群測試
echo hellecho hello world >> in1.txt hadoop >> in2.txt
cd ~/mmmwhy/hadoop-2.7.1/
bin/hadoop fs -mkdir /usr
bin/hadoop fs -mkdir /usr/input
bin/hadoop fs -put in1.txt /usr/input
bin/hadoop fs -put in2.txt /usr/input
#執(zhí)行Hadoop內(nèi)置example測試程序
bin/hadoop jar ~/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /usr/input /usr/output
然后進(jìn)入 http://localhost:50070/explorer.html#/usr/input
就可以看到
運(yùn)行wordcount測試
進(jìn)入hadoop home目錄
在hdfs(分布式文件系統(tǒng))中創(chuàng)建一個(gè)名為input的文件夾
bin/hadoop fs -mkdir /input
查看文件是否被創(chuàng)建
bin/hadoop fs -ls /
hadoop home 下創(chuàng)建一個(gè)inputfile 文件夾到旦,并在inputfile里創(chuàng)建兩個(gè)文件
in1.txt
Hello world hello hadoop
in2.txt
Hello Hadoop hello whatever
上傳兩個(gè)文件進(jìn)input
bin/hadoop fs -put inputfile/*.txt /input
查看輸入文件是否傳入
bin/hadoop fs -ls /input
用hadoop jar命令運(yùn)行Hadoop自帶的wordcount
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /input /output
程序開始運(yùn)行,成功后查看輸出文件夾
bin/hadoop fs -ls /output
bin/hadoop fs -cat /output/part-r-00000
至此hadoop分布式集群配置完成巨缘!本文主體內(nèi)容轉(zhuǎn)自CSDN添忘,原作者寫的非常好,但是有一些小問題若锁,做到一半的時(shí)候花式報(bào)錯(cuò)料扰,因此自己寫了一份邓萨,修正了其中一些問題商虐。