1、前言
首先我們要準備三臺centos機器,這三臺centos機器的ip、hostname分別爲
IP | hostname |
---|---|
192.168.1.31 | master |
192.168.1.32 | slave1 |
192.168.1.33 | slave2 |
相關步驟:
- 設置/etc/hosts
- 關閉防火牆
- 關閉selinux
- 配置ssh免密登錄
- 安裝jdk
- 安裝 hadoop
- 配置hadoop
- 啓動hadoop
- 驗證hadoop是否安裝成功
2、 參考本人的使用vagrant創建多臺centos7虛擬機,並使用Docker Swarm建立主從集羣 這篇文章,使用vagrant創建三臺centos7虛擬機。
Vagrantfile文件內容,如下
Vagrant.configure("1") do |config|
config.vm.define "master" do |vb|
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 1
end
vb.vm.host_name = "master"
vb.vm.network :public_network, ip: "192.168.1.31"
vb.vm.box = "my-centos7"
end
config.vm.define "slave1" do |vb|
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 1
end
vb.vm.host_name = "slave1"
vb.vm.network :public_network, ip: "192.168.1.32"
vb.vm.box = "my-centos7"
end
config.vm.define "slave2" do |vb|
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 1
end
vb.vm.host_name = "slave2"
vb.vm.network :public_network, ip: "192.168.1.33"
vb.vm.box = "my-centos7"
end
end
3、設置/etc/hosts
# 設置命令
vi /etc/hosts
# 設置內容
192.168.1.31 master
192.168.1.32 slave1
192.168.1.33 slave2
4、關閉防火牆
# 查看防火牆狀態
firewall-cmd --state
# 停止firewall
systemctl stop firewalld.service
5、關閉selinux
# 修改selinux
vi /etc/selinux/config
# 修改內容
SELINUX=disabled
6、配置ssh免密登錄
# 創建私鑰
ssh-keygen -t rsa
# 將創建私鑰copy到slave1
ssh-copy-id root@slave1
在slave1、slave2做同樣的操作
設置完成後,在master中ssh slave1、slave2,就不再需要輸入密碼了
slave1中ssh master、slave2以及slave2中ssh master、slave1參考上面的操作。
7、安裝jdk,參考本人另外一篇文章Centos服務器上安裝jdk
8、安裝 hadoop
8.1將hadoop-2.6.5.tar.gz安裝包上傳到/usr目錄下,並解壓
8.2 創建三個目錄
#
mkdir -p data/hadoop/namenode
mkdir -p data/hadoop/data
mkdir -p data/hadoop/tmp
slave1、slave2節點同樣的操作。
9、配製 hadoop
9.1 hadoop需要配製7個文件
- core-site.xml
- hdfs-site.xml
- mapred-site.xml
- yarn-site.xml
- slaves
- masters
- hadoop-env.sh
9.2 修改core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<description>namenode通信地址</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
<description>臨時文件存儲路徑</description>
</property>
</configuration>
9.3 修改hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/data/hadoop/namenode</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/data/hadoop/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
9.4 修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
9.5 修改yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
<description>ResourceManager對外web ui地址。用戶可通過該地址在瀏覽器中查看集羣各類信息</description>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8141</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>NodeManager上運行的附屬服務。需配置成mapreduce_shuffle,纔可運行MapReduce程序</description>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.acl.enable</name>
<value>false</value>
</property>
<property>
<name>yarn.admin.acl</name>
<value>*</value>
</property>
</configuration>
9.6 修改slaves
slave1
slave2
9.7 修改masters
master
9.8 修改hadoop-env.sh
添加JAVA_HOME配製
export JAVA_HOME=/usr/java/jdk1.8.0_231
10、啓動hadoop
10.1 啓動hadoop之前,需要先格式化文件系統
# 到bin目錄下
cd /usr/hadoop-2.6.5/bin/
#執行文件格式化命令
./hdfs namenode -format
10.2 啓動hdfs
# 到sbin目錄下
cd /usr/hadoop-2.6.5/sbin/
# 啓動 hdfs
./start-dfs.sh
10.3 驗證hadoop是否安裝成功
# 啓動yarn
./start-yarn.sh
11、驗證hadoop是否啓動成功
#
hadoop fs -ls /
hadoop fs -mkdir /user
hadoop fs -put /data/jdk-8u231-linux-x64.tar.gz /user