从0开始学大数据(4):Hadoop完全分布式模式的配置和应用

本文详细介绍了如何从零开始配置Hadoop的完全分布式模式,包括准备三台客户机、配置静态IP、安装与配置Hadoop、配置无密登陆、使用rsync远程同步工具、编写集群分发脚本,以及启动和测试集群的过程。同时,文章还涵盖了集群启动中的常见问题和解决方案。
摘要由CSDN通过智能技术生成

前言

上一篇文章《从0开始学大数据(3):Hadoop本地模式和伪分布模式的应用》我们学习了Hadoop的运行模式——伪分布模式的配置,这篇文章我们来学习另外一种Hadoop的运行模式——完全分布式模式。

配置完全分布式模式

首先我们来分析下我们的整体步骤:

  • 1.准备三台客户机(关闭防火墙、静态ip、主机名称)
  • 2.安装jdk
  • 3.配置环境变量
  • 4.安装hadoop
  • 5.配置环境变量
  • 6.安装ssh
  • 7.配置集群
  • 8.启动测试集群

通过前面的知识学习,我们的1-5步应该都没有问题了,只需要学习下面的三步就行,下面我们就来学习知识。

准备三台客户机

首先,我们通过Paralles虚拟机对我之前的Centos100进行克隆,然后对配置进行修改

配置静态IP
  • 切换用户sudo su root。遇见sudoers文件问题可以查看这篇文章
  • 使用命令vi /etc/sysconfig/network-scripts/ifcfg-eth0修改静态IP地址。
  • 命令vi /etc/sysconfig/network添加HOSTNAME=hadoop102
  • 命令vi /etc/hosts添加ip地址 主机名
  • 重启reboot

忘记了回顾下这篇文章《从0开始学大数据(1):Parallels Desktop下CentOS系统的安装和静态IP地址配置》

安装hadoop

下面说下简单步骤:

  • 切换用户sudo su root
  • /opt路径下,创建modulesoftware来安装和存放安装包
  • 使用命令chown martin:martin module/ software的拥有者改为martin用户
  • 通过scp命令,虚拟机之间的安装包可以互传,这里传输时候密码最好都设置为一致的,不然以后写脚本很麻烦。
    • scp -r jdk-7u79-linux-x64.gz martin@hadoop102:/opt/software

-r:表示递归文件或者文件夹
jdk-7u79-linux-x64.gz:传递的文件或者文件夹
martin@hadoop102:/opt/software:用户@主机名:制定路径
在这里插入图片描述
更多信息可以查看《Linux scp命令》

  • 安装jdk,使用命令tar -zxvf [JDK安装包] -C [指定路径]完成安装。
  • 安装hadoop,使用命令tar -zxvf [Hadoop安装包] -C [指定路径]完成安装。

忘记了回顾下这篇文章《从0开始学大数据(2):大数据的概论和Hadoop安装》,按照上面的步骤,我们创建出三台虚拟机。

配置无密登陆

平常在我们使用登陆的ssh命令的时候,都需要输入密码这种方式比较麻烦,所以我们可以使用ssh生成密钥对,并且将公钥推送给我们想要登陆的服务器集群,这样就配置好无密登陆了。

  • 进入~/.ssh文件
cd ~/.ssh
  • 使用ssh命令生成密钥对。
ssh-keygen -t rsa
  • 使用命令将公钥推送到某一台集群上
ssh-copy-id hadoop103

在这里插入图片描述
这里需要注意的是,我们需要将免密登陆配置在hadoop102,hadoop103,hadoop103上,后面启动集群的时候如果没有配置无法启动起来。

rsync远程同步工具

rsync命令是一个远程数据同步工具。

  • 基本语法
rsync  -rvl                 $pdir/$fname                       $user@hadoop$host:$pdir
命令   命令参数   要拷贝的文件路径/名称   目的用户@主机:目的路径

r : 递归 -v:显示复制过程 -l:拷贝符号链接

更多参考《第2章 rsync(一):基本命令和用法》

编写集群分发脚本xync脚本

我们在hadoop102配置好文件后,如果需要同步到各个服务器(hadoop103,hadopp104)上,只需要执行该脚本就不用登陆每台服务器修改同步了,非常方便。

  • /usr/local/bin目录下创建xsync文件
#!/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); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值