克隆一個master, 一個slave1, 一個slave2(創建完整克隆)
修改機器名
vi /etc/hostname
修改ip為靜態ip(查看ip ip a, ifconfig)
vi /etc/network/interfaces
master配置
~~~
iface ens33 inet static
address 192.168.231.4
netmask 255.255.255.0
gateway 192.168.231.2
#dns -nameservers 8.8.8.8(google dns解析服務器,可以使用東軟的)
~~~
slave1配置
~~~
iface ens33 inet static
address 192.168.231.3
netmask 255.255.255.0
gateway 192.168.231.2
#dns -nameservers 8.8.8.8(google dns解析服務器,可以使用東軟的)
~~~
slave2配置
~~~
iface ens33 inet static
address 192.168.231.5
netmask 255.255.255.0
gateway 192.168.231.2
#dns -nameservers 8.8.8.8(google dns解析服務器,可以使用東軟的)
~~~
重新啟動網絡服務
service networking restart
修改/etc/hosts文件(DNS解析,主機和IP綁定)
~~~
192.168.231.4 master
192.168.231.3 slave1
192.168.231.5 slave2
~~~
測試ping 主機名 ping master
# 配置ssh免密碼登錄
安裝ssh包
sudo apt-get install ssh
配置ssh的實現思路:
1. 在每個節點上都使用ssh-keygen生成public key, private key
2. 所有節點的public key都拷貝到master節點上,
3. 在master節點上生成一個授權key文件authorized_keys
4. 最后把authorized_keys拷貝到集群中的其他節點,
切換到hadoop用戶su - hadoop
1. 生成公鑰,私鑰對(在master節點上執行)
~~~
ssh-keygen -t rsa
~~~
一直回車,
生成隱藏目錄.ssh (ls -a查看隱藏目錄)
2. 導入公鑰
~~~
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
~~~
3. 在slave節點上生成y公鑰,私鑰對
請生成的公鑰拷貝到master上
~~~
scp id_rsa.pub hadoop@master:/home/hadoop/.ssh/id_rsa.pub2
~~~
4. 在master上,講其他節點的公鑰導入到authorized_key文件
~~~
cat .ssh/id_rsa.pub2 >> .ssh/authorized_keys
cat .ssh/id_rsa.pub3 >> .ssh/authorized_keys
~~~
5. 講master上的“最全”公鑰,復制到其他機器、
~~~
scp .ssh/authorized_keys hadoop@slave1:/home/hadoop/.ssh/authorized_key
scp .ssh/authorized_keys hadoop@slave2:/home/hadoop/.ssh/authorized_key
~~~
6. 測試ssh免密碼登錄
ssh slave1
使用exit退出slave1
# 配置hadoop集群
在各個節點上,創建3個目錄
~~~
mkdir -p /home/hadoop/data/namenode
mkdir -p /home/hadoop/data/datanode
mkdir -p /home/hadoop/tmp
~~~
修改 /home/hadoop/hadoop-2.7.2/etc/hadoop/hadoop-env.sh
~~~
export HADOOP_PREFIX=/home/hadoop/hadoop-2.7.2
export JAVA_HOME=/home/hadoop/jdk1.8
~~~
修改yarn-env.sh
~~~
export JAVA_HOME=/home/hadoop/jdk1.8
~~~
修改core-site.xml文件,參考下面的內容修改:
~~~
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/Hadoop/tmp</value>
</property>?
</configuration>?
~~~
修改hdfs-site.xml
~~~
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/data/datanode</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:9001</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
~~~
根據模板生成mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
修改mapred-site.xml
~~~
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
~~~
修改yarn-site.xml
~~~
<configuration>
<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.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<!--虛擬機默認8G內容,超過時會內存溢出,需要修改成2G-->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>128</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>1</value>
</property>
</configuration>
~~~
修改slaves
~~~
slave1
slave2
~~~
配置slave
把hadoop-2.7.2文件夾連同修改后的配置文件,通過scp拷貝到其他2臺機器上
~~~
scp -r hadoop-2.7.2 hadoop@slave1:/home/hadoop/hadoop-2.7.2
scp -r hadoop-2.7.2 hadoop@slave:/home/hadoop/hadoop-2.7.2
~~~
可能需要先刪除slave1和slave2上的hadoop-2.7.2目錄
在master上格式化HDFS文件系統:
$ hdfs namenode -format
啟動hadoop集群:
$ start-dfs.sh
啟動yarn:
$start-yarn.sh
停止hadoop集群
$ stop-dfs.sh
$ stop-yarn.sh
查看進程:
$ jps
測試Hadoop服務
hdfs管理界面: http://192.168.231.4:50070/
yarn的管理界面:http://192.168.231.4:8088/
- 空白目錄
- 第一章 Linux虛擬機安裝
- 第二章 SSH配置
- 第三章 jdk配置
- 第四章 Hadoop配置-單機
- 第五章 Hadoop配置-集群
- 第六章 HDFS
- 第七章 MapReduce
- 7.1 MapReduce(上)
- 7.2 MapReduce(下)
- 7.3 MapReduce實驗1 去重
- 7.4 MapReduce實驗2 單例排序
- 7.5 MapReduce實驗3 TopK
- 7.6 MapReduce實驗4 倒排索引
- 第八章 Hive
- Hive安裝
- 數據定義
- 數據操作
- 第九章 HBase
- 第十章 SaCa RealRec數據科學平臺
- 第十一章 Spark Core
- 第十二章 Spark Streaming
- 第十章 Spark測試題