Hadoop(一)如何搭建大数据Hadoop集群?(大数据入门教程)

大数据的概念

  • 什么是大数据?
    大数据就是很大的数据,那么究竟大到什么程度才算大数据呢?笔者认为大到传统数据库无法一次性处理的数据就称为大数据。
    大数据(big data):指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察 发现力和流程观察力的海量,高增长率和多样化的信息资产。

  • 大数据的4V特点
    Volume(大量),大数据处理的数据是TB,PB,EB级别的
    Velocity(高速),处理数据速度快,例如双十一。
    Variety(多样),数据被分为结构化和非结构化数据 。结构化数据:数据库/文本为主;非结构化数据越来越多:网络日志,音频,图片,视频,地理位置信息等。
    Value(价值),价值密度的高低与数据总量大小成反比。

从Hadoop看大数据

  • 第一代hadoop与第二代hadoop的区别
    第一代hadoop由mapreduce,hdfs,common(辅助工具)组成,其中mapreduce的功能包含分布式计算和资源调度。
    第二代hadoop由mapreduce,yarn,hdfs,common(辅助工具)组成,第二代的hadoop将第一代的mapreduce的功能分离了出来,第二代mapreduce只负责分布式计算,yarn负责资源调度。
    hadoop的组成:mapreduce,hdfs,yarn。
  • mapreduce
    mapreduce分布式计算,如何理解呢?mapreduce将计算分成了两个部分map和reduce。map负责将数据提取出来,reduce负责计算。
  • hdfs
    hdfs分布式存储,由namenode,datanode,secondary namenode组成。
    如何理解呢?namenode,相当于字典记录数据存在哪里;datanode负责存储数据,;secondary namenode 负责辅助namenode。如果想详细了解请关注博主后续动态,急速入门记住这些就够了。
  • yarn
    yarn负责资源调度;由ResourceManager,NodeManager,ApplicationMaster,Contaniner组成。
    ResourceManager主要负责监控NodeManager,启动或监控ApplicationMaster。
    NodeManager主要负责管理单个节点上的资源,处理来自ResourceManager和ApplicationMaster上的命令。
    ApplicationMaster主要负责 数据的切分,为应用程序申请资源并分配给内部的任务。
    Container:是yarn的资源抽象。它封装了某个节点上的多维度资源,如内存,磁盘,cpu,网络等。

运行hadoop前的准备

  • 配置一台最小化安装的虚拟机

操作系统:Linux CentOS7
处理器核数:2x4
内存4G,磁盘50G
最小化安装,如下图:
在这里插入图片描述

  • 初始化虚拟机
yum install -y epel-release

epel-release软件包,会自动配置yum的软件仓库。当然你也可以不安装这个包,自己配置软件仓库也是一样的。

yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git

psmisc 安装killall命令
nc 能够建立你需要的几乎所有类型的网络连接
net-tools 安装 ifconfig 命令
rsync 主要用于备份和镜像
vim 编辑器
lrzsz 安装sz(下载)和rz(上传)命令
ntp 进行时间同步
libzstd hadoop的一个依赖,负责底层的压缩算法的,可装可不装

关闭防火墙,关闭防火墙自启
systemctl stop firewalld
systemctl disable firewalld
创建用户并修改密码
useradd yuaf
passwd yuaf
配置yuaf用户使其拥有root权限
vim /etc/sudoers

修改/etc/sudoers文件,找到下面一行(91行),在root下面添加一行,如下所示:
在这里插入图片描述
在/opt文件下创建文件夹,并修改文件所属主和所属组。

mkdir /opt/module
mkdir /opt/software
chown yuaf:yuaf /opt/module
chown yuaf:yuaf /opt/software

在这里插入图片描述

配置静态ip参考这个就不做举例了。
https://blog.csdn.net/Kruskual/article/details/108286566

Hadoop运行环境的搭建

  • 克隆虚拟机
    克隆三台虚拟机,怎么克隆就不用说了吧。
  • 修改主机名
    分别修改为hadoop32,hadoop33,hadoop34
  • 修改静态ip地址
    分别修改为32,33,34
  • 修改虚拟机,windows主机映射
sudo vim /etc/hosts

添加如下内容:
在这里插入图片描述
windows在C:\Windows\System32\drivers\etc
将hosts文件拷贝到桌面改写添加数据如下图,然后再覆盖原hosts文件
在这里插入图片描述

  • 导入jdk,hadoop的jar包
    推荐用远程登陆工具fnalshell,把jar包拖到对应目录就好了。
    在这里插入图片描述

  • 解压两个jar包到 /opt/module

tar -xf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module/
tar -xf /opt/software/hadoop-3.1.3.tar.gz -C /opt/module/

在这里插入图片描述

  • 配置环境变量
 sudo vim /etc/profile.d/my_env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin 
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

在这里插入图片描述

检验环境变量是否生效
source /etc/profile
hadoop version

在这里插入图片描述

  • 编写群发脚本,群发解压后的java和hadoop及其环境变量
cd /home/yuaf
mkdir bin
cd bin
vim xsync
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
  echo Not Enough Arguement!
  exit;
fi
#2. 遍历集群所有机器
for host in hadoop32 hadoop33 hadoop34
do
  echo ====================  $host  ====================
  #3. 遍历所有目录,挨个发送
  for file in $@
  do
    #4. 判断文件是否存在
    if [ -e $file ]
    then
      #5. 获取父目录
      pdir=$(cd -P $(dirname $file); pwd)
      #6. 获取当前文件的名称
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done

	给脚本可执行权限
chmod +x xsync
将脚本xsync拷贝到/bin目录下
sudo cp xsync /bin/
将/home/yuaf/bin分发到其他两台虚拟机
xsync /home/yuaf/bin
将/bin/xsync分发到其他两台虚拟机
sudo xsync /bin/xsync
将配置文件发到其他 两台虚拟机上
sudo xsync /etc/profile.d
将hadoop和jdk发到其他两台虚拟机上
xsync /opt/module
  • 设置普通用户及root用户免密登录
yuaf用户的免密登录
cd /home/yuaf/.ssh
进入.ssh目录
ssh-keygen -t rsa
生成公钥和私钥
ssh-copy-id hadoop32
将公钥发给自己
sudo xsync ./
将公钥拷贝到要免密登录的机器上
root用户的免密登录
su
使用root用户
cd /root/.ssh
ssh-keygen -t rsa
ssh-copy-id hadoop32
sudo xsync ./

完全分布式运行Hadoop

  • 配置Hadoop文件
    core-site.xml
cd $HADOOP_HOME/etc/hadoop
vim core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop32:9820</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
</property>

<!-- 配置HDFS网页登录使用的静态用户为yuaf -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>yuaf</value>
</property>

<!-- 配置该yuaf(superUser)允许通过代理访问的主机节点 -->
    <property>
        <name>hadoop.proxyuser.yuaf.hosts</name>
        <value>*</value>
</property>
<!-- 配置该yuaf(superUser)允许通过代理用户所属组 -->
    <property>
        <name>hadoop.proxyuser.yuaf.groups</name>
        <value>*</value>
</property>
<!-- 配置该yuaf(superUser)允许通过代理的用户-->
    <property>
        <name>hadoop.proxyuser.yuaf.groups</name>
        <value>*</value>
</property>

</configuration>

hdfs-site.xml

vim hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- nn web端访问地址-->
	<property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop32:9870</value>
    </property>
	<!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop34:9868</value>
    </property>
</configuration>

yarn-site.xml

vim yarn-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop33</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>
<!-- yarn容器允许分配的最大最小内存 -->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
</property>
<!-- yarn容器允许管理的物理内存大小 -->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</value>
</property>
<!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>

mapred-site.xml

vim mapred-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

workers

vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
hadoop32
hadoop33
hadoop34

在这里插入图片描述

  • 将配置文件分发给其他服务器
xsync /opt/module/hadoop-3.1.3/etc/
  • 第一次运行时格式化
hdfs namenode -format
  • 在hadoop32上启动hdfs
[yuaf@hadoop32 hadoop]$ start-dfs.sh

在这里插入图片描述打开浏览器输入网址:

hadoop32:9870

在这里插入图片描述能看到此页面说明namenode正常运行

  • 在hadoop33上启动yarn
[yuaf@hadoop33 hadoop-3.1.3]$ start-yarn.sh

在这里插入图片描述打开浏览器输入网址:

hadoop33:8088

在这里插入图片描述出现这个网址说明yarn正常运行。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/65977804 【完整课程列表】 大数据与云计算教程课件 优质大数据课程 01.Hadoop简介与安装入门(共29页).pptx 大数据与云计算教程课件 优质大数据课程 02.MapReduce(共23页).pptx 大数据与云计算教程课件 优质大数据课程 03.Hadoop YARN(共25页).pptx 大数据与云计算教程课件 优质大数据课程 04.MapReduce Eclipse开发插件(共20页).pptx 大数据与云计算教程课件 优质大数据课程 05.Hadoop入门数据分析实战(共57页).pptx 大数据与云计算教程课件 优质大数据课程 06.HDFS(共38页).pptx 大数据与云计算教程课件 优质大数据课程 07.HDFS Shell命令(共21页).pptx 大数据与云计算教程课件 优质大数据课程 08.HDFS文件接口(共41页).pptx 大数据与云计算教程课件 优质大数据课程 09.MapReduce序列化(共29页).pptx 大数据与云计算教程课件 优质大数据课程 10.MapReduce MP过程进阶(共42页).pptx 大数据与云计算教程课件 优质大数据课程 11.MapReduce IO操作(共61页).pptx 大数据与云计算教程课件 优质大数据课程 12.序列化框架(共28页).pptx 大数据与云计算教程课件 优质大数据课程 13.深入MapReduce应用开发(共21页).pptx 大数据与云计算教程课件 优质大数据课程 14.Hadoop集群配置(共6页).pptx 大数据与云计算教程课件 优质大数据课程 15.Hive(共46页).pptx 大数据与云计算教程课件 优质大数据课程 16.Hive操作(共43页).pptx 大数据与云计算教程课件 优质大数据课程 17.Hive查询(共32页).pptx 大数据与云计算教程课件 优质大数据课程 18.HBase(共43页).pptx 大数据与云计算教程课件 优质大数据课程 19.Pig(共33页).pptx 大数据与云计算教程课件 优质大数据课程 20.Pig Latin(共36页).pptx 大数据与云计算教程课件 优质大数据课程 21.Pig模式与函数(共64页).pptx 大数据与云计算教程课件 优质大数据课程 22.Zookeeper(共28页).pptx 大数据与云计算教程课件 优质大数据课程 23.Zookeeper服务(共47页).pptx 大数据与云计算教程课件 优质大数据课程 24.使用Zookeeper构建应用(共34页).pptx 大数据与云计算教程课件 优质大数据课程 25.Sqoop(共19页).pptx 大数据与云计算教程课件 优质大数据课程 26.深入Sqoop的导入(共29页).pptx 大数据与云计算教程课件 优质大数据课程 27.深入Sqoop导出(共19页).pptx 大数据与云计算教程课件 优质大数据课程 28.Flume(共33页).pptx 大数据与云计算教程课件 优质大数据课程 29.Kafka(共30页).pptx 大数据与云计算教程课件 优质大数据课程 30.Kafka开发(共34页).pptx 大数据与云计算教程课件 优质大数据课程 31.Strom(共14页).pptx 大数据与云计算教程课件 优质大数据课程 32.Spark入门之Scala(共173页).pptx 大数据与云计算教程课件 优质大数据课程 33.Spark入门(共40页).pptx 大数据与云计算教程课件 优质大数据课程 34.SparkSQL(共15页).pptx 大数据与云计算教程课件 优质大数据课程 35.Oozie(共41页).pptx 大数据与云计算教程课件 优质大数据课程 36.Impala(共20页).pptx 大数据与云计算教程课件 优质大数据课程 37.Solr(共38页).pptx 大数据与云计算教程课件 优质大数据课程 38.Lily(共23页).pptx 大数据与云计算教程课件 优质大数据课程 39.Titan(共20页).pptx 大数据与云计算教程课件 优质大数据课程 40.Neo4j(共50页).pptx 大数据与云计算教程课件 优质大数据课程 41.Elasticsearch(共17页).pptx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值