资料来源,阿里云大数据开发学习视频
分析:
1)准备3台客户机(关闭防火墙、静态ip、主机名称,hosts配置)
2)安装JDK
3)配置环境变量
4)安装Hadoop
5)配置环境变量
6)配置集群
7)单点启动
8)配置ssh
9)群起并测试集群
4.3.1虚拟机准备
4.3.2编写集群分发脚本xsync
1.scp(securecopy)安全拷贝
(1)scp定义:
scp可以实现服务器与服务器之间的数据拷贝。(fromserver1toserver2)
(2)基本语法
scp-r$pdir/$fname$user@hadoop$host:$pdir/$fname
命令递归要拷贝的文件路径/名称目的用户@主机:目的路径/名称
2.rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更
新。scp是把所有文件都复制过去。
(1)基本语法
rsync-rvl$pdir/$fname$user@hadoop$host:$pdir/$fname
命令选项参数要拷贝的文件路径/名称目的用户@主机:目的路径/名称
(2)需求分析:
(a)rsync命令原始拷贝:
rsync -rvl /opt/module root@hadoop103:/opt/
(b)期望脚本:
xsync要同步的文件名称
(c)说明:在/home/hadoop/bin这个目录下存放的脚本,hadoop用户可以在系统
任何地方直接执行。
#!/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`
echopdir=$pdir
#4获取当前用户名称
user=`whoami`
#5循环
for((host=133;host<135;host++));do
echo ------------------- hadoop$host --------------
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done
(b)修改脚本xsync具有执行权限
chmod 777 xsync
(c) 调用同步脚本
xsync/home/atguigu/bin
4.3.3集群配置
1.集群部署规划(hdfs初始化在Hadoop132,yarn启动在Hadoop133)
HADOOP132 | HAdoop133 | HAdoop133 | |
HDFS | DataNode NameNode |
DataNode | DataNode SecondaryNameNode |
YARN | NodeManager | ResourceManager NodeManger |
NodeManager |
2.配置集群(在Hadoop的etc/hadoop 里面)
(1)核心配置文件
配置core-site.xml
(2)HDFS配置文件
配置hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_241
配置hdfs-site.xml
(3)YARN配置文件
配置yarn-env.sh
export JAVA_HOME=/opt/jdk1.8.0_241
配置yarn-site.xml
3.在集群上分发配置好的Hadoop配置文件
xsync /opt/module/hadoop-2.7.2/
4.3.4集群单点启动
(1)如果集群是第一次启动,需要格式化NameNode
4.3.4集群单点启动
(1)如果集群是第一次启动,需要格式化NameNode
(2)在hadoop132上启动NameNode
hadoop-daemon.sh start namenode
(3)在hadoop132、hadoop133以及hadoop134上分别启动DataNode
hadoop-daemon.sh start datanode
4.3.5SSH无密登录配置(集群群起准备)
(1)免密登录原理
(2)生成公钥和私钥:
进入.ssh 目录(在当前用户) ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(3)将公钥拷贝到要免密登录的目标机器上
ssh-copy-id hadoop132
ssh-copy-id hadoop133
ssh-copy-id hadoop134
还需要在hadoop132上采用root账号,配置一下无密登录到hadoop132、hadoop133、
hadoop134;
还需要在hadoop133上采用hadoop账号配置一下无密登录到hadoop132、hadoop133、
hadoop134服务器上。
4.3.6群起集群
1.配置slaves
vi /opt/module/hadoop-2.7.2/etc/hadoop/slaves
加入以下内容
hadoop132
hadoop133
hadoop134
同步所有节点配置文件
xsync slaves
2.启动集群
(1)如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)
(2)启动HDFS(hadoop 132) start-dfs.sh
(3)启动YARN(hadoop133) start-yarn.sh
与设计一样,打工告成.
本文章只对关键部分进行记录,具体的参考文件,原文件是存放在阿里云上面,