赞
踩
在完成虚拟机的创建后,进行主机名称修改:
- #修改配置文件,将内容改为 master,保存退出
- vi /etc/hostname #将里面localhost删除进行改名
-
- [root@host ~]$ vi /etc/sysconfig/network 编辑,i 键插入
- NETWORKING=yes
- HOSTNAME=master 修改为新名
-
- :wq ESC 退出插入退出并保存
- [root@bogon ~]$ reboot
关闭防火墙,关闭防火墙开机自启:
- #关闭防火墙
- [root@hadoop100 ~]$ systemctl stop firewalld
-
- #设置关闭防火墙开机自启
- [root@hadoop100 ~]$ systemctl disable firewalld.service
- cd /etc/sysconfig/network-scripts/
-
- vi ifcfg-ens33
- #这里说一下需要修改的位置:
- #修改
- BOOTPROTO=static #这里 dhcp 换成 static
- ONBOOT=yes #将 no 换成 yes
- #新增
- IPADDR=192.168.222.171 #静态 IP
- GATEWAY=192.168.222.2 #默认网关
- NETMASK=255.255.255.0 #子网掩码DNS1=192.168.222.2#视实际情况而定,最好设置为网关
- DNS2=8.8.8.8
- 保存退出后,重启网络服务,执行下面的命令 :
- service network restart
- #看到 Restarting network (via systemctl): [ OK ] 为成功
- 关防火墙执行 systemctl stop firewalld
- 查看:ping www.baidu.com 看是否 ping 通
注:Extra Packages for Enterprise Linux 是为“红帽系”的操作系统提供额外的软件包,适用于 RHEL、CentOS 和 Scientific Linux。相当于是一个软件仓库,大多数 rpm 包在官方 repository 中是找不到的)
[root@hadoop100 ~]$ yum install -y epel-release
[root@hadoop100 ~]$ yum install -y net-tools
[root@hadoop100 ~]$ yum install -y vim
用于存放win传输来的tar安装包:
mkdir -p /opt/software
将安装包进行解压到此目录:
mkdir -p /opt/module
执行命令:vi /etc/hosts
克隆完成后,首先修改网络配置:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
需要修改位置 IPADDR 和 DNS1 两个位置,修改完成后生效:
service network restart
记得关闭防火墙:
systemctl stop firewalld
最后测试 ping www.baidu.com。
再进行虚拟机名称的修改:vi /etc/hostname
之后 reboot 重启虚拟机。在此完成后即可再 finalshell 或者Xshell里面进行连接。
安装 NTP 包(三个机器都要安装):
yum install -y ntp
之后在 bigdata2023master 做为 ntp 服务器,只修改此服务器 ntp 配置文件:
vi /etc/ntp.conf
末尾追加:
- server 127.0.0.1
-
- fudge 127.0.0.1 stratum 10
重启时间服务:
/bin/systemctl restart ntpd.service
稍等一会在 slave1 和 slave2 上执行: ntpdate bigdata2023master 出现如下图所示即表示成功。
若出现如下图错误:
您收到此错误消息的原因是由于 xntpd 已经绑定到了该 Socket。运行 ntpdate 时,它会首先进行广播,然后侦听端口 123。如果 xntpd 正在运行,而有一个进程已经在侦听该端口了,则会使 ntpdate 无法在上面运行。运行下列命令,即可找出 xntpd 的 PID
按照以下绿色标记顺序快速执行
[root@SZDX-DNS-1 bin]# ps -ef|grep xntpd
root 124185 6192 0 15:49 pts/1 00:00:00 grep xntpd
可惜没有找到 pid。
使用 lsof –i:123
没有 lsof 命令的话:yum install -y lsof
lsof -i:123
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ntpd 124171 ntp 16u IPv4 420557 0t0 UDP *:ntp
ntpd 124171 ntp 17u IPv6 420558 0t0 UDP *:ntp
[root@spark1 bin]# kill -9 12417
[root@spark11 bin]# ntpdate 192.168.100.120
13 Apr 09:08:36 ntpdate[124200]: step time server 192.168.100.120 offset -24096.422190 sec
[root@spark1 bin]# date
清除 (Kill) 该进程,然后尝试再次与 ntp 服务器进行同步。此时您不应该收到此错误消息。
请注意,如果您尝试与之同步的服务器没有运行 xntpd,则会收到下列错误消息:
ntpdate[12573]: no server suitable for synchronization found
出现这种情况的原因是,如果您想使用另一个服务器的时间,该服务器必须已经进行了自身同步。
如果不同步 master 的话,可以同步到网络时间 ntpdate -u cn.pool.ntp.org
- 1.生成ssh包(所有机器都要执行):ssh-keygen -t dsa
-
- 2.拷贝文件(在除去master机器上的其他机器上)
-
- cd /root/.ssh
- ls
- 在这个目录下执行
-
- scp id_dsa.pub root@bigdata2023master:/root/.ssh/bigdata2023slave1.pub
-
- scp id_dsa.pub root@bigdata2023master:/root/.ssh/bigdata2023slave2.pub
-
- 3.合并文件(在master机器上)
-
- cat id_dsa.pub bigdata2023slave1.pub bigdata2023slave2.pub >>authorized_keys
-
- 4.从master分发公钥
-
- scp authorized_keys root@bigdata2023slave1:~/.ssh
-
- scp authorized_keys root@bigdata2023slave2:~/.ssh
-
- 5.进行测试
-
- 在master上 ssh bigdata2023slave1 和 ssh bigdata2023slave2
-
- 在每台机器上对其他机器测试 ssh 【机器名】
-
- 6.退出登录
-
- 可以用exit退出远程登录
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,
rsync只对差异文件做更新,scp是把所有文件都复制过去。
安装rsync(三台机器都要安装):
yum install rsync -y
在# /home/leeroot/bin 目录下创建xsync文件(一定要在bin目录下!!)
mkdir -p /home/leeroot/bin
-
- cd /home/leeroot/bin
- 在/homeleeroot/bin 目录下创建xsync文件: vi xsync
xsync的核心代码内容如下,在新建的xsync文件下输入:
- #!/bin/bash
- 1.判断参数个数if [ $ -lt 1 ]
- then
- echo Not Enough Arguement!
- exit;
- fi
- #2.遍历集群所有机器 请改成你自己的主机映射
- for host in host1 host2 host3
- do
- echo =============== $host ==================
- #3.遍历所有目录,挨个发送
- for file in $@
- do
- #4.判断文件是否存在
- if [ -e $file ]
- then
- #5.获取父目录
- pdir=(cd−P(dirname $file); pwd)
- fname=(basenamefile)
- # 创建文件夹和传输文件。请改成你自己的端口号
- ssh -p 32200 host"mkdir−ppdir"
- rsync -av -e 'ssh -p 32200' pdir/fname host:pdir
- else
- echo $file does not exists!
- fi
- done
- done
再添加权限 :
chmod 777 xsync
并添加全局执行,创建新文件夹,写入所有环境变量的配置
vi /etc/profile
将以下内容添加进环境变量,让创建的xsync脚本能全局执行:
- #PATH
- export PATH=$PATH:/home/leeroot/bin
环境变量生效:
source /etc/profile
即可完成
在根目录创建a.txt,再进行分发:xsync a.txt
然后再其他服务器的根目录查看是否有a.txt文件。
cd /opt/software 在此目录上传jdk安装包;
在 Linux 系统下的 opt 目录中查看软件包是否导入成功在:ls进行查看。
看到如下结果:
jdk-8u321-linux-x64.tar.gz
tar -zxvf jdk-8u321-linux-x64.tar.gz -C /opt/module/
(1)新建/etc/profile.d/my_env.sh 文件:
vim /etc/profile.d/my_env.sh
添加如下内容
- #JAVA_HOME
- export JAVA_HOME=/opt/module/jdk1.8.0_321
- export PATH=$PATH:$JAVA_HOME/bin
(2)生效环境变量:
source /etc/profile
- #输入java -version检验
- [root@bigdata2023master ~]$ java -version
如果能看到以下结果,则代表 Java 安装成功。
java version "1.8.0_321"
注意其他机器也需要安装JDK,此时比较简单。
在已经安装jdk的机器上进行分发:
- scp -r /opt/module/jdk1.8.0_321/ root@bigdata2023slave1:/opt/module
- scp -r /opt/module/jdk1.8.0_321/ root@bigdata2023slave2:/opt/module
分发环境变量:
xsync /etc/profile.d/my_env.sh
最后在其他机器上生效一下环境变量:source /etc/profile
其他机器检测是否安装成功:java -version
- [root@bigdata2023master ~]$ cd /opt/software/
- [root@bigdata2023master software]$ tar -zxvf hadoop-3.2.2.tar.gz -C /opt/module/
[root@bigdata2023master ~]$ vim /etc/profile.d/my_env.sh
在末尾添加
- #HADOOP_HOME
- export HADOOP_HOME=/opt/module/hadoop-3.2.2
- export PATH=PATH:HADOOP_HOME/bin
- export PATH=PATH:HADOOP_HOME/sbin
在hadoop-3.1.0启动时hadoop集群如果出现如下错误
[root@bigdata2023master sbin]# start-all.sh
Starting namenodes on [hadoop]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [hadoop]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation
在环境变量中添加上如下配置:
- export HDFS_NAMENODE_USER=root
- export HDFS_DATANODE_USER=root
- export HDFS_SECONDARYNAMENODE_USER=root
- export YARN_RESOURCEMANAGER_USER=root
- export YARN_NODEMANAGER_USER=root
[root@bigdata2023master ~]$ source /etc/profile
[root@bigdata2023master ~]$ hadoop version
Hadoop 3.2.2
Source code repository
Compiled by ljc1
Compiled with protoc 2.5.0
From source with checksum ec785077c385118ac91aadde5ec9799
This command was run using /opt/module/hadoop-3.2.2/share/hadoop/common/hadoop-common-3.2.2.jar
注意其他机器也需要安装hadoop,此时比较简单。
在已经安装jdk的机器上进行分发:
- scp -r /opt/module/hadoop-3.2.2/ root@bigdata2023slave1:/opt/module
- scp -r /opt/module/hadoop-3.2.2/ root@bigdata2023slave2:/opt/module
分发环境变量:
xsync /etc/profile.d/my_env.sh
最后在其他机器上生效一下环境变量:source /etc/profile
其他机器检测是否安装成功:hadoop version
1.进入hadoop目录
[root@bigdata2023master ~]$ cd /opt/module/hadoop-3.2.2/etc/hadoop/
2.配置主要文件
此时注意,进入此目录后,将要配置的core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml都进行手动删除,再通过上传文件的形式快速配置好所需的文件,在上传前将需要的配置修改好,然后直接上传即可。
[root@bigdata2023master hadoop]$ vim core-site.xml
在<configuration>与</configuration>之间添加内容:
- <configuration>
- <!-- 指定NameNode的地址 -->
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://bigdata2023master:8020</value>
- </property>
-
- <!-- 指定hadoop数据的存储目录 -->
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/opt/module/hadoop-3.2.2/data</value>
- </property>
-
- <!-- 配置HDFS网页登录使用的静态用户为root -->
- <property>
- <name>hadoop.http.staticuser.user</name>
- <value>root</value>
- </property>
- </configuration>
[root@bigdata2023master hadoop]$ vim hdfs-site.xml
- <configuration>
- <!-- nn web端访问地址-->
- <property>
- <name>dfs.namenode.http-address</name>
- <value>bigdata2023master:9870</value>
- </property>
- <!-- 2nn web端访问地址-->
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>bigdata2023slave2:9868</value>
- </property>
- </configuration>
[root@bigdata2023master hadoop]$ vim yarn-site.xml
- <configuration>
- <!-- Site specific YARN configuration properties -->
-
- <!-- 指定MR走shuffle -->
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
-
- <!-- 指定ResourceManager的地址-->
- <property>
- <name>yarn.resourcemanager.hostname</name>
- <value>bigdata2023slave1</value>
- </property>
-
- <!-- 环境变量的继承 -->
- <property>
- <name>yarn.nodemanager.env-whitelist</name>
- <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
- </property>
-
- <!-- 开启日志聚集功能 -->
- <property>
- <name>yarn.log-aggregation-enable</name>
- <value>true</value>
- </property>
-
- <!-- 设置日志聚集服务器地址 -->
- <property>
- <name>yarn.log.server.url</name>
- <value>http://bigdata2023master:19888/jobhistory/logs</value>
- </property>
-
- <!-- 设置日志保留时间为14天 -->
- <property>
- <name>yarn.log-aggregation.retain-seconds</name>
- <value>1209600</value>
- </property>
[root@bigdata2023master hadoop]$ vim mapred-site.xml
- <configuration>
- <!-- 指定MapReduce程序运行在Yarn上 -->
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- <!-- 历史服务器端地址 -->
- <property>
- <name>mapreduce.jobhistory.address</name>
- <value>bigdata2023master:10020</value>
- </property>
- <!-- 历史服务器web端地址 -->
- <property>
- <name>mapreduce.jobhistory.webapp.address</name>
- <value>bigdata2023master:19888</value>
- </property>
- </configuration>
3.同步所有节点配置文件
xsync /opt/module/hadoop-3.2.2/etc/hadoop
4.查看配置文件分发情况
分别在bigdata2023slave1和bigdata2023slave2上执行:
cat /opt/module/hadoop-3.2.2/etc/hadoop/core-site.xml
[root@bigdata2023master hadoop]$ vim /opt/module/hadoop-3.2.2/etc/hadoop/workers
清除原有内容,写入所有集群机器名称:
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
- bigdata2023master
- bigdata2023slave1
- bigdata2023slave2
同步所有节点配置文件
[root@bigdata2023master hadoop]$ xsync /opt/module/hadoop-3.2.2/etc/hadoop
(1)格式化 NameNode
如果集群是第一次启动,需要在(主节点)bigdata2023master 节点格式化 NameNode(注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停止 namenode 和 datanode 进程,并且要在cd /opt/module/hadoop-3.2.2/目录下删除所有机器的 data 和 logs 目录,然后再进行格式化。)
[root@bigdata2023master hadoop-3.2.2]$ hdfs namenode -format
(2)启动 HDFS
[root@bigdata2023master hadoop-3.2.2]$ sbin/start-dfs.sh
(3)在配置了 ResourceManager 的节点(hadoop103)启动 YARN
[root@bigdata2023master hadoop-3.2.2]$ sbin/start-yarn.sh
(4)Web 端查看 HDFS 的 NameNode
(a)浏览器中输入:http://bigdata2023master:9870 或者192.168.222.200:9870
(b)查看 HDFS 上存储的数据信息
(5)Web 端查看 YARN 的 ResourceManager
(a)浏览器中输入:http://bigdata2023slave1:8088 或者192.168.222.201:8088
(b)查看 YARN 上运行的 Job 信息
(6)上传大文件测试
hadoop fs -put /opt/software/jdk-8u321-linux-x64.tar.gz /
在网页上查看结果:
显示如上图即可表示安装成功,如若在测试可以进行mapreduce的数单词测试。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。