hadoop集群搭建(链接有完整搭建好的集群)

hadoop集群搭建

文章最后有完整的集群链接!!!

完全分布式Hadoop配置

0虚拟机VMware下安装Linux系统

出现以下问题时:

img

需要启动Intel VT-x

1.重启系统,进入BIOS,我的联想笔记本电脑的系统是按Delete键进入BIOS的

2.选择advanced选项卡,选择CPU setup,按enter键进入

3.选择Intel Virtualization Technology,选择,按enter

4.选择Enable,按enter键。

5.保存退出,重启,如界面下面的提示。我的是按F10

##一、 准备Linux系统

img

img(1)网络设置NAT模式

选择虚拟机->设置->网络适配器->网络适配器->网络连接模式->NAT模式

编辑->虚拟网络编辑器

img

img

img

img

如果是通过网线部署在不同的电脑上,则应选择桥接模式,上面的NAT模式用于设置本机局域网IP也要设置。

img

img

(2)设置静态IP

(2) vi /etc/udev/rules.d/70-persistent-net.rules

如果有多行"eth*"把前面的几行都注释掉,只留最后一行,并把最后一行的"eth*“修改为"eth0”

复制 ATTR{address}==“00:0c:29:10:ff:d3” 中的"00:0c:29:10:ff:d3",不同机器,该数字不同。

img

(3)vi /etc/sysconfig/network-script/ifcfg-eth0

img

修改: HDDR=刚才复制的数字

BOOTPROTO=static

​ ONBOOT = yes

添加:

IPADDR = 192.168.30.101 #如果是完全分布式,每台虚拟机IPDDR的值都

​ #不相同,如192.168.30.101、192.168.30.102、192.168.30.103 等

GATEWAY = 192.168.30.2

DNS1=8.8.8.8

img

命令 service network restart 重启网络,使上面的设置生效

ping www.baidu.com 可测试固定IP设置是否有效

(3)修改主机名字hostname

命令 hostname 查看主机名字

vi /etc/sysconfig/network

修改hostname=hadoop101

保存退出:

先按esc键,保存退出命令 :wq

不保存退出命令 :q!

重启系统:reboot 命令,上面设置生效

4.关闭防火墙

(1)永久性生效,重启后不会复原

开启: chkconfig iptables on

关闭: chkconfig iptables off

(2)即时生效,重启后复原

开启: service iptables start

关闭: service iptables stop

永久关闭防火墙,并reboot重启系统,然后用service iptables status查看防火墙的运行状态

5克隆两台虚拟机:

右键->管理->克隆 下一步 选择“创建完整克隆”

img

img

新克隆的两台虚拟机名分别为hadoop102 hadoop103

对应的IP分别为192.168.30.102 192.168.30.103

注意:Xshell **连不上虚拟机也可能Windows系统网络连接中缺少**VMware Virtual Ethernet Adapter for VMnet8

img

**解决办法是:**点击下图中,“还原默认设置”,然后重启Windows系统

img

5.1分别修改新克隆的两个主机名字hostname 分别为:hadoop102、hadoop103

命令 hostname 查看主机名字

在hadoop102节点执行

vi /etc/sysconfig/network

修改hostname=hadoop102

在hadoop103节点执行

vi /etc/sysconfig/network

修改hostname=hadoop103

  1. 修改三台系统的hosts文件 使IP与主机名对应

vi /etc/hosts

192.168.30.101 hadoop101

192.168.30.102 hadoop102

192.168.30.103 hadoop103

img

修改完成后reboot重启系统,然后用hostname主机名是否修改成功

二、安装Jdk

准备工作: 在/opt文件夹下使用创建两个文件夹

cd /opt

mkdir module # module存放解压后文件

mkdir source # source 存放原文件

如果是节点分布在多台电脑上的情况,则此时linux是不能上网的, 需要把linux网络适配器改为NAT模式。,需要多台电脑通信时再改回“桥接模式”

img

可以先做免密登录和时间同步

jdk原文件获取:

安装JDK

由于centos7自带openJDK,所以先把openJDK删除干净后再进行安装.

Openjdk与jdk区别:

http://www.cnblogs.com/sxdcgaq8080/p/7487369.html

**1.**卸载系统自带的OpenJDK以及相关的java文件

输入 java -version 查看openjdk版本信息:

img

2.在命令窗口键入:

rpm -qa | grep java

命令说明:

rpm  管理套件

-qa  使用询问模式,查询所有套件

grep  查找文件里符合条件的字符串

java  查找包含java字符串的文件

img

以上文件中:

下面这几个可以删除(无法使用TAB补全文件名,原因未知)

java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64

python-javapackages-3.4.1-11.el7.noarch

tzdata-java-2020a-1.el7.noarch

java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64

javapackages-tools-3.4.1-11.el7.noarch

.noarch结尾的文件可以不用删除。

3.开始删除

在命令窗口键入:

[root@hadoop101 module]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64

[root@hadoop101 module]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64

img

方法1:从网上下载;方法2:把一下载的文件上传到本虚拟机:

1.把Windows中的jdk上传Linux系统

先安装rz工具

yum install lrzsz

然后使用rz 工具即可把Windows中的jdk上传Linux系统的/opt/source中

img

  1. 解压缩jdk

(1) tar -zxvf jdk-8u201-linux-i586.tar.gz_AuthParam

(2)通过ls命令查看文件 有个jdk1.8.0_201的文件夹,该文件夹就是上面jdk包解压后的文件夹

(3)修改该文件夹的名字为jdk1.8

mv jdk1.8.0_201 jdk1.8

(4)把jdk1.8移到module文件夹下 当前jdk1.8在source文件夹下

mv jdk1.8 …/module

3.配置环境

(1)

方法1:

修改**/etc/profile****文件**

如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。

vi /etc/profile

在profile文件末尾加入:(说明中间两句是林子雨的配置中出现的,估计和后面配置spark有关)

///

export JAVA_HOME=/opt/module/jdk1.8

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.: J A V A H O M E / l i b : JAVA_HOME/lib: JAVAHOME/lib:JRE_HOME/lib

export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH

或者用下面的:

在profile文件末尾添加jdk路径:

#JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8

export PATH= P A T H : PATH: PATH:JAVA_HOME/bin

##HADOOP_HOME (HADOOP后面安装用到)

export HADOOP_HOME=/opt/module/hadoop-2.7.2

export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin

export PATH= P A T H : PATH: PATH:HADOOP_HOME/sbin

然后执行

source /etc/profile #使配置立即生效

方法2:

修改**.bash_profile****文件**

这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bash_profile文件就可以了。

vi ~/.bash_profile

在.bash_profile文件末尾加入:

export JAVA_HOME=/opt/module/jdk1.8

export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH

然后执行 :

source ~/.bash_profile #使环境变量配置立即生效

选择方法1或方法2后即可查看jdk是否按照正确使用命令:

java -version #查看java版本号

如果出现:ava version “1.8.0_201” 则说明jdk安装成功

如果出现:

-bash: /opt/module/jdk1.8/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

则安装失败,失败原因是,系统缺少glibc.i686 安装glibc.i686即可:

yum install glibc.i686

Centos7 安装64位JDK1.8就不会出现上述问题,建议安装64位JDK1.8

Centos7 安装yum install glibc.i686时会出现

Loaded plugins: fastestmirror, langpacks 错误

img

解决办法:(https://blog.csdn.net/batchaesir5897/article/details/100966007?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control)

问题

报错环境:

刚使用VMware安装的centos7系统(最小化安装)实验系统,ifconfig时提示没有该命令,安装yum install net-tools时报错Loaded plugins: fastestmirror

注:fastestmirror是yum的一个加速插件,这里是插件提示信息是插件不能用了。

解决办法:先给它禁用了

1.修改配置文件

vim  /etc/yum/pluginconf.d/fastestmirror.conf

由enabled = 1修改为enabled = 0 意思是禁用它

vim /etc/yum.conf

修改为plugins=0 不使用插件

3.清除缓存并重新构建yum 源

yum clean all
yum clean dbcache
yum makecache

问题

操作完之后如果在使用yum安装提示报错“could not retrieve mirrorlist”

网上解决办法:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

将ONBOOT改为yes,wq!保存退出

重新启动网络

service network restart

然后再用java -version #查看java版本号。

img

4.把jdk1.8发送到另外两台机器

(1)把jdk1.8文件夹利用scp远程拷贝命令拷贝到其他两台电脑上

hadoop102 、hadoop103 机器的/opt文件夹下分别新建module文件夹

hadoop101 主机转到module目录

命令:

[root@hadoop101 module]#scp -r ./jdk1.8 root@192.168.30.102:/opt/module

或者:

[root@hadoop101 module]# scp -r ./jdk1.8/ root@hadoop103:/opt/module/

(2)分别配置hadoop102 、hadoop103 机器的jdk环境变量

在hadoop102、hadoop103节点分别执行

vi /etc/profile

在profile文件末尾加入:

export JAVA_HOME=/opt/module/jdk1.8

export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH

然后执行

source /etc/profile #使配置立即生效

问题:在hadoop102hadoop103节点查看java版本也是失败的,原因是在hadoop102hadoop103上没有安装glibc.i686,需要安装glibc.i686,看后面启动yurn会出错。

三、安装hadoop

1.把hadoop-2.7.2 利用rz命令上传到hadoop101系统的/opt /source

文件夹下

(1)cd /opt /source #转到source目录

(2)利用rz工具从windows系统中把hadoop-2.7.2上传到hadoop101系统。

img

2.解压hadoop-2.7.2.tar压缩包

tar -zxvf hadoop-2.7.2.tar

  1. 把解压出来的hadoop-2.7.2文件夹移到/opt/module文件夹下

[root@hadoop101 source]# mv ./hadoop-2.7.2 …/module

[root@hadoop101 source]# cd …

[root@hadoop101 opt]# cd module

[root@hadoop101 module]# ls

3.配置hadoop环境变量

1.配置hadoop的环境变量与配置jdk的环境变量类似,也有两种方法:

方法1:

在 hadoop-2.7.2的解压文件中的etc/hadoop/hadoop-env.sh中配置

vi /opt/module/hadoop-2.7.2/etc/hadoop/hadoop-env.sh

修改hadoop-env.sh中下面语句:

export JAVA_HOME=${JAVA_HOME}

为:

export JAVA_HOME=/opt/module/jdk1.8

并在其下添加以下两条语句:

export HADOOP_HOME=/opt/module/hadoop-2.7.2

export PATH= H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:HADOOP_HOME/sbin:$PATH

方法2:

(1) 在 hadoop-2.7.2的解压文件中的etc/hadoop/hadoop-env.sh中配置

vi /opt/module/hadoop-2.7.2/etc/hadoop/hadoop-env.sh

修改hadoop-env.sh中下面语句:

export JAVA_HOME=${JAVA_HOME}

为:

export JAVA_HOME=/opt/module/jdk1.8

(2) 修改/etc/profile文件,在jdk的配置语句后面添加:(说明中间一句是林子雨的配置中出现的,估计和后面配置spark有关)

export HADOOP_HOME=/opt/module/hadoop-2.7.2

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export PATH= H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:HADOOP_HOME/sbin:$PATH

建议采用方法(2

img

4 测试hadoop是否按照成功

配置完后,可以测试hadoop是否按照成功:

[root@hadoop101 hadoop-2.7.2]# mkdir input

[root@hadoop101 hadoop-2.7.2]# cp etc/hadoop/*.xml input

[root@hadoop101hadoop-2.7.2]#bin/hadoop jar

share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output ‘dfs[a-z.]+’

[root@hadoop101 hadoop-2.7.2]# cat output/*

上述的输出结果为:

1 dfsadmin

问题:在hadoop102hadoop103中没有修改**/etc/profilehadoop的环境变量,后面运行程序会出错,需要把hadoop101/etc/profile文件分发到hadoop102****、hadoop103上对应的位置既:/etc/profile。**

5.使用xsync.sh这个脚本向集群中进行分发hadoop

5.1 编写集群分发脚本xsync.sh

在/usr/local/bin这个目录下存放的脚本,可以在系统任何地方直接执行。

(1)在/usr/local/bin目录下创建xsync.sh文件

[root@hadoop101 /]# cd /usr/local/bin

[root@hadoop101 bin]# touch xsync.sh

[root@hadoop101 bin]# vi xsync.sh

(2)输入以下代码:

#!/bin/bash

#1 获取输入参数个数,如果没有参数,直接退出

pcount=$#

if((pcount==0)); then

echo no args;

exit;

fi

#2 获取文件名称

p1=$1

fname=basename $p1

echo fname=$fname

#3 获取上级目录到绝对路径

pdir=cd -P $(dirname $p1); pwd

echo pdir=$pdir

#4 获取当前用户名称

user=whoami

#5 循环

for((host=102; host<104; host++)); do

​ #echo p d i r / pdir/ pdir/fname u s e r @ h a d o o p user@hadoop user@hadoophost:$pdir

​ echo --------------- hadoop$host ----------------

​ rsync -rvl p d i r / pdir/ pdir/fname u s e r @ h a d o o p user@hadoop user@hadoophost:$pdir

done

(3)修改脚本 xsync 具有执行权限

[root@hadoop101 bin]# chmod 777 xsync.sh

下面一句不太理解,没有使用该句,xsync.sh也能执行

[root@hadoop101 bin]# chown pojian:pojian xsync

(4)执行xsync.sh脚本 ,把hadoop101中/opt/module目录下的hadoop-2.7.2分发到集群中的另两台机器中 /opt/module目录中

hadoop101机器要先转到/opt/module路径

[root@hadoop101 bin]# cd /opt/module

[root@hadoop101 module]# xsync.sh hadoop-2.7.2 /opt/module

分发profile文件的命令为:

[root@hadoop101 etc]# xsync.sh profile /etc

之后,在hadoop102和hadoop103上都要执行source /etc/profile

四、配置集群免密登录

准备:首先要保证主机名、hosts、防火墙正确设置

1.配置每个节点本身公钥和私钥,即在每个节点执行如下两个命令:

(1)进入到我的家目录

[root@hadoop101 etc]# cd ~/.ssh

(1)生成公钥和私钥:

[root@hadoop101 .ssh]# ssh-keygen -t rsa

执行上述指令,然后敲(三个回车),中间不要输入任何内容,在.ssh目录下就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

img

  1. hadoop101节点登录自身免密,在hadoop101节点执行如下命令:

[root@hadoop101 .ssh]# cat id_rsa.pub >>authorized_keys

该命令把hadoop101节点中生成的id_rsa.pub(公钥)创建并拷贝到authorized_keys文件中,这样就实现了hadoop101节点登录自身免密。

(3)测试hadoop101节点登录自身免密是否成功,执行如下命令

[root@hadoop101 .ssh]# ssh hadoop101

如果不用输入密码,则免密登录成功。

[root@hadoop101 .ssh]# exit

退出ssh远程登录

如果不成功,则需要设置authorized_keys文件的权限,执行如下命令:

[root@hadoop101 .ssh]# chmod 600 authorized_keys

(4)在hadoop102 和hadoop103的节点上分别执行如下命令:

[root@hadoop102 .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop101

则把hadoop102 和hadoop103的节点上的id_rsa.pub都写入hadoop101节点的authorized_keys文件中,这样hadoop101节点的authorized_keys文件中就拥有了hadoop101 ,hadoop102和hadoop103三个节点的id_rsa.pub。

img

此时,仅实现了,hadoop101自登录、hadoop102和hadoop103登录hadoop101的免密功能,还需要把hadoop101中的authorized_keys文件分发到hadoop102和hadoop103上。

(5)分发authorized_keys文件

可以在hadoop101上执行xsync.sh脚本,hadoop101中的authorized_keys文件分发到hadoop102和hadoop103上。

[root@hadoop101 .ssh]# xsync.sh authorized_keys ~/.ssh

自此,三个节点间的免密登录就实现了。赶紧测试下吧!

注意:分别做9次异地登陆测试,否则后面启动yarn会启动失败!

[root@hadoop101 .ssh]# ssh hadoop101

[root@hadoop101 .ssh]# ssh hadoop102

[root@hadoop101 .ssh]# ssh hadoop103

[root@hadoop102 .ssh]# ssh hadoop101

[root@hadoop102 .ssh]# ssh hadoop102

[root@hadoop102 .ssh]# ssh hadoop103

[root@hadoop103 .ssh]# ssh hadoop101

[root@hadoop103 .ssh]# ssh hadoop102

[root@hadoop103 .ssh]# ssh hadoop103

五、集群部署

hadoop101 hadoop102 hadoop103

HDFS

NameNode SecondaryNameNode

DataNode DataNode DataNode

​ YARN

NodeManager NodeManager NodeManager

​ ResourceManager

hadoop101hadoop102hadoop103
HDFS
NameNodeYARNSecondaryNameNode
DataNodeDataNodeDataNode
NodeManagerNodeManagerNodeManager
ResourceManager

六、配置hadoop配置文件

1.一共需要配置7个文件,这7个文件都在/opt/module/hadoop-2.7.2/etc/hadoop文件夹下。

把配置信息写在文件的

之间

(1)core-site.xml

[root@hadoop101 hadoop]# vi core-site.xml

之间复制下列内容,注释不要复制,只复制下面粗体部分。

fs.defaultFS

hdfs://hadoop101:9000

hadoop.tmp.dir

/opt/module/hadoop-2.7.2/data/tmp

(2)Hdfs 部分有3个文件:

(2.1)hadoop-env.sh

(此文件在安装hadoop时已配置过,故可以省略)

export JAVA_HOME=/opt/module/jdk1.8

(2.2) hdfs-site.xml

[root@hadoop101 hadoop]# vi hdfs-site.xml

dfs.replication

3

dfs.namenode.secondary.http-address

hadoop103:50090

**(2.3)**slaves

[root@hadoop101 hadoop]# vi slaves

把原文件中的localhost删除掉,输入集群节点名:

hadoop101

hadoop102

hadoop103

img

(3) yarn

(3.1) yarn-env.sh

vi yarn-env.sh

添加以下语句:

修改:

img

为,jdk的实际路径**😗*

去掉export JAVA_HOME前面的#

export JAVA_HOME=/opt/module/jdk1.8

(3.2)yarn-site.xml

[root@hadoop101 hadoop]# vi yarn-site.xml

添加下面黑体部分

yarn.nodemanager.aux-services

mapreduce_shuffle

yarn.resourcemanager.hostname

hadoop102

(4)mapreduce

(4.1)mapred-env.sh

vi mapred-env.sh

修改

img

为:

export JAVA_HOME=/opt/module/jdk1.8

(4.2) mapred-site.xml

hadoop文件夹下没有mapred-site.xml文件,

但有一个mapred-site.xml.template文件,拷贝一份该文件,并把新拷贝的文件命名为mapred-site.xml

cp mapred-site.xml.template mapred-site.xml

然后再打开mapred-site.xml

vi mapred-site.xml

添加黑体部分

mapreduce.framework.name

yarn

**2.**分发hadoop文件夹

自此,7个文件全部配置完毕,应用xsync.sh脚本把hadoop101节点的hadoop文件夹远程分发到hadoop102,hadoop103上的对应位置,

一定要退到上一级目录/opt/module/hadoop-2.7.2/etc

[root@hadoop101 etc]# xsync.sh ./hadoop /opt/module/hadoop-2.7.2/etc

img

七、参考Hoop官网,启动服务

1.格式化namenode namenode根据部署规划,在hadoop101节点上。

[root@hadoop101 hadoop-2.7.2]# bin/hdfs namenode -format

2.启动namenode

[root@hadoop101 hadoop-2.7.2]# sbin/start-dfs.sh

通过 jps命令可以查看是否启动

img

3.在hadoop102节点启动yarn.并用jps命令查看是否启动

[root@hadoop102 hadoop-2.7.2]# sbin/start-yarn.sh

img

如果hadoop102节点namenode 不能启动,则反复关闭,、启动yarn试试!

关闭进程: kill 4325

4325为进程编号

全部启动成功后,hadoop101节点启动的服务有:

img

hadoop103节点启动的服务有:

img

##八、在集群上测试一个jar包 单词统计的功能

1.在本地创建一个word.txt文件

[root@hadoop101 hadoop-2.7.2]# touch word.txt

[root@hadoop101 hadoop-2.7.2]# vi word.txt

输入:

小明 小张 小李 小明

张三 王五 张三 小李

2.在服务器上的跟目录下创建一个 input的文件夹

[root@hadoop101 hadoop-2.7.2]# bin/hdfs dfs -mkdir /input

3.把word.txt文件上传到服务器中的input文件夹中

[root@hadoop101 hadoop-2.7.2]# bin/hdfs dfs -put ./word.txt /input

4.查看是否上传成功

[root@hadoop101 hadoop-2.7.2]# bin/hdfs dfs -ls /input

img

5.执行wordcount单词统计功能

在执行此命令前,再次确认集群中所有节点的防火墙都已经关闭!

[root@hadoop101 hadoop-2.7.2]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output

在服务器的跟目录下就创建了一个output文件夹

img

output文件夹内有2个文件

[root@hadoop101 hadoop-2.7.2]# bin/hdfs dfs -ls /output

img

输出output文件夹文件的内容:

[root@hadoop101 hadoop-2.7.2]# bin/hdfs dfs -cat /output/*

img

Great!兴奋吧,基本的完全分布式已经建立成功了,是不是几天的辛苦很欣慰呀!!!继续加油!!!!

删除删除文件系统上的output文件夹

[root@hadoop101 hadoop-2.7.2]# bin/hdfs dfs -rm -r /output

删除ouput文件夹的件part-r-00000文件:

[root@hadoop101 hadoop-2.7.2]# bin/hdfs dfs -rm /output/ part-r-00000

6.yarn的浏览器页面查看.集群中已执行的任1务。

由于我们的yarn部署在hadoop102节点,该节点的固定IP为192.168.30.102:

所以通过浏览器浏览:http://192.168.30.102:8088/cluster

可以查看yarn上已执行的任务。 img

查看HDFS文件:在hadoop101节点:192.168.30.101

所以通过浏览器浏览:http://192.168.30.101:50070/dfshealth.html#tab-overview

img

HDFS页面下载数据文件报错解决

img

问题解决 将Linux服务器上的 /etc/hosts文件中的集群信息,添加到本地hosts文件中 C:\Windows\System32\drivers\etc\hosts

192.168.30.101 hadoop101

192.168.30.102 hadoop102

192.168.30.103 hadoop103

img

C:\WINDOWS\system32\drivers\etc\host 文件无法修改

Win7对hosts等文件进行了保护,要修改的话可以如下:
 1、单击“开始”,单击“所有程序”,单击“附件”,右键单击“记事本”,然后单击“以管理员身份运行”。(如果系统提示输入管理员密码或进行确认,请键入密码或单击“允许”。
 2、系统会运行记事本程序,然后点击记事本窗口上面的文件,选择打开,找到Hosts 文件或 Lmhosts 文件,进行必要的更改,然后单击“编辑”菜单上的“保存”即可。

九:时间同步

执行八时往往会出错,这是因为集群中没有设置时间同步。

  1. 时间服务器配置(必须root用户)

(1)检查ntp是否安装 (hadoop101、hadoop102、hadoop103都需要安装)

[root@hadoop101 hadoop-2.7.2]# rpm -qa|grep ntp

ntp-4.2.6p5-10.el6.centos.x86_64

fontpackages-filesystem-1.41-1.1.el6.noarch

ntpdate-4.2.6p5-10.el6.centos.x86_64

img

如果没有,或全不全则需安装ntp插件

安装命令:#yum install ntp

[root@hadoop102 etc]# yum install ntp

否则没有下面的ntp.conf文件

选择一台服务器作为时间服务器,如hadoop101

(2)修改ntp配置文件 ((2)-(5)步骤仅仅修改hadoop101节点)

vi /etc/ntp.conf

[root@hadoop101 hadoop-2.7.2]# vi /etc/ntp.conf

img

修改内容如下

a)修改1(授权192.168.30.0-192.168.1.255网段上的所有机器可以从这台机器上查询和同步时间)

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为

restrict 192.168.30.0 mask 255.255.255.0 nomodify notrap

说明:192.168.30.0为自己集群实际的网段

img

b)修改2(集群在局域网中,不使用其他互联网上的时间)

server 0.centos.pool.ntp.org iburst

server 1.centos.pool.ntp.org iburst

server 2.centos.pool.ntp.org iburst

server 3.centos.pool.ntp.org iburst

img

#server 0.centos.pool.ntp.org iburst

#server 1.centos.pool.ntp.org iburst

#server 2.centos.pool.ntp.org iburst

#server 3.centos.pool.ntp.org iburst

img

c)添加3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)

server 127.127.1.0

fudge 127.127.1.0 stratum 10

img

(3)修改/etc/sysconfig/ntpd 文件

[root@hadoop101 hadoop-2.7.2]# vim /etc/sysconfig/ntpd

增加内容如下(让硬件时间与系统时间一起同步)

SYNC_HWCLOCK=yes

img

(4)重新启动ntpd服务

[root@hadoop101 hadoop-2.7.2]# service ntpd status

ntpd 已停

img

[root@hadoop101 hadoop-2.7.2]# service ntpd start

正在启动 ntpd: [确定]

关闭:

[root@hadoop101 hadoop-2.7.2]# service ntpd stop

(5)设置ntpd服务开机启动

Centos6.5****使用:chkconfig ntpd on

[root@hadoop101 hadoop-2.7.2]# chkconfig ntpd on

**Centos7****使用的命令是:**systemctl enable ntpd

设置ntpd服务开机关闭

systemctl disable chronyd

img

  1. 其他机器配置(必须root用户)

(1)在其他机器配置10分钟与时间服务器同步一次

[root@hadoop103 Desop]# crontab -e

编写定时任务如下:

*/10 * * * * /usr/sbin/ntpdate hadoop102

如果保存出错,则是因为没有安装crontab

  1. 确认crontab是否安装:

执行 crontab 命令如果报 command not found,就表明没有安装

  1. 安装 crontab

执行 yum install -y vixie-cron

  1. 确认是否安装成功:

执行 crontab -l

  1. 看是否设置了开机自动启动

chkconfig --list crond 或者chkconfig crond on

  1. 启动crontab

service crond start

6.添加计划任务

crontab -e

crontab -l

7.脚本sh设置777权限

(2)修改任意机器时间

[root@hadoop103桌面]# date -s “2017-9-11 11:11:11”

(3)十分钟后查看机器是否与时间服务器同步

[root@hadoop103桌面]# date

说明:测试的时候可以将10分钟调整为1分钟,节省时间。

[外链图片转存中…(img-sBZ9vi4J-1704285639421)]

(3)修改/etc/sysconfig/ntpd 文件

[root@hadoop101 hadoop-2.7.2]# vim /etc/sysconfig/ntpd

增加内容如下(让硬件时间与系统时间一起同步)

SYNC_HWCLOCK=yes

[外链图片转存中…(img-5ebs9GXy-1704285639421)]

(4)重新启动ntpd服务

[root@hadoop101 hadoop-2.7.2]# service ntpd status

ntpd 已停

[外链图片转存中…(img-fIxTOv1I-1704285639421)]

[root@hadoop101 hadoop-2.7.2]# service ntpd start

正在启动 ntpd: [确定]

关闭:

[root@hadoop101 hadoop-2.7.2]# service ntpd stop

(5)设置ntpd服务开机启动

Centos6.5****使用:chkconfig ntpd on

[root@hadoop101 hadoop-2.7.2]# chkconfig ntpd on

**Centos7****使用的命令是:**systemctl enable ntpd

设置ntpd服务开机关闭

systemctl disable chronyd

[外链图片转存中…(img-pyYg37F7-1704285639422)]

  1. 其他机器配置(必须root用户)

(1)在其他机器配置10分钟与时间服务器同步一次

[root@hadoop103 Desop]# crontab -e

编写定时任务如下:

*/10 * * * * /usr/sbin/ntpdate hadoop102

如果保存出错,则是因为没有安装crontab

  1. 确认crontab是否安装:

执行 crontab 命令如果报 command not found,就表明没有安装

  1. 安装 crontab

执行 yum install -y vixie-cron

  1. 确认是否安装成功:

执行 crontab -l

  1. 看是否设置了开机自动启动

chkconfig --list crond 或者chkconfig crond on

  1. 启动crontab

service crond start

6.添加计划任务

crontab -e

crontab -l

7.脚本sh设置777权限

(2)修改任意机器时间

[root@hadoop103桌面]# date -s “2017-9-11 11:11:11”

(3)十分钟后查看机器是否与时间服务器同步

[root@hadoop103桌面]# date

说明:测试的时候可以将10分钟调整为1分钟,节省时间。

vm集群 (已安装hadoop spark mysql scala)

https://www.alipan.com/s/MpnF2xWDitv

  • 27
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不是你的奥奥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值