一、创建虚拟机
1.选择自定义创建
2.选择稍后安装系统
3.处理器数量2,单个处理器内核4个
4.分配内存量4g
5.新建虚拟磁盘:master40g,slave20g
4..其余选项按默认确定
二、安装选项页面
1.软件安装选择最小安装
2.安装位置选择我要配置分区(/目录尽量大)
3.更改主机名
4.设置root密码(建议学习者设置123456)
三、配置静态ip
主机ip默认为动态,为保持Hadoop平台稳定故使用静态ip。
以root用户修改网卡配置文件,所在路径为 /etc/sysconfig/network-scripts
使用vi编辑器打开ifcfg-ens32文件 shift+G跳到末行 shift+4跳到末尾
vi /etc/sysconfig/network-scripts/ifcfg-ens32
改动如下:
修改:
(网络状态)BOOTPROT="static"
(启动) ONBOOT=YES
添加:
(ip地址) IPADDR=(与原IP为同一网段)
(子网掩码)NETMASK=255.255.255.0 0主机地址
(网关) GATEWAY=(与原IP为同一网段,桥接为1,NAT为2)
(域名) DNS1=(与网关一致)
DNS2=8.8.8.8
重启网络
systemctl restart network
四、关闭防火墙
在后续的工作中需要以Master控制slave1,slave2两台机器需要关闭防火墙进行操控
查看防火墙,此时Active为active状态(开启状态)
systemctl status firewalld.service
关闭防火墙确保Active为dead状态(关闭状态)
Active: inactive (dead)
关闭防火墙前一定要先停止防火墙
systemctl stop firewalld.service
关闭防火墙
systemctl disable firewalld.service
五、移除NetworkManager
1.查看NetworkManager服务状态
systemctl status NetworkManager
2.停止NetworkManager服务
systemctl stop NetworkManager
3.移除NetworkManager服务
systemctl disable NetworkManager
六、克隆主机
Hadoop平台的搭建需要一个主节点,多个副节点。在centos7中创建主机Master后,克隆主机为slave1与slave2,为保证从Hadoop平台的稳定选择完整克隆。
七、修改节点名
克隆机slave1、slave2后的主机名依旧是Master,所以要修改主机名。
以root用户执行hostnamectl命令。重启生效(reboot)
hostnamectl set-hostname slave1
注意:克隆虚拟机时一定要生成新的MAC地址,否则导致远程无法连接
八、连接远程操控软件
为方便对Hadoop平台的操控,故连接远程操控软件。(这里以mobaXterm为示例)
点击session
点击SSH,输入slave的ip,选中用户输入root
输入用户密码,连接成功
九、更改UUID
由于slave1为Master的克隆机故uuid号与Master一致,需要更改
输入uuidgen获取新的uuid号
[root@slave1 ~]# uuidgen
894525cf-6edc-41bb-a185-8fd6b88f46f7
使用vi编辑器替换uuid
vi /etc/sysconfig/network-scripts/ifcfg-ens32
十、ip地址和主机名映射
为方便远程连接设置映射
打开master使用root修改映射文件,所在地址为 /etc
使用vi编辑器打开hosts文件,删除文件原有内容,添加内容如下
然后输入“%d”,就可以删除所有内容
192.xxx.xxx.xxx master
192.xxx.xxx.xxx slave1
192.xxx.xxx.xxx slave2
注:master,slave1,slave2同样操作
十一、免密登入
密钥获取
ssh-keygen
使用copy命令将密钥拷贝到其他主机与本机中实现免密登录
ssh-copy-id master
注:master,slave1,slave2同样操作
十二、配置jdk、hadoop环境
使用mkdir命令选择-p属性递归创建文件
/opt/software 用来存放安装包的压缩包
mkdir -p /opt/software
/opt/module用来存放解压后的软件
mkdir -p /opt/module
1.上传安装包于/opt/software 目录下
2.解压到指定的目录下
3.tar -C的作用是解压到指定的目录
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /opt/module/
tar -zxvf hadoop-3.1.4.tar.gz -C /opt/module/
hadoop、java环境变量配置
1.环境变量的配置
vi /etc/profile.d/my_env.sh
2.使用export调用
#jdk环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATH
#hadoop环境变量
export HADOOP_HOME=/opt/module/hadoop-3.1.4
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
3..生效环境变量的配置:
source /etc/profile
4.验证环境是否安装成功
java -version
hadoop version
5.出现以下内容证明安装成功
6.生效环境变量的配置
source /etc/profile
7.将配置文件拷贝到其他节点机中
使用scp命令选择-r属性将/etc/profile.d目录下的my_eny.sh文件拷贝到其他节点机中
scp -r /etc/profile/my_env.sh slave:/etc/profile/
带/是传到其目录下,原文件会被自动覆盖
十三、集群配置文件
hdfs | 分布式文件系统 | namenode datanode |
MapReduce | 分布式计算框架 | |
yarn | 资源调度管理平台 | resourcemanager nodemanager |
secondarynamenode | 保护防线 |
节点配置
master | slave1 | slave2 |
namenode | datanode | datanode |
datanode | resourcemanager | nodemanager |
nodemanager | nodemanager | secondarynamenode |
配置文件 | 功能描述 |
hadoop.env.sh | 配置Hadoop运行所需的环境变量 |
yarn.env.sh | 配置yarn运行所需的环境变量 |
core-site.xml | Hadoop核心全局配置文件,可以在其他配置 文件中引用此文件 |
hdfs-site.xml | HDFS配置文件,继承core-site.xml配置文件 |
mapred- site.xml | MapReduce配置文件,继承core-site.xml配置文件 |
yarn-site.xml | yarn配置文件,继承core-site.xml配置文件 |
1.修改core-site.xml文件
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.4/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 atguigu -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
2.修改hdfs-site.xml文件
<!-- nn web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>master:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave2:9868</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
namenode处于正常的情况下,secondarynamenode不会启动
3.修改mapred-site.xml文件
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
4.修改yarn-site.xml文件
<!-- Site specific YARN configuration properties,附属服务,运行mapreduce程序 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave1</value>
</property>
<!--是否将对容器实施虚拟内存限制,超出则杀死-->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
5.在任意目录下输入:hadoop classpath,复制返回的信息,并添加到如下value标签中
<property>
<name>yarn.application.classpath</name>
<value>输入刚才返回的Hadoop classpath路径</value>
</property>
6.修改workers文件
master
slave1
slave2
7.修改环境变量相关设置
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
一定要source环境变量
文件系统的格式化:
hdfs namenode -format
启动hdfs
start-dfs.sh
二次格式化
二次格式化时要删除data文件与logs日志文件
logs日志文件夹 登录时间 登录进程
十四、ui界面
通过UI界面查看Hadoop集群运行状态
1.使用jps命令查看每台虚拟机的节点确保除slave1有两个节点外,其余主机都有三个节点
2.复制虚拟机映射文件
使用vi编辑器打开/etc/hosts文件复制以下映射
192.xxx.xxx.xxx master
192.xxx.xxx.xxx slave1
192.xxx.xxx.xxx slave2
3.在window系统下新建txt文件,将其改名为hosts,并为其去掉txt后缀
粘贴复制的hosts映射
4.转到此目录C:\Windows\System32\drivers\etc
删除已有的hosts文件,将新建的hosts文件保存到此目录下
5.在浏览器中输入master:9870
启动yarn平台(主节点slave1)
start-yarn.sh
停止yarn平台
stop-yarn.sh
hdfsUI监控界面主机名(IP地址):9870
1.0verview: hdfs基本信息:启动时间、版本号、编译版本等
2.Summary:集群信息。
3.NameNode Storage:提供了NameNode的信息
启动后需要检查:
1.三台机子都敲入jps,检查进程是否完整
master
NodeManager
NameNode
DataNode
Jps
slave1
NodeManager
DataNode
ResourceManager
jps
slave2
SecondaryNamenode
jps
NodeManager
DataNode
2.进入hdfs Ul监控界面:
(1)hdfs平台是active
(2) live nodes为3个
(3) NameNode Storage中State状态为active
十五、配置时间同步服务
NTP(Network Time Protocol)网络时间协议,使计算机时间同步的一种协议
1.下载安装ntp服务
yum install -y ntp
2.设置master节点为ntp服务的主节点
vi /etc/ntp.conf
注释掉server开头的行
添加如下内容:
restrict 192.168.15.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10
3.分别在slave1和slave2节点中配置ntp服务
(1)通过scp -r命令将ntp.conf传给slave1和slave2
(2)在ntp.conf文件中添加如下内容:
server master
4.关闭和禁用防火墙服务
关闭防火墙:
systemctl stop firewalld.service
查看防火墙状态:
systemctl status firewalld.service
移除防火墙:
systemctl disable firewalld.service
5.启动ntp服务
(1)在master节点上使用
启动ntp服务
systemctl start ntpd
永久开启ntp服务
systemctl enable ntpd
6.使用命令ntpdate master去同步master节点的时间
7.在slave1和slave2节点上启动ntp服务
启动ntp服务
systemctl start ntpd
永久开启ntp服务
systemctl enable ntpd
出现如下验证成功:
十六、配置本地yum源及安装常用软件
1.yum常用的命令
安装RPM软件包
install
删除RPM软件包(卸载)
remove
2.参数
-y 对所有的提问都回答yes
3.配置本地yum源yu
(1)进入对应的配置目录
cd /etc/yum.repos.d/
(2)查看目录的下的文件:ll
(3)将除了 CentOS-Media.repo这个文件以外的其他文件都加.bak后缀
(4)vi CentOS-Media.repo
将baseurl的值修改为file:///media/
将gpgcheck的值修改为0
将enabled的值修改为1
(4)使用命令挂在本地yum源
mount /dev/sr0 /media/
成功示范:
(5)更新yum源
yum clean all
注意事项:
1.二次格式化hdfs,需要将data文件夹下的内容清空(直接删除data文件夹),还要删除logs文件夹下的内容(直接删除logs文件夹)
2.hdfs的UI监控界面master:9870
十七、Safemode安全模式
保证系统保密性、完整性及可使用性的一种机制。
当处于安全模式,hdfs只接收读取数据的请求,不允许删除、修改等变更操作
查看安全模式状态
hdfs dfsadmin -safemode get
Safe mode is OFF 关闭状态
Safe mode is ON 开启状态
开启安全模式
hfds dfsadmin-safemode enter
关闭安全模式
hdfs dfsadmin-safemode leave
查看HDFS文件系统资源信息
hdfs dfsadmin -report
查看在线节点信息
hdfs dfs -report -live
查看宕机节点信息
hdfs dfsamdmin -report -dead
十八、hdfs基本操作-命令行 hdfs dfs操作
1.创建目录(文件夹)
单层文件夹
hdfs dfs -mkdir /文件夹名
多层文件夹
hdfs dfs -mkdir -p/文件夹1/文件夹.......
2.上传文件
源文件的路径 目标路径将本地的源文件上传到hdfs
hdfs dfs -put
源文件的路径 目标路径将本地的源文件移动到hdfs上(本地源文件删除)
hdfs dfs -moveFromLocal
源文件的路径 目标路径将本地源文件复制到hdfs上
hdfs dfs -copyFromLocal
3.下载文件
源文件的路径 目标路径
hdfs dfs -get
源文件的路径目标路径
hdfs dfs -copyToLocal
4.查看文件内容
hdfs dfs -cat /文件名
5.删除文件或目录
删除文件
hdfs dfs -rm /文件名
删除文件夹
hdfs dfs -rm -r /文件夹名
6.列出指定的文件和目录
hdfs dfs -ls [-d] [-h] [-R] <文件路径>
十九、yarn平台
hdfs Ul监控界面:master:9870
yarn UI监控界面:slave1:8088
在网页上打开UI监控页面后,检查
Active Nodes是否为3个
二十、mapreduce
输入
hadoop classpath
将输出结果粘贴到
yarn-site.xml文件中
mapreduce样例所在的路径:
/opt/module/hadoop-3.1.4/share/hadoop/mapreduce/ hadoop-mapreduce-examples-3.1.4.jar
包含7个模块:
1.wordcount 对输入的单词文件进行词频统计
2.pi 应用拟蒙特卡罗方法计算圆周率π的值
3.wordmean计算输入的文件单词的平均长度 I
4.wordmedian计算输入文件的单词长度的中位数
提交mapreduce任务给集群运行
hadoop jar jar包所在的绝对路径 类名 输入文件的路径 输出结果文件的路径
注意:输出结果文件提交前不能存在