目录
2.1 分别查看master, slave01,slave02 的ip
2.3 设置DNS,在3太机器的“/etc/hosts”文件中,均加入以下内容
6.2.1 fedora34 开启http server发现无法访问,需要关闭防火墙
6.3 Hadoop yarn nodemanager启动提示 Retrying connect to server: 0.0.0.0/0.0.0.0:8031.
从官网下载parallels,安装。
关于parallels的一些设置,可以右键Dock栏的Parallels Desktop图标,选择偏好设置查看。
Parallels 的试用期是14天,怎样永久使用呢?
命令行开启虚拟机:prlctl start 'master'
命令行重启虚拟机:prlctl restart 'slave01'
参考链接:https://www.youtube.com/watch?v=ZsqlVbR5aBw
打开parallels,直接在引导页面下载 fedora系统(该系统下载时间会比较长)
安装好fedora系统后,右键Dock栏的Parallels Desktop图标,点击“控制中心”,可以看到刚才下载的fedora系统。

点击fedora虚机,进行配置(注意:关机后,才可以更改虚拟机的各种配置)
虚拟机的内存和硬盘默认即可,后续可以随时动态调整

网络选择默认的Shared Network
开启文件夹共享(但仍需要配合Paralles Tools才能实现真正的文件夹共享)

此时,/media/psf/Home 下面就可以看到宿主机的文件了
参考链接:克隆虚拟机
(1) 在控制中心内,选择要克隆的虚拟机(必须处于关闭状态),然后依次选择 文件> 克隆
(2) 选择所需的克隆虚拟机存储位置。
默认情况下,Parallels Desktop 会将克隆的虚拟机存储在“文档”>“Parallels”文件夹中。
(3) 点击 保存 以开始克隆虚拟机。
加载刚刚保存的虚拟机
我构建的是一个master,两个slave。(master,slave是我自己修改的名字,可以在配置里修改)
Ifconfig
注:如果master,slave01,slave02 的ip是一样的,要重新修改一下ip
master

slave01

slave02




如果hostname显示有误,以为master机器为例,可以通过
Vi ~/.bashrc 添加 hostname master
在vim中,保存退出,执行bash,观察当前机器的hostname已经修改。
10.21.55.7 master
10.21.55.8 slave01
10.21.55.9 slave02

slave01 和 slave02 同样操作
ssh服务开启,参考链接:https://blog.csdn.net/rs_network/article/details/8043109
A.确认是否已安装ssh服务
]# rpm -qa | grep openssh-server
openssh-server-5.3p1-19.fc12.i686 (这行表示已安装)
若未安装ssh服务,可输入:
#yum install openssh-server
B. 启动SSH服务
# systemctl start sshd.service
或者 #service sshd start
也可以用 restart 和 stop控制sshd服务
C. 设置系统启动时开启服务
# systemctl enable sshd.service
D. 同样也需开启防火墙22端口
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
也可以将上述参数加入防火墙配置中:
#vi /etc/sysconfig/iptables
加入:-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
保存后重启iptables即可
在master,slave01 和 slave02 机器上,均进行如下操作即可
2.5 ssh免密登录设置
以master为例,执行 “ssh-keygen”命令,一路回车,得到

然后,通过ssh-copy-id的方式进行免密配置
ssh-copy-id ~/.ssh/id_rsa.pub master
ssh-copy-id ~/.ssh/id_rsa.pub slave01
ssh-copy-id ~/.ssh/id_rsa.pub slave02
在slave01,slave02 机器上重复如上操作
在master机器上验证:
ssh slave01

(1) 将hadoop,java安装包,放到共享目录下,拷贝到master机器上,然后再将安装包同步到slave01 和 slave02 上,保证这三个机器安装的内容是一致的。故仍以master为例
Sudo cp /media/psf/Home/hadoop-2.6.5.tar.gz /usr/local/src/
Sudo cp /media/psf/Home/jdk-8u172-linux-x64.tar.gz /usr/local/src/
将hadoop 和 java 拷贝到机器slave01上
Sudo scp -rp /usr/local/src/hadoop-2.6.5.tar.gz parallels@slave01:~/
Sudo cp ~/hadoop-2.6.5.tar.gz /usr/local/src/
Sudo scp -rp /usr/local/src/jdk-8u172-linux-x64.tar.gz parallels@slave01:~/
Sudo cp ~/jdk-8u172-linux-x64.tar.gz /usr/local/src/
同理,将hadoop 和 java 拷贝到机器slave02上
(2)安装java和hadoop,以master为例,slave01 和 slave02 参考master的方法

~/.bashrc 文件如下所示
(3)在"/usr/local/src/hadoop-2.6.5/etc/hadoop"目录中,开始hadoop的一系列配置
hadoop-env.sh 配置JAVA_HOME
yarn-env.sh 配置JAVA_HOME

修改slaves文件,里面写从节点hostname
core-site.xml 配置
mapred-site.xml 配置
cp mapred-site.xml.template mapred-site.xml
yarn-site.xml 配置
hdfs-site.xml 配置
在HADOOP_HOME(/usr/local/src/hadoop-2.6.5)下,创建3个空目录
mkdir tmp
mkdir -p dfs/name
mkdir -p dfs/data
配置已全部配好,然后将所有配置,同步到slave01,slave02(可以使用scp)
进行hdfs集群格式化,中间会提示Y or N,这里直接Y回车就好
cd /usr/local/src/hadoop-2.6.5/bin
./hdfs namenode -format
启动集群
cd /usr/local/src/hadoop-2.6.5
./sbin/start-all.sh

在master上观察进程

在slave01上观察进行

同理,在slave02上观察进程
关闭集群
cd /usr/local/src/hadoop-2.6.5
./sbin/stop-all.sh
(1)https://zhuanlan.zhihu.com/p/507297549
(2)使用Paralles Desktop,在虚拟机环境中搭建hadoop集群(2主3从5节点)_山海王子的博客-CSDN博客_hadoop 二主三从
(3)http://www.sunnyos.com/article-show-78.html
(1) 查看是否安装java
java -version
若安装,则会看到java版本;若未安装,则安装
(2)若安装java,在~/.bash_profile 中加入jdk路径。
export PATH=$PATH:/usr/local/java/jdk1.8.0_172/bin/
source ~/.bash_profile
fedora34 关闭防火墙
临时停止防火墙
$ sudo systemctl stop firewalld
永久禁止防火墙
$ sudo systemctl disable firewalld
查看防火墙状态
$ systemctl status firewalld
参考链接:https://insidelinuxdev.net/article/a0bf3j.html
在master机器上执行 hadoop fs -put 出现如下错误
“put:call from master/192.168.44.128 to master:9000 failed on connection exception:java.net connect Exception 拒绝链接”
错误信息里面还给了一个链接 ConnectionRefused - HADOOP2 - Apache Software Foundation
在slave机器上执行hadoop fs -put 出现如下错误
“put:No route to host from slave/192.168.44.129 to master:9000 failed on socket timeout exception:java.net. NoRouteToHostException 没有到主机的路由”
错误信息里也给了一个链接NoRouteToHost - HADOOP2 - Apache Software Foundation
解决方法
关闭防火墙,重启。
Centos 7 关闭防火墙
开启命令: systemctl start firewalld.
临时关闭命令: systemctl stop firewalld.
永久关闭命令: systemctl disable firewalld.
也可试着使用 service iptables stop/start 关闭/打开防火墙
https://blog.csdn.net/cl723401/article/details/82949139
原因,是因为 nodemanager 找不到 resourcemanager
在yarn-site.xml中添加

参考链接
https://blog.csdn.net/ztx22555/article/details/125918895
关于Hadoop集群物理及虚拟内存的检测的设置说明_7&的博客-CSDN博客
Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1
Running a job using hadoop streaming and mrjob: PipeMapRed.waitOutputThreads(): subprocess failed wi
https://stackoverflow.com/questions/17037300/running-a-job-using-hadoop-streaming-and-mrjob-pipemapred-waitoutputthreads
(1)注意看log
(2)根据log,看可能有哪些问题。比如 log中显示slave 找不到resourcemanager,而resourcemanager是在master上的一个服务,所以,就需要查看,master上相应的服务是否开启等。
比如可以使用netstat 查看一下网络的状态,具体用法详见:Linux netstat命令 | 菜鸟教程
使用 netstat -tunlp 得到如下结果
