所謂的偽分布式集群搭建指的是單主機的環境,所以我的暫時只需要一臺虛擬機即可
本次使用的是hadoop-2.8.0版本
1.配置主機環境
Hadoop的搭建依賴于JDK 所以在搭建之前需要將JDK安裝完畢
1.1 修改主機名稱 本次我會使用使用 hadooop-alone 的名稱
`vim /etc/hostname`
1.2 在hosts文件中進行主機的注冊(tips:如果不注冊在啟動Hadoop時候報錯)
vim /etc/hosts
網絡編輯器的模式建議使用 <NAT模式> 以避免ip的重復帶來的不便
1.3 配置SSH免登陸連接
- 刪除現在已經有的ssh配置
rm -r ~/.ssh
(tips:如果之前沒有配置過 會顯示No such file or directory) - 生成新的 ssh-key :
ssh-keygen -t rsa
(生成新的ssh-key 以rsa加密的方式)
顯示這樣的時候 公鑰生成成功 - 為本機進行公鑰的注冊寫入
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
在配置完后可以用cat ~/.ssh/authorized_keys
查看公鑰
公鑰配置結果顯示
1.4測試SSH連接
ssh root@hadoop-alone
(@后為需要SSH連接的主機名稱) <測試后可以用exit退出>
2.進行 Hadoop的安裝
我們可以選擇將安裝包下載到本地上傳到系統之中 或者可以選擇用wget命令直接通過服務器獲取 wget http://apache.fayea.com/hadoop/common/hadoop-2.8.0/hadoop-2.8.0.tar.gz
(本次我選擇從本地上傳) <利用FTP工具>
2.1 將hadoop的開發包上傳到Linux系統中,并將其解壓
tar xzvf /srv/ftp/hadoop-2.8.0.tar.gz -C /usr/local/
x : 從 tar 包中把文件提取出來
z : 表示 tar 包是被 gzip 壓縮過的,所以解壓時需要用 gunzip 解壓
v : 顯示詳細信息
f xxx.tar.gz : 指定被處理的文件是 xxx.tar.gz
2.2 文件夾的更名操作
由于解壓后的文件名稱過于冗長還會包括到版本的名稱 所以將文件夾進行更名
mv /usr/local/hadoop-2.8.0/ /usr/local/hadoop
mv命令具有移動和更名的作用
2.3 修改profile配置文件 追加配置路徑
- 打開profile配置文件
vim /etc/profile
在最后追加導入操作
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 保存后使其配置文件生效
source /etc/profile
2.4手工配置JDK
Hadoop是基于JAVA的開發包,但是有時候他會找不到profile里配置的JAVA_HOME,所以我們需要手工配置下JDK以保證Hadoop的正確運行
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
找到其里面的JAVA_HOME的配置 將其改為
export JAVA_HOME=/usr/local/jdk
2.5測試Hadoop
Hadoop 安裝完成之后有一個測試的環境命令 用于單詞的統計
- 設置輸入的路徑 在此進行統計的普通文本文件
mkdir -p /usr/test/hadoop/input
- 將Hadoop下的
README.txt
文件拷貝到此路徑下
cp /usr/local/hadoop/README.txt /usr/test/hadoop/input/
2.6進行統計操作
- 路徑:
/usr/local/hadoop/share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.0-sources.jar
程序類 :org.apache.hadoop.examples.WordCount
- 使用Hadoop命令進行統計測試
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.0-sources.jar org.apache.hadoop.examples.WordCount /usr/test/hadoop/input /usr/test/hadoop/output
可以使用cat /usr/test/hadoop/output/part-r-00000
查看輸出目錄
3. 搭建Hadoop偽分布式集群
- 偽分布式集群中有三個核心的配置文件
core-site.xml
,hdfs-site.xml
,yarn-site.xml
- 其所有的配置文件都保存在
/usr/local/hadoop/etc/hadoop
目錄下
3.1 修改core-site.xml的配置文件 <是Hadoop在運行時候的核心文件>
- 建立一個保存臨時目錄的路徑 :
mkdir -p /usr/data/hadoop/tmp
Hadoop默認啟動的時候使用的是系統下的 /temp 目錄下,但是在每一次重啟的時候系統都會將其自動清空 ,如果沒有臨時的儲存目錄有可能會在下一次啟動Hadoop的時候出現問題 - 編輯core-site.xml配置文件
vim /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/data/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-alone:9000</value>
</property>
</configuration>
3.2 修改hdfs-site.xml的配置文件 <進行HDFS 分布式儲存的配置>
- 建立 namenode 進程的保存路徑 :
mkdir -p /usr/data/hadoop/dfs/name
- 建立 datanode 進程的保存路徑 :
mkdir -p /usr/data/hadoop/dfs/data
如果此時Hadoop網絡環境發生了變化,兩個目錄需要清空 否則啟動不了 - 編輯配置文件 :
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/data/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/data/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
3.3 修改yarn-site.xml的配置文件 <進行yarn 分析結構使用>
- 修改配置文件
vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop-alone:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop-alone:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop-alone:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop-alone:8050</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop-alone:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop-alone:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>hadoop-alone:8090</value>
</property>
</configuration>
3.4修改從節點的配置文件
- 修改配置文件
vim /usr/local/hadoop/etc/hadoop/slaves
將其修改為與主機名稱一致hadoop-alone
3.5將數據目錄格式化
- 現在的數據保存在了
/usr/data/hadoop/{name,data}
目錄下,如果想使用,就必須將目錄格式化操作 -->hdfs namenode -format
3.6啟動Hadoop所有進程 start-all.sh
3.7 使用jps命令 查看Java的進程信息
3.8 可使用netstat -nptl
查看其端口
3.9 修改windows主機的hosts配置
- 文件路徑
C:\Windows\System32\drivers\etc\hosts
添加此操作192.168.5.130 hadoop-alone
隨后訪問 http://hadoop-alone:50070/