安装过程可以观看视频:https://www.bilibili.com/video/BV1xp4y1Q7vc?p=1
文中使用的是CentOS8
有不一样的地方会标注出来,可以复制的部分我记得的会放出来
2.1 安装准备
2.1.1 虚拟机安装
需要新建虚拟机,安装CentOS,视频中使用的是CentOS6 ,由于6版本已经不提供了,所以我使用的是最新版的8. 跟视频会有不一样,可以参照https://blog.csdn.net/renfeigui0/article/details/102545806z
链接如下 centos/8.3.2011
2.1.2 虚拟机克隆
克隆两台虚拟机
VMware提供
了两种类型的克隆,分别是完整克隆和链接克隆,具体介绍如下。
- 完整克隆:是对原始虚拟机完全独立的一个复制,它不和原始虚拟机共享任何资
源,可以脱离原始拟机独立使用。 - 链接克隆:需要和原始虚拟机共享同一虚拟磁盘文件,不能脱离原始虚拟机独立运
行。但是,采用共享磁盘文件可以极大缩短创建克隆虚拟机的时间,同时还节省物
理磁盘空间。通过链接克隆,可以轻松地为不同的任务创建一个独立的虚拟机。
以上两种克隆方式中,完整克隆的虚拟机文件相对独立并且安全,在实际开发中也较为
常用。因此,此处选取完整克隆方式
2.1.3 Linus系统网络配置
视频中需要更改主机名,但是我 /etc/sysconfig/network 文件会有点不一样,然后网上找到 CentOS8 改名的文件在 vi /etc/hostname 中,直接修改为hadoop02 03
接下来就按照视频中的方法就可以
视频中需要设置MAC地址,但是我没有这个文件,ifconfig 查看 可以发现MAC 地址和虚拟机查看的地址是一致的,因此跳过此步骤
配置IP地址时,也会发现最后的文件名不一致,硬着头皮改,亲测没问题,最终可以实现
文件为 : vi /etc/sysconfig/network-scripts/ifcfg-ens33
(不要多手去改ens33 为 eth0 会挂) 在此把MAC地址放上去,按照虚拟机上的来
HWADDR=00:0C:29:8D:92:6B (MAC地址)
IPADDR=192.168.121.134
NETMASK=255.255.255.0
GATEWAY=192.168.121.2
DNS1=8.8.8.8
2.1.4 SSH服务器配置
SecureCRT的安装与破解可以参照:
https://www.cnblogs.com/yjd_hycf_space/p/7729796.html
快捷键 : 选中为复制,右键为粘贴
当A发送文件给B时,A会产生一对公钥和私钥,自己使用公钥将文件加密发送并且把私钥也发送过去,B用A发送的私钥进行解密,得到文件
2.2 Hadoop集群搭建
2.2.1 Hadoop集群部署模式
Hadoop集群的部署方式分为3种,分别是独立模式(Standalone mode)、伪分布式模式(Pseudo-Distributed mode)、完全分布式模式(Cluster mode),具体介绍如下。
- 独立模式:又称为单机模式,在该模式下,无须运行任何守护进程,所有的程序都在单个JVM上执行。独立模式下调试Hadoop集群的MapReduce程序非常方便,所以一般情况下,该模式在学习或者开发阶段调试使用。
- 伪分布式模式:Hadoop程序的守护进程运行在一台主机节点上,通常使用伪分布式模式来调试Hadoop分布式程序的代码,以及程序执行是否正确,伪分布式模式是完全分布式模式的一个特例。
- 完全分布式模式:Hadoop的守护进程分别运行在由多个主机搭建的集群上,不同节点担任不同的角色,在实际工作应用开发中,通常使用该模式构建企业级Hadoop系统。
在Hadoop环境中,所有服务器节点仅划分为两种角色,分别是master(主节点,1个)和slave(从节点,多个)。因此,伪分布模式是集群模式的特例,只是将主节点和从节点合二为一罢了。
2.2.2 JDK安装
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
2.2.3 Hadoop 安装
http://archive.apache.org/dist/hadoop/common/hadoop-2.7.4/
2.2.4 Hadoop集群配置
2.3 Hadoop 集群测试
2.3.1 格式化文件系统
hdfs namenode -format
只在初次启动前执行即可
2.3.2 启动和关闭集群
- 单节点逐个启动和关闭
单节点逐个启动的方式,需要参照以下方式逐个启动Hadoop集群服务需要的相关服务进程,具体步骤如下。- 在主节点上使用以下指令启动HDFS NameNode进程:
$ hadoop-daemon.sh start namenode - 在每个从节点上使用以下指令启动HDFS DataNode进程:
$ hadoop-daemon.sh start datanode - 在主节点上使用以下指令启动YARN ResourceManager进程:
$ yarn-daemon.sh start resourcemanager - 在每个从节点上使用以下指令启动YAR Nnodemanager进程:
$ yarn-daemon.sh start nodemanager - 在规划节点hadoop02使用以下指令启动SecondaryNameNode进程:
$ hadoop-daemon.sh start secondarynamenode
上述介绍了单节点逐个启动和关团Hadoop集群服务的方式。另外,当需要停止相关服务进程时,只需要将上述指令中的start更改为stop即可。
- 在主节点上使用以下指令启动HDFS NameNode进程:
start-dfs.sh
start-yarn.sh
stop-dfs.sh
stop-yarn.sh
- 脚本一键启动和关闭
启动集群还可以使用脚本一键启动,前提是需要配置slaves配置文件和SSH免密录(如本书采用hadoop01、hadoop02和hadoop03三台节点,为了在任意一台节点上执行脚本一键启动Hadoop服务,那么就必须在三台节点包括自身节点均配置SSH双向免密登录)
使用脚本一键启动Hadoop集群,可以选择在主节点上参考如下方式进行启动- 在主节点hadoop01上使用以下指令启动所有HDFS服务进程:
$ start-dfs.sh - 在主节点hadoop01上使用以下指令启动所有YARN服务进程:
$ start-yarn.sh
上述使用脚本一键启动的方式,先启动了集群所有的HDFS服务进程,然后再启动了所有的YARN服务进程,这就完成了整个Hadoop集群服务的启动。另外,当需要停止相关服务进程时,只需要将上述指令中的start更改为stop即可-- stop-dfs.sh stop-yarn.sh
- 在主节点hadoop01上使用以下指令启动所有HDFS服务进程:
2.3.3 通过UI查看Hadoop运行状态
Hadoop集群正常启动后,它默认开放了50070和8088两个端口,分别用于监控HDFS集群和YARN集群。通过UI可以方便地进行集群的管理和查看,只需要在本地操作系统的浏览器输入集群服务的IP和对应的端口号即可访问。
为了后续方便查看,可以在本地宿主机的hosts文件(Windows操作系统下路径为C:\Windows\System32\drivers\etc)中添加集群服务的IP映射,具体内容示例如下
192.168.121.134 hadoop01
192.168.121.135 hadoop02
192.168.121.136 hadoop03
CentOS6防火墙的语句
1,查看防火墙状态
systemctl status firewalld.service
2,开启防火墙
systemctl start firewalld.service
3,关闭防火墙
systemctl stop firewalld.service
4,禁用防火墙
systemctl disable firewalld.service
2.4 Hadoop 集群 初体验
涉及代码,可复制:
cd /export/software/
yum install lrzsz -y
rz
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /export/servers
cd /export/servers/
mv jdk1.8.0_161/ jdk
vi /etc/profile
export JAVA_HOME=/export/servers/jdk
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin
export CLASSPATH=.:
J
A
V
A
H
O
M
E
/
l
i
b
/
d
t
.
j
a
r
:
JAVA_HOME/lib/dt.jar:
JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
source /etc/profile
archive.apache.org/dist/hadoop/common/hadoop-2.7.4/
tar -zxvf hadoop-2.7.4.tar.gz -C /export/servers/
vi /etc/profile
export HADOOP_HOME=/export/servers/hadoop-2.7.4
export PATH=
H
A
D
O
O
P
H
O
M
E
/
b
i
n
:
HADOOP_HOME/bin:
HADOOPHOME/bin:HADOOP_HOME/sbin:$PATH
hadoop version
hadoop version
core-site.xml 文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/export/servers/hadoop-2.7.4/tmp</value>
</property>
</configuration>
hdfs-site.xml文件
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:50090</value>
</property>
</configuration>
mapred-site.xml
这个文件没有,需要将mapred-site.xml.template重命名
cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
slaves
hadoop01
hadoop02
hadoop03
scp /etc/profile hadoop02:/etc/profile
scp /etc/profile hadoop03:/etc/profile
scp -r /export/ hadoop02:/
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
jps
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
hadoop-daemon.sh start secondarynamenode
start-dfs.sh
start-yarn.sh
stop-dfs.sh
stop-yarn.sh
start-all.sh–不建议
service iptables stop
chkconfig iptables off
systemctl stop firewalld
C:\Windows\System32\drivers\etc
cd /export/data/
vi word.txt
hello itcast
hello hadoop
hello mon
hadoop fs -mkdir -p /wordcount/input
hadoop fs -put /export/data/word.txt /wordcount/input