文章目录
查看本机地址
查看方式1
win+R
快捷键,输入cmd
,打开终端;输入ipconfig,查看本机IP
的信息。
查看方式2
点击网络和共享技术
点击查看
查看详细信息
记住这4个地址
这里的地址可能与后面不同(连接了不同WiFi
,所以你们主机和虚拟机为准,记住这4个地址)
查看网关
设置master虚拟机
网络配置(桥接模式)
打开终端输入下面命令,查看网卡文件名字(大部分为ens33)
提示
找到网络配置路径名字(记不住名字可以进行查看或者看看是不是这个名字ens33)
find /etc -name ifcfg*
find /etc -name *ens*
用文本编辑器vi
(或vim
)打开文件ifcfg-ens33
cd / 如果在根的目录下就不用这一步操作
[root@localhost ye]# vi etc/sysconfig/network-scripts/ifcfg-ens33
然后进行网络配置
查看自己主机地址进行配置
IPADDR:设置和宿主机同网段ip
NETMASK:子网掩码和宿主机相同
GATEWAY: 默认网关和宿 主机相同
DNS: 跟宿主一样
注意:这里的IPADDR地址最后一位不能跟本地主机的ip地址和网关一样(最后一位)且这里的IPADDR地址是上面查看网关虚拟机的地址(且进行了修改)
改完之后,shift+:
,然后输入 : wq
保存退出(Esc
)
退出到命令行界面,然后输入重启命令reboot
,重启一下系统即可
关闭selinux
vi /etc/selinux/config
关闭防火墙和防火墙自启,查看防火墙状态
[root@localhost ~]# systemctl stop firewalld 关闭防火墙
[root@localhost ~]# systemctl disable firewalld 防火墙开机禁用
退出到命令行界面,然后输入重启命令reboot
,重启一下系统即可
reboot或者
service network restart(建议这个)
修改节点的主机名
vi /etc/hostname(手动修改)
或者
hostnamectl set-hostname master(直接修改)
然后重启
service network restart
配置host文件
添加子节点
vi /etc/hosts
先设置子节点,到时候克隆的时候(另外2台虚拟机)就按你设置的节点进行网络配置
SSH免密配置以及验证(所有节点)
Hadoop
运行过程中需要管理远端 Hadoop
守护进程,在 Hadoop
启动以后,NameNode
是通过 SSH(Secure Shell
)来启动和停止各个 DataNode
上的各种守护进程的。这就必须在节点 之间执行指令的时候是不需要输入密码来执行的形式。我们需要配置 SSH 运用无密码公钥认证的形式,这样NameNode
就可以使用 SSH 无密码登录并启动 DataNode
上的各种守护进程,同样原理 DataNode
上也能使用 SSH 无密码登录到 NameNode
。
然后创建hadoop
用户有2种方式(2种方式创建的时候也需要添加内容)
第一种通过命令行
创建用户 useradd hadoop
设置密码 passwd hadoop
第二种(创建虚拟机的时候创建用户)
以上2种都必须添加内容
创建用户完成后对hadoop用户启动sudo命令
vi /etc/sudoers
输出命令后打开后添加权限
安装和启动ssh协议
首先查看ssh是否安装
#rpm 命令用于管理套件;-qa代表query;a代表all;grep代表文件内字符串查询
rpm -qa |grep openssh
有这3个就不用安装了(一般克隆也都有这3个)
如果没有安装可通过命令行安装
#yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
#yum的命令形式一般是如下:yum –选项命令包其中选项是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package ...]是操作的对象。
yum install openssh*
注意以上都是root用户操作
克隆
然后克隆2台节点虚拟机(ip地址设置必须是刚刚上面提前设置好的ip地址)
克隆完后也要进行网络配置,这一步操作跟上面设置master
虚拟机网络配置差不多(其实修改ip地址和名字【名字是slave1的机子就修改成slave1】就好了)
slave1虚拟机
slave2虚拟机也一样改为10.60.0.30还有名字也要改
#更改名字,不加sudo可能权限不够
sudo vi /etc/hostname
改完名字和ip地址切记要重启
#Systemctl是一个系统管理守护进程、工具和库的集合,用于取代System V、service和chkconfig命令,初始进程主要负责控制systemd系统和服务管理器
#重启命令
systemctl reboot -i
然后master
虚拟机切换成hadoop
用户(以下所有的操作都是hadoop
用户下操作)
#切换成hadoop用户
su hadoop
使用ssh-keygen生成私钥和公钥
注意:3台虚拟机都必须同样的操作,且配置成功后第一次是需要输入密码的,但之后ssh就不需要输密码了。
每个节点生成密匙对
#参数 -t rsa 表示使用rsa算法进行加密,执行后,会在/home/当前用户/.ssh目录下找到id_rsa(私钥)和id_rsa.pub(公钥)
#使用-t选项指定要生成的密钥的类型。如果在不带任何参数的情况下调用ssh-keygen会为在SSH协议2连接中使用。
#三台虚拟机都必须执行这个命令
ssh-keygen -t rsa
然后一直默认回车就可以了
接着将公钥发送到免密登录的节点上(包括本机)
#ssh-copy-id命令可以把本地主机的公钥复制到远程主机authorized_keys文件上
#如果这个 “-i”选项已经给出了,然后这个认证文件(默认是~/.ssh/id_rsa.pub)被使用,不管在你的ssh-agent那里是否有任何密钥。
#三台虚拟机都必须执行这个命令
ssh-copy-id -i master
ssh-copy-id -i slave1
ssh-copy-id -i slave2
然后根据提示输入yes
,然后输入免密节点的密码
验证是否免密登录成功
ssh master
ssh slave1
ssh slave2
如果失败看看是不是没有切换到su hadoop
用户下操作或者漏了某台的虚拟机没有生成密匙对配对(成功后第一次是需要输入密码的,但之后ssh就不需要输密码了)
下载Xshell和Xftp软件(用于操作虚拟机和上传文件)
连接
登录
Java环境安装(所有节点都必须配置)
导入jar包
然后新建java
目录
#英文全拼:make directory
sudo mkdir /usr/java
将java
的安装包(jar
)解压到另一个文件(java
目录)
#创建解压文件夹
sudo mkdir /usr/unpack
#tar:解压缩命令;-z:有gzip属性的;-x:解压;-v:可选,显示压缩的详细信息;-f <压缩文件名>后面必须指定文件名;-C 切换到指定目录
sudo tar -zxvf /usr/java/jdk-8.tar.gz -C /usr/unpack
配置环境变量
sudo vi/etc/profile
export JAVA_HOME=/usr/unpack/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
#在linux中,小数点“.”表示当前路径,冒号“:”在此表示分隔符。
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
这里可选(提前配置的话下一步配置Hadoop环境的时候就不用配置了)
export HADOOP_HOME/usr/hadoop export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
使环境生效
. /etc/profile
最后一步验证安装是否成功
java -version
javac
在master虚拟机上安装Hadoop
上面已经把所有的jar包导进来了,所以直接创建文件夹、解压就行了
将hadoop
安装包(jar
)解压到/usr/hadoop目录下
tar -zxvf /usr/java/hadoop-3.1.2.tar.gz -C /usr
重命名安装路径
sudo mv /usr/hadoop-3.1.2/ /usr/hadoop
配置Hadoop
环境变量(可以在配置java
环境时提前配置)
sudo vi /etc/profile
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
使配置环境变量生效
. /etc/profile
配置Hadoop-env.sh
文件
sudo vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
#修改配置文件里面的JAVA_HOME
JAVA_HOME=/usr/unpack/jdk1.8.0_201
配置core-site.xml
文件
sudo vi $HADOOP_HOME/etc/hadoop/core-site.xml
<configuration>
<property>
<-- 文件管理系统名称 -->
<name>fs.defaultFS</name>
<-- hdfs://虚拟机名[master]:9000 -->
<value>hdfs://master:9000</value>
</property>
<property>
<-- 临时文件存储路径 -->
<name>hadoop.tmp.dir</name>
<-- 任意存在的路径 -->
<value>/home/hadoopData/tmp/</value>
</property>
</configuration>
配置hdfs-site.xml
文件
在配置文件添加:保存文件副本数量、hdfs的namenode数据存储目录、hdfs的datanode数据存储目录、hdfs的web访问地址
sudo vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<-- 副本数量 replication(复制)-->
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<-- hdfs的namenode数据存储目录 -->
<name>dfs.namenode.name.dir</name>
<value>/home/hadoopData/name</value>
</property>
<property>
<-- hdfs的datanode数据存储目录-->
<name>dfs.datanode.data.dir</name>
<value>/home/hadooData/data</value>
</property>
<property>
<-- hdfs的web访问地址 address(地址)-->
<name>dfs.namenode.http-address</name>
<value>0.0.0.0:50070</value>
</property>
</configuration>
配置yarn-site.xml
文件
sudo vi $HADOOP_HOME/etc/hadoop/yarn-site.xml
<configuration>
<property>
<-- 资源管理器 主机名-->
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<-- 获取数据的方式为shuffle-->
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置mapred.site.xml
文件
sudo vi $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
<property>
<-- mapreduce 框架名 运行在yarn-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<-- mapreduce 历史任务地址 -->
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<-- 域名将作为 浏览器可访问 历史任务web访问地址-->
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
配置workers
文件
sudo vi $HADOOP_HOME/etc/hadoop/workers
slave1
slave2
将master
节点上的安装文件同步到slave1
、slave2
节点上
#scp 命令主要用来在不同主机之间做数据的安全拷贝的
sudo scp -r /usr/hadoop/ slave1:/usr/
sudo scp -r /usr/hadoop/ slave2:/usr/
新建数据文件目录(也就是配置文件配置的地址)(所有节点)
#-p:来创建多级文件夹
sudo mkdir -p /home/hadoopData/tmp
sudo mkdir -p /home/hadoopData/name
sudo mkdir -p /home/hadoopData/data
修改hadoop
文件属主权限(所有节点)
#chown 用于修改文件;将当前前目录下的所有文件与子目录的拥有者皆设为
hadoop,群体的使用者 hadoop
sudo chown -R hadoop:hadoop /usr/hadoop
sudo chown -R hadoop:hadoop /home/hadoopData/
初始化Hadoop
格式化namenode
(master
节点)
hdfs namenode -format
启动hadoop
(master
节点)
#注意启动后验证完必须关掉
start-all.sh
#关闭
stop-all.sh
查看master
的守护进程
jps
master
虚拟机
slave1
虚拟机
slave2
虚拟机