大数据入门及集群搭建(3个节点做示范)

mac2024-03-26  27

大数据入门及集群搭建(3个节点做示范)

1.大数据1.1 什么是大数据1.2 大数据的四个特性1.3 大数据价值应用 2.Hadoop2.1.什么是hadoop2.2.hadoop的核心组件2.3 hadoop的发行版2.4 hadoop生态圈2.5 分布式和集群区别 3.数据处理流程项目整体技术架构图 4.hadoop集群搭建4.1 hdfs 组成4.2 yarn组成4.3 Hadoop集群搭建4.3.1 准备三个节点4.3.2 集群搭建 4.4 高可用集群4.4.1 高可用原理4.4.1 高可用搭建

1.大数据

1.1 什么是大数据

传统处理方式无法解决的大而且复杂的数据集(存储和计算)

1.2 大数据的四个特性

数据量大种类多速度快: 产生数据的速度快,要求时延小价值高: 整体价值高,单条记录没有价值

1.3 大数据价值应用

在总数据量相同的情况下,与个别分析独立的小型数据集(Data set)相比,将各个小型数 据集合并后进行分析可得出许多额外的信息和数据关系性,可用来政治经济国庆调控、 察觉 商业趋势、 判定研究质量、 避免疾病扩散、 打击犯罪或测定即时交通路况等, 这样的用途 正是大型数据集盛行的原因。

2.Hadoop

2.1.什么是hadoop

​ 大数据存储和计算的一整套解决方案,软件平台。

2.2.hadoop的核心组件

* Common(基础设施) * HDFS: 分布式的文件系统(海量数据的存储) * MapReduce: 分布式的计算框架(海量数据离线运算) * Yarn: 分布式资源调度系统(2.x)

2.3 hadoop的发行版

* apache hadoop: 2008年,初学者入门,简单易入手 * cloudera hadoop: 2009年,企业中使用 CDH,性能强 * hortonworks hadoop: 2011年,文档全面

2.4 hadoop生态圈

重点组件:

HDFS: Hadoop 的分布式文件存储系统MapReduce: Hadoop 的分布式程序运算框架,也可以叫做一种编程模型Hive: 基于 Hadoop 的类 SQL 数据仓库工具HBase: 基于 Hadoop 的列式分布式 NoSQL 数据库ZooKeeper: 分布式协调服务组件Mahout: 基于 MapReduce/Flink/Spark 等分布式运算框架的机器学习算法库Oozie/Azkaban: 工作流调度引擎Sqoop: 数据迁入迁出工具Flume: 日志采集工具

2.5 分布式和集群区别

负载均衡集群

分布式

利用多个节点共同协作完成一项或多项具体业务功能的系统就是分布式系统。

3.数据处理流程

A、 数据采集:定制开发采集程序,或使用开源框架 Flume 或者 LogStashB、 数据预处理:定制开发 MapReduce 程序运行于 Hadoop 集群,或者专门数据收集工具也能进行数据预处理C、 数据仓库技术:基于 Hadoop 之上的 HiveD、 数据导出:基于 Hadoop 的 Sqoop 数据导入导出工具E、 数据可视化:定制开发 web 程序或使用 Kettle 等产品F、数据统计分析: Hadoop 中的 MapReduce 或者基于 Hadoop 的 Hive,或者Spark, FlinkG、 整个过程的流程调度: Hadoop 生态圈中的 Oozie/Azkaban 工具或其他类似开源产品

项目整体技术架构图

4.hadoop集群搭建

4.1 hdfs 组成

* namenode(nn): 存放元数据信息,存储文件名称,文件属性,文件的块列表,所在的dn的节点列表 * datanode(dn): 存放具体的block的,校验文件。 * secondarynamenode(2nn): 降低namenode压力,辅助作用。

4.2 yarn组成

ResourceManager(rm): 整个集群的资源调度NodeManager(nm): 单个节点的资源调度

4.3 Hadoop集群搭建

4.3.1 准备三个节点

修改ip地址,静态ip地址

修改主机名称和主机映射

修改系统启动级别

vim /etc/inittab 将 id:5:initdefault: 修改成 id:3:initdefault: 防火墙和selinux service iptables stop chkconfig iptables off selinux:linux的安全管理策略 vim /etc/selinux/config SELINUX=disabled 同步时间 date -s "" ntpdate ntp1.aliyun.com jdk安装 保证同名的普通用户并且配置ssh免密登录
4.3.2 集群搭建

单节点

伪分布式集群

完全分布式

1.下载hadoop软件包

http://hadoop.apache.org/ http://archive.apache.org/dist/

2.上传到服务器

put -r hadoop.tar.gz

3.解压操作

1./opt/moudle/.... 权限(用户名组修改为hadoop) sudo(sudoers权限配置) 2./home/hadoop/ tar -zxvf hadoop-2.7.7-centos-6.7.tar.gz

4.目录结构

bin: 可执行文件(操作命令 hdfs...) sbin: 可执行文件(集群启动关闭,负载均衡...) etc: 配置文件 share: 共享文件(common/hdfs/mapreduce等jar)

5.进程规划

hdp01hdp02hdp03namenodedatanodedatanodedatanodeResourceManagersecondarynamenodeNodeManagerNodeManagerNodemanager

6.配置

hadoop-env.sh

整个hadoop的环境,hadoop进程是jvm进程,配置jdk的环境变量 export JAVA_HOME=/opt/jdk1.8.0_73 运行一个mr示例: bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount input/ output core-site.xml 默认的文件系统,默认值(file:///本地文件系统) hdfs://ip:port hdfs集群的入口地址(namenode:客户端的请求和响应) 1.使用分布式的文件系统 2.namenode所在的节点为hdp01 3.hdfs集群的访问路径: hdfs://hdp01:9000 <property> <name>fs.defaultFS</name> <value>hdfs://hdp01:9000</value> </property> 临时文件的存储目录: <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoopdata</value> </property> hdfs-site.xml dfs.replication: 副本数(默认3个副本) dfs.blocksize:每个块的大小(1.x:64m, 2.x:128m) namenode的元数据存储的目录: <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/hadoopdata/name</value> </property> datanode的block信息存储的目录: <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/hadoopdata/data</value> </property> secondarynamenode的节点配置: <property> <name>dfs.secondary.http.address</name> <value>hdp03:50090</value> </property> mapred-site.xml cp mapred-site.xml.template mapred-site.xml mapreduce作业运行的平台: <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> yarn-site.xml <property> <name>yarn.resourcemanager.hostname</name> <value>hdp02</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> slaves(dn和nm) namenode/ResourceManager --> master datanode/NodeMnager --> slave hdp01 hdp02 hdp03 7.环境变量 /etc/profile 当前用户,配置如下两个文件即可(任意一个都可) ~/.bashrc ~/.bash_profile 配置如下信息: export HADOOP_HOME=/home/hadoop/hadoop-2.7.7 export PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 最后source一下,更新配置文件。 source .bash_profile 8.发送到其他节点 scp -r hadoop-2.7.7 hadoop@hdp02:~/ scp -r .bash_profile hadoop@hdp03:~/ 9.hdfs集群(namenode)格式化 hdfs namenode -format (只能格式化一次) 10.启动集群 1.逐个进程启动 hadoop-daemon.sh start/stop namenode/datanode/secondarynamenode yarn-daemon.sh start/stop ResourceManager/NodeManager 2.整个集群启动(涉及到通信,ssh免密登录) start-dfs.sh/stop-dfs.sh start-yarn.sh(必须在rm节点启动)/stop-yarn.sh 3.全部启动 start-all.sh/stop-all.sh 11.成功检测 1.jps 2.利用图形界面 hdfs: http://hdp01:50070 yarn: http://hdp03:8088 3.运行任务 hdfs: hdfs dfs -copyFromLocal input/ / yarn: hadoop jar hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /input /output

OK了,集群已经搭建成功!

4.4 高可用集群

4.4.1 高可用原理

hadoop高可用原理:将元数据存储在第三方文件系统平台(类似于zookeeper) high availability using the Quorum Journal Manager(QJM)

将元数据信息存储在QJM这个平台,采用 文件系统+监听机制: active 将元数据信息存储在QJM这个平台,standby 会时刻监听 QJM 平台 edits 文件的更新,一旦有更新,standby 会立即将更新的 edits 文件拉取到自己的节点。

4.4.1 高可用搭建

高可用集群 详见 hadoop HA (高可用 high available)的搭建

最新回复(0)