大数据的概念

  • 什么是大数据?
    大数据就是很大的数据,那么究竟大到什么程度才算大数据呢?笔者认为大到传统数据库无法一次性处理的数据就称为大数据。
    大数据(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 ]
thenecho Not Enough Arguement!exit;
fi
#2. 遍历集群所有机器
for host in hadoop32 hadoop33 hadoop34
doecho ====================  $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:$pdirelseecho $file does not exists!fidone
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正常运行。

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

  1. redis映射的概念_搭建分布式Redis Cluster集群与Redis入门

    目录 Redis 集群搭建Redis 是啥集群(Cluster)Redis Cluster 说明Redis Cluster 节点Redis Cluster 集群模式不能保证一致性创建和使用 Redis ...

  2. hadoop大数据生态集群

    大数据 又称为巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语.大数据也可以定义为来自各种来源的大量非结构化或结构化数据. 大数据无处不在,例如我们在淘宝搜索输入一个手机后, ...

  3. Hadoop集群大数据解决方案之MapReduce 程序实战进阶(自定义partitionsortgroup)(六)

    准 备   在上一篇博客举了个简单的word count,重在说明mapreduce的流程,但是针对mapreduce的编程,程序员能控制的,远远不止map和reduce,还有诸如partition, ...

  4. 【大数据之Hadoop】三十一、HDFS集群迁移之Apache和Apache集群间数据拷贝

    数据迁移场景:   冷热集群数据分类存储:集群数据整体迁移:数据的准实时同步,目的在于数据的双备份可用. 数据迁移需要考虑的因素:   带宽.性能.增量同步(原始数据文件进行了追加写.被删除或重命名) ...

  5. 大数据分布式集群搭建(5)

    下面我们来操作大数据中的重头戏Hadoop 1. HADOOP背景介绍 1.1 什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根 ...

  6. 软件架构自学笔记----分享“去哪儿 Hadoop 集群 Federation 数据拷贝优化”

    去哪儿 Hadoop 集群 Federation 数据拷贝优化 背景 去哪儿 Hadoop 集群随着去哪儿网的发展一直在优化改进,基本保证了业务数据存储量和计算量爆发式增长下的存储服务质量.然而,随着 ...

  7. 数据中心安全风控_平安银行Hadoop集群跨数据中心迁移项目告捷项目骨干专访

    Hadoop集群跨数据中心迁移 平安银行东莞数据中心建成 平安银行科技中心零售大数据团队 平安银行科技中心科技运营中心 群迁告捷 经过平安银行科技运营中心和大数据团队的不懈努力,作为平安银行AI战略转 ...

  8. Hadoop(八)Java程序访问HDFS集群中数据块与查看文件系统

    阅读目录(Content) 一.HDFS中数据块概述 1.1.HDFS集群中数据块存放位置 1.2.数据块(data block)简介 1.3.对分布式文件系统中的块进行抽象会带来很多好处 二.Jav ...

  9. Hadoop基础-HDFS集群中大数据开发常用的命令总结

    Hadoop基础-HDFS集群中大数据开发常用的命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本盘博客仅仅列出了我们在实际生成环境中常用的hdfs命令,如果想要了解更多, ...

  10. 本地日志数据实时接入到hadoop集群的数据接入方案

    1. 概述 本手册主要介绍了,一个将传统数据接入到Hadoop集群的数据接入方案和实施方法.供数据接入和集群运维人员参考. 1.1.  整体方案 Flume作为日志收集工具,监控一个文件目录或者一个文 ...

最新文章

  1. python html parse
  2. 数据结构常见算法集锦
  3. 喜大普奔,网易猪肉要到你碗里来了!
  4. team网卡配置_Windows下的网卡Teaming 配置教程(图文)
  5. ubuntu64位(x86)下科大讯飞sdk使用注意事项
  6. python自动测试n_接口自动化:Jenkins 自动构建python+nose测试
  7. 【树形区间DP】加分二叉树(ssl 1033/luogu 1040)
  8. 认识oracle监听器配置文件
  9. matlab中制作软件,2020-02-27 MATLAB App Designer——在 App 设计工具中创建辅助函数
  10. 将ppt里的图片高分辨率保存的方法
  11. STC15单片机-低功耗设计
  12. 中国互联网寒冬的根本原因是什么?
  13. 7-1 循环-Fibonacci数列的运算 (50 分)
  14. 推广TrustAI可信分析:通过提升数据质量来增强在ERNIE模型下性能
  15. 可分离变量的微分方程
  16. 人工智能正在学习如何创造自己
  17. finally语句什么时候不会执行
  18. LLaMA模型文件 (搬运工)
  19. SSH框架电力项目八--运行监控的保存
  20. 上手python之字典

热门文章

  1. 代码生成工具(1) ---关于代码生成器
  2. 视频服务器显示存储离线,云端服务器显示离线咋会事
  3. Python百钱百鸡问题
  4. Delta并联机构重力补偿分析
  5. 【学习笔记】《网络安全态势感知》第三章:网络安全数据采集与融合
  6. 心理声学模型在感知音频编码中的应用
  7. 会员制玩法解说 JAVA会员制商城系统开发
  8. 缠论108课_缠论108课学习顺序
  9. mp4文件如何转换为webm格式 1
  10. 二手书交易系统功能结构图