Hadoop : 搭建hdfs分布式集群

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: Hadoop : 搭建hdfs分布式集群

什么是大数据

基本概念

 

在互联网技术发展到现今阶段,大量日常、工作等事务产生的数据都已经信息化,人类产生的数据量相比以前有了爆炸式的增长,以前的传统的数据处理技术已经无法胜任,需求催生技术,一套用来处理海量数据的软件工具应运而生,这就是大数据


处理海量数据的核心技术:

  • 海量数据存储:分布式
  • 海量数据运算:分布式

这些核心技术的实现是不需要用户从零开始造轮子的存储和运算,都已经有大量的成熟的框架来用

 

存储框架:

  • HDFS——分布式文件存储系统(HADOOP中的存储框架)
  • HBASE——分布式数据库系统
  • KAFKA——分布式消息缓存系统(实时流式数据处理场景中应用广泛)

 

运算框架:(要解决的核心问题就是帮用户将处理逻辑在很多机器上并行)

  • MAPREDUCE—— 离线批处理/HADOOP中的运算框架
  • SPARK —— 离线批处理/实时流式计算
  • STORM —— 实时流式计算

 

辅助类的工具(解放大数据工程师的一些繁琐工作):

  • HIVE —— 数据仓库工具:可以接收sql,翻译成mapreduce或者spark程序运行
  • FLUME——数据采集
  • SQOOP——数据迁移
  • ELASTIC SEARCH —— 分布式的搜索引擎

 

换个角度说,大数据是:

  1. 有海量的数据
  2. 有对海量数据进行挖掘的需求
  3. 有对海量数据进行挖掘的软件工具(hadoop、spark、storm、flink、tez、impala......)

 

大数据在现实生活中的具体应用

  • 数据处理的最典型应用:公司的产品运营情况分析
  • 电商推荐系统:基于海量的浏览行为、购物行为数据,进行大量的算法模型的运算,得出各类推荐结论,以供电商网站页面来为用户进行商品推荐
  • 精准广告推送系统:基于海量的互联网用户的各类数据,统计分析,进行用户画像(得到用户的各种属性标签),然后可以为广告主进行有针对性的精准的广告投放

 

什么是hadoop

hadoop中有3个核心组件:

  1. 分布式文件系统:HDFS —— 实现将文件分布式存储在很多的服务器上
  2. 分布式运算编程框架:MAPREDUCE —— 实现在很多机器上分布式并行运算
  3. 分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源

 

hdfs整体运行机制

hdfs:分布式文件系统

hdfs有着文件系统共同的特征:

  1. 有目录结构,顶层目录是:  /
  2. 系统中存放的就是文件
  3. 系统可以提供对文件的:创建、删除、修改、查看、移动等功能

 

hdfs跟普通的单机文件系统有区别:

  1. 单机文件系统中存放的文件,是在一台机器的操作系统中
  2. hdfs的文件系统会横跨N多的机器
  3. 单机文件系统中存放的文件,是在一台机器的磁盘上
  4. hdfs文件系统中存放的文件,是落在n多机器的本地单机文件系统中(hdfs是一个基于linux本地文件系统之上的文件系统)

 

hdfs的工作机制:

  1. 客户把一个文件存入hdfs,其实hdfs会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:data node)<准确来说:切块的行为是由客户端决定的>
  2. 一旦文件被切块存储,那么,hdfs中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器(负责记录块信息的角色是:name node
  3. 为了保证数据的安全性,hdfs可以将每一个文件块在集群中存放多个副本(到底存几个副本,是由当时存入该文件的客户端指定的)

综述:一个hdfs系统,由一台运行了namenode的服务器,和N台运行了datanode的服务器组成!

 

搭建hdfs分布式集群

 

hdfs集群组成结构:

图片.png

安装hdfs集群的具体步骤:


一、首先需要准备N台linux服务器


  • 学习阶段,用虚拟机即可!
  • 先准备4台虚拟机:1个namenode节点  + 3 个datanode 节点

 

二、修改各台机器的主机名和ip地址


  • 主机名:hdp-01  对应的ip地址:192.168.33.61
  • 主机名:hdp-02  对应的ip地址:192.168.33.62
  • 主机名:hdp-03  对应的ip地址:192.168.33.63
  • 主机名:hdp-04  对应的ip地址:192.168.33.64

 

三、从windows中用CRT软件进行远程连接


  • 在windows中将各台linux机器的主机名配置到的windows的本地域名映射文件中:
  • c:/windows/system32/drivers/etc/hosts
192.168.33.61 hdp-01
192.168.33.62 hdp-02
192.168.33.63 hdp-03
192.168.33.64 hdp-04

 

四、配置linux服务器的基础软件环境

 

1.防火墙关闭

关闭防火墙:service iptables stop  
关闭防火墙自启: chkconfig iptables off

 

2.安装jdk:(hadoop体系中的各软件都是java开发的)

  1. 上传jdk压缩包
  2. 然后在linux中将jdk压缩包解压到/root/apps 下
  3. 配置环境变量:JAVA_HOME   PATH

vi /etc/profile   在文件的最后,加入

export JAVA_HOME=/root/apps/jdk1.8.0_60
export PATH=$PATH:$JAVA_HOME/bin
  1. 修改完成后,记得 source /etc/profile使配置生效
  2. 检验:在任意目录下输入命令: java -version 看是否成功执行
  3. 将安装好的jdk目录用scp命令拷贝到其他机器
  4. 将/etc/profile配置文件也用scp命令拷贝到其他机器并分别执行source命令

 

3.集群内主机的域名映射配置

在hdp-01上,vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.33.61   hdp-01
192.168.33.62   hdp-02
192.168.33.63   hdp-03
192.168.33.64   hdp-04


然后,将hosts文件拷贝到集群中的所有其他机器上

scp /etc/hosts hdp-02:/etc/
scp /etc/hosts hdp-03:/etc/
scp /etc/hosts hdp-04:/etc/

提示:执行scp命令,需要先安装

 

五、安装hdfs集群

上传hadoop安装包到hdp-01

 

  1. 修改配置文件

要点提示

核心配置参数:

  1. 指定hadoop的默认文件系统为:hdfs
  2. 指定hdfs的namenode节点为哪台机器
  3. 指定namenode软件存储元数据的本地目录
  4. 指定datanode软件存放文件块的本地目录

 

hadoop的配置文件在

/root/apps/hadoop安装目录/etc/hadoop/

 

1) 修改hadoop-env.sh

export JAVA_HOME=/root/apps/jdk1.8.0_60

 

2) 修改core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp-01:9000</value>
</property>
</configuration>

3) 修改hdfs-site.xml

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hdpdata/name/</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hdpdata/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdp-02:50090</value>
</property>
</configuration>

 

4) 拷贝整个hadoop安装目录到其他机器

scp -r /root/apps/hadoop-2.8.1  hdp-02:/root/apps/
scp -r /root/apps/hadoop-2.8.1  hdp-03:/root/apps/
scp -r /root/apps/hadoop-2.8.1  hdp-04:/root/apps/

 

5) 启动HDFS

所谓的启动HDFS,就是在对的机器上启动对的软件

提示:

要运行hadoop的命令,需要在linux环境中配置HADOOP_HOME和PATH环境变量

vi /etc/profile

export JAVA_HOME=/root/apps/jdk1.8.0_60

export HADOOP_HOME=/root/apps/hadoop-2.8.1

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

 

首先,初始化namenode的元数据目录

要在hdp-01上执行hadoop的一个命令来初始化namenode的元数据存储目录

hadoop namenode -format

  1. 创建一个全新的元数据存储目录
  2. 生成记录元数据的文件fsimage
  3. 生成集群的相关标识:如:集群id——clusterID

 

然后,启动namenode进程(在hdp-01上)

  1. hadoop-daemon.sh start namenode
  2. 启动完后,首先用jps查看一下namenode的进程是否存在

 

然后,在windows中用浏览器访问namenode提供的web端口:50070

http://hdp-01:50070

 

然后,启动众datanode们(在任意地方)

 

6) 用自动批量启动脚本来启动HDFS

  • 先配置hdp-01到集群中所有机器(包含自己)的免密登陆
在hdp-01输入
Ssh-keygen
ssh-copy-id hdp-01 
ssh-copy-id hdp-02 
ssh-copy-id hdp-03 
ssh-copy-id hdp-04 
  • 配完免密后,可以执行一次  ssh 0.0.0.0
  • 修改hadoop安装目录中/etc/hadoop/slaves(把需要启动datanode进程的节点列入)
hdp-01
hdp-02
hdp-03
hdp-04
  • 在hdp-01上用脚本:start-dfs.sh 来自动启动整个集群
  • 如果要停止,则用脚本:stop-dfs.sh



相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
1天前
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
19 5
|
1天前
|
资源调度 数据可视化 大数据
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
15 4
|
1天前
|
XML 大数据 网络安全
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
15 4
|
1天前
|
大数据 网络安全 数据安全/隐私保护
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
17 5
|
1天前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
17 5
|
1天前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
14 4
|
13天前
|
存储 分布式计算 资源调度
两万字长文向你解密大数据组件 Hadoop
两万字长文向你解密大数据组件 Hadoop
49 11
|
1天前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
15 4
|
2月前
|
存储 分布式计算 Hadoop
|
2月前
|
图形学 数据可视化 开发者
超实用Unity Shader Graph教程:从零开始打造令人惊叹的游戏视觉特效,让你的作品瞬间高大上,附带示例代码与详细步骤解析!
【8月更文挑战第31天】Unity Shader Graph 是 Unity 引擎中的强大工具,通过可视化编程帮助开发者轻松创建复杂且炫酷的视觉效果。本文将指导你使用 Shader Graph 实现三种效果:彩虹色渐变着色器、动态光效和水波纹效果。首先确保安装最新版 Unity 并启用 Shader Graph。创建新材质和着色器图谱后,利用节点库中的预定义节点,在编辑区连接节点定义着色器行为。
131 0