搭建Hadoop完全分布式环境

资料来源,阿里云大数据开发学习视频

分析:
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)

2-3 集群配置
  HADOOP132 HAdoop133 HAdoop133
HDFS

DataNode

NameNode

DataNode

DataNode

SecondaryNameNode

YARN NodeManager

ResourceManager

NodeManger

NodeManager

2.配置集群(在Hadoop的etc/hadoop 里面)
(1)核心配置文件

配置core-site.xml



fs.defaultFS
hdfs://hadoop132:9000



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

(2)HDFS配置文件
配置hadoop-env.sh

export JAVA_HOME=/opt/jdk1.8.0_241
配置hdfs-site.xml




dfs.replication
3



dfs.namenode.secondary.http-address
hadoop134:50090

(3)YARN配置文件
配置yarn-env.sh

export JAVA_HOME=/opt/jdk1.8.0_241

配置yarn-site.xml



yarn.nodemanager.aux-services
mapreduce_shuffle



yarn.resourcemanager.hostname
hadoop133

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)免密登录原理

搭建Hadoop完全分布式环境_第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

      

与设计一样,打工告成.

本文章只对关键部分进行记录,具体的参考文件,原文件是存放在阿里云上面,

你可能感兴趣的:(Hadoop,hadoop,hdfs)