记录一下三个信息,用作配置IPADDR(ip地址)、NETMASK(子网掩码)、GATEWAY(网关)
上面是ip和掩码,在网络编辑器里面的net模式查看自己的网关:
输入
vi /etc/sysconfig/network-scripts/ifcfg-ens33
做如下修改
修改完成以后,重启网卡
service network restart
此时,无论是ping本地,还是ping百度,都可以连上网
在设置里面的
找到汉语(中国),并添加
在桌面右上角切换
关闭防火墙
systemctl stop firewalld
关闭开机自启动
systemctl disable firewalld.service
关闭selinux
1、临时关闭
先查看状态:
getenforce
出现
关闭
setenforce 0
此时在查看
永久关闭
修改此文件
vi /etc/sysconfig/selinux
如图
这里需要重启一下,在查看一下状态
事先说明,需要修改的几个东西
1.修改mac地址
2.更改UUID地址和IP地址
使用命令生成新的UUID
uuidgen
再在网卡配置文件里面替换原来的UUID
vi /etc/sysconfig/network-scripts/ifcfg-ens33
还要修改ip地址,这里我第一台是192.168.87.211,为了记忆,IP地址就顺次下移吧,也就是212和213
其他地方不变,修改之后,wq! 保存退出
3.修改主机名称
查看当前主机名
hostname
修改主机名
hostnamectl set-hostname 主机名
4.修改hosts文件
也就是把你几台的ip地址加主机名加入进来
192.168.87.211 master
192.168.87.212 slave1
192.168.87.213 slave2
查看是否安装SSH命令,其实看不看无所谓,我直接下也行,大不了更新一下(网络不至于这么慢吧?)
ps -e|grep sshd
下载服务
yum install openssh-server
首先,在三台机器上都各自产生一下自己的公钥,产生的公钥和密钥在 /root/.ssh/id_rsa
ssh-keygen -t rsa
下图所示操作
使用命令拷贝,自己也要copy自己一次,三台各一次,那就是九次
ssh-copy-id -i 主机名 or ip地址
输入命令,登录要连接的主机,这时候不需要密码就可以直接登陆上!
ssh 主机名 or ip地址
cofiguration标签中
放置软件压缩包
mkdir /opt/software
放置大数据相关文件
mkdir /usr/app
首先解压jdk安装包命令
tar -zxvf /opt/software/解压文件名 -C /usr/app/(解压到位置)
tar命令详解
那这时候虽然解压过去了,但是这个文件名也太长了是吧?so,使用mv命令修改文件名字
修改为了jdk1.8 和 hadoop2.7
,当然后面的版本号我们可能不一样,都随你们
比如我把 hadoop的名字修改成了这样
mv /usr/app/hadoop-2.7.7/ /usr/app/hadoop2.7
添加环境变量
vi /etc/profile
# JAVAHOME是你自己jdk的解压目录
export JAVA_HOME=/usr/app/jdk1.8
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/usr/app/hadoop2.7
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
wq! 保存退出,在刷新一下环境变量,使其生效
source /etc/profile
这时候可以查看一下各自的版本,检查一下
java -version # 有横杠
与
hadoop version # 没有横杠
出现这个就是ok!
配置文件路径,都在解压包下面的etc/hadoop下
/usr/app/hadoop2.7.3/etc/hadoop/
如图
配置Yarn运行所需的环境变量 指定JAVA_HOME
路径
配置Hadoop运行所需要的环境变量 指定JAVA_HOME
路径
Hadoop核心全局配置文件,可在其他配置文件中引出
在cofiguration标签中,加入
<!-- 配置hadoop文件系统-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 配置hadoop临时目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/app/hadoop2.7/tmp</value>
</property>
这里的tmp没有的话,需要自己创建一下
HDFS配置文件,继承core-site.xml配置文件
在cofiguration标签中写入
<!-- 配置文件副本数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 配置SecondaryNameNode服务器的主机ip和端口-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
MapReduce配置文件,继承core-site.xml配置文件
<!-- 配置mapreduce计算框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
Yarn配置文件,继承core-site.xml配置文件
在cofiguration标签中
<!-- 指定Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave1</value>
</property>
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<!--(注意最后两个是横杠不是点)-->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认
是 true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
vi /usr/app/hadoop2.7/etc/hadoop/slaves
将localhost删除
加上我们三台的ip地址和主机名
如
我们配置完了一台机子过后,其他两台也是要配置的,但是在一台一台的去配置难免麻烦,我们就拷贝过去!
将
# 将 jdk 和 hadoop 一起拷贝过去
scp -r /usr/app/ slave1:/usr/
别忘了还有第三台,slave1 是主机名,后面跟地址,第三台也就是
scp -r /usr/app/ slave2:/usr/
环境变量,也是两台
scp -r /etc/profile slave1:/etc/
scp -r /etc/profile slave2:/etc/
** jdk和hadoop拷贝过来不用修改,但是环境变量修改了是要刷新的!
**
刷新环境变量
source /etc/profile
hadoop namenode -format
下面的启动都在这个目录下
/usr/app/hadoop2.7/sbin
这个目录下都是可执行脚本,.sh是linux系统下的,.cmd是Windows系统下的
如图
master
slave1
jps查看进程
master
slave1
slave2
访问web页面端口
用我们主节点的ip加上50070端口,即可访问
如图
192.168.87.211:50070
要查看文件系统的目录和文件,在这个标签
当然现在肯定啥都没,我们可以在我们的hdfs文件系统上创建一个文件夹,这里我比较忙就不介绍命令,基础差的可以去网上学习
我在slave2上创建了一个文件夹,三台机器共享此hdfs空间,so,任意一台都可以进行操作
# 命令
hadoop fs -mkdir /test1
如图
最后当然还要关闭啦,不然集群有时候会出问题的
还是在sbin目录下,相同两台上,执行
stop-dfs.sh
和
stop-yarn.sh
Hadoop完全分布式部署到此结束!
解压安装包
tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/app/
改名,这里都随你们改,只是方便看
mv /usr/app/zookeeper-3.4.5/ /usr/app/zookeeper3.4
配置环境变量
vi /etc/profile
#zookeeper
export ZK_HOME=/usr/app/zookeeper3.4
export PATH=$PATH:$ZK_HOME/bin
# 使其环境变量生效
source /etc/profile
在此目录下
/usr/app/zookeeper3.4/conf
将此文件,复制并重命名为
zoo_sample.cfg >> zoo.cfg
在这个文件里面添加
#修改数据存储路径配置
dataDir=/usr/app/zookeeper3.4/zkData
#增加如下配置
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
注
2888为组成zookeeper服务器之间的通信端口,3888为用来选举leader的端口
在我们解压的目录下,创建zkData目录
mkdir zkData
# 为了怕没有权限,给一个777,这里貌似不给也行
chmod 777 zkData/
再在zkData目录下创建 myid
文件,并在其中添加与server对应的编号
(注意:上下不要有空行,左右不要有空格)
touch myid
#这里不给权限也行,777 的权限尽量别给,我是为了测试
chmod 777 zkData/myid
第一台就把myid文件的值改为1
第n台就写n
以此类推
我们可以直接scp 过去,但是别忘了修改各自myid对应的值哦!
注意
:添加 myid 文件,一定要在 Linux 里面创建,在 notepad++里面很可能乱码
scp -r /usr/app/zookeeper3.4/ slave1:/usr/app/
在我们的bin目录下执行
/usr/app/zookeeper3.4/bin/zkServer.sh start
记住,你有多少台,都要在不同机器自己相应的目录下启动,这个不像Haoop一样!so,我这里就在要三台上各自启动一次!
都启动完成过后,使用命令查看状态
/usr/app/zookeeper3.4/bin/zkServer.sh status
如图
master
slave1
slave2
这里的follower和leader就是Zookeeper的选举机制
文章: 【分布式】Zookeeper的Leader选举
兄弟们,是不是觉得scp虽然很好,但是如果我有不止三台呢?就算只有10台也难得一个一个scp吧?
so,解决问题的方法就来了,那就是
xsync filename
我也是才看见的,后续在补充