大数据:
概念:bigdata
数据:
数据就是数值,也就是我们通过观察、实验或计算得出的结果。数据有很多种,最简单的就是数字。数据也可以是文字、图像、声音等。数据可以用于科学研究、设计、查证等。
大数据:海量数据
特点:
4v特点:
1.VOLUME数据量大
GB TB
1 Byte =8 bit
1 KB = 1,024 Bytes = 8192 bit
1 MB = 1,024 KB = 1,048,576 Bytes(普通用户数据级别)
1 GB = 1,024 MB = 1,048,576 KB
1 TB = 1,024 GB = 1,048,576 MB
1 PB = 1,024 TB = 1,048,576 GB(企业级数据级别)
1 EB = 1,024 PB = 1,048,576 TB
1 ZB = 1,024 EB = 1,048,576 PB(全球数据总量级别)
1 YB = 1,024 ZB = 1,048,576 EB
1 BB = 1,024 YB = 1,048,576 ZB
1 NB = 1,024 BB = 1,048,576 YB
1 DB = 1,024 NB = 1,048,576 BB
2.VARIATY种类多
最早 文本数据
现在数据 视频 音频 图片 文本 html css
绝大多的数据 视频+音频
3.产生速度快
2G ---- qq 文本的数据
4G --- 刷抖音
5G
4.价值密度低:
快 大 绝大多的数据 没有分析价值的数据
有用的数据少
整体价值高
数据的来源:
1.自己的业务数据 淘宝 京东
2.爬虫
3.第三方的
数据的分类:
结构:
1.结构化
2.半结构化
3.非结构化
数据的处理方式:
不是所有的数据 拿来就可以用 毛数据
1.缺失字段的数据
1.直接删除这条数据
不影响整体的业务分析
11 淘宝的数据 sex
2.和金钱有关的数据
3.要求比较精密的数据 补上字段 平均值、经验值
工业大数据 工业生产上
本身的数据量不大
传感器
炼钢 --- 温度
2.敏感字段
暴露用户的个人信息的
身份证号 手机号 家庭住址
脱敏处理 将敏感数据进行加密处理
数据的价值:
用户画像 根据用户的消费行为习惯 及 性格特点等信息 描述用户的整体特点的画像 用于商业行为
个性化的广告推送---- 花最少的钱 达到最好的效果
流程:
数据采集----- 数据缓存 ----数据存储----数据清洗---数据分析---数据迁移(MysqL/hbase)---可视化展示
几个大数据相关的概念:
集群:
一个计算 一个服务器完成的
一个任务需要多个机器(网络不同)共同配合完成 这个时候我们将这多个器 叫做一个集群
每一个机器 叫做节点
分布式:分而治之
一个任务需要分成多个小任务 每个小任务在一个独立的机器上运行 不同的机器上运行 这个时候这个任务就是分布式的运行
分布式数据库:
MysqL 1T
一个大的数据存储任务 被分成多个小任务 每个机器负责存储一个小任务
分布式文件系统:
一个大的文件 被分成多个小文件 每个机器只负责存储一个小文件
分布式计算:
一个大的计算任务 一台机器跑不了 将这个大的计算任务进行切分 分成多个小的计算任务 分别在多个机器上执行
负载均衡:
一个组 (集群)8个人(节点)
1---90%
7----10% 不公平
集群中的每个节点被分配到的任务相当的 这个时候 整个集群就是负载均衡的
这里的负载均衡 和 集群中每个节点的硬件配置有关
一个组 (集群)8个人(节点)
背沙袋 800kg
4个人 身体素质比较好 10min 150
2 一般 15min 80
2 体弱多病的 2h 20
集群中 3个节点 计算任务 4T
8T 256G 1.1 1T --- 30min
16T 512G 1.9 2T ----- 30min
8T 256G 1 1T----- 30min
不存在绝对的负载均衡 相对的
集群的扩展能力:
纵向扩展:同一个节点 硬件上的扩展
一个节点处理能力不足的时候 加大当前节点的硬件配置 内存 硬盘加大 网络
不能解决性能瓶颈的
摩尔定律:
价格不变的情况下 硬件配置18-24个月会提升一倍
5000 1T 8G
18-24个月:
5000 2T 16G
硬件配置18-24个月更新一次
服务器:
8T 128G
6T------30min
18-24 纵向扩展
16T 256G
6T------15min
数据量的提升会远远大于硬件的提升
数据量提升4倍
24T-----60min
横向扩展 :同一个集群中的从节点的数量上进行扩展
进行数据处理的时候 一台机器不够 多加几台机器 还不够 继续添加
理论上 横向扩展 没有上线的
10000
横向扩展是解决最终分布式的终极方案
hadoop:
产生的背景:
Google-----搜索引擎----数据存储的问题
海量的数据如何存储问题
解决 2003 论文 描述的就是数据存储的思想 GFS---Google FileSystem
海量数据的计算问题
MAPREDUCE 论文 描述的就是分布式的计算系统
快速查询问题:
论文 bigtable ---- 快速查询的google的分布式数据库
doung cutting:
搜索引擎的
lucence
面临上面的3个问题 有感
将三篇论文 用java语言实现了 开源
GFS----HDFS HADOOP distributeD FILE SYATEM hadoop的分布式文件系统 海量数据的存储的
MAPREDUCE-----MAPREDUCE 解决海量数据的分布式计算的
bigtable-----hbase 解决海量数据的快速查询
‘
Nutch 爬虫
hadoop 1.0
HDFS 分布式存储
MAPREDUCE 分布式计算的
hadoop是什么?
Apache™Hadoop®项目是一个提供高可靠,可扩展(横向)的分布式计算的开源软件。
Apache Hadoop软件库是一个框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储。hadoop本身不是依靠硬件来提供高可用性?,而是设计用于检测和处理应用程序层的故障,从而在计算机集群之上提供高可用性服务,每个计算机都可能容易出现故障。
10000
高可用:
服务
集群有能力可以持续对外提供不间断的服务
hadoop设计的时候 基于普通廉价机 虚拟机 机器有可能随时宕机
将硬件故障作为常态 即使硬件发生故障 不影响整体的业务或数据
hadoop的模块:
hadoop1.0
HDFS MAPREDUCE 仅仅能解决问题
hadoop2.0
功能:
HDFS:
hadoop的分布式文件系统
运行架构:
主从架构
主:namenode 一个 单点故障
管理的作用
助理:
secondarynamenode:帮助namenode备份数据 但是接替不了namenode的工作
从:d@R_404_5581@ode 多个
存储数据的 干活的
MAPREDUCE:应用程序 什么时候执行 什么时候启动(代码 数据 资源)
YARN:资源调度的
为每一个应用程序 进行资源的分配的
主从结构的
主:resourcemanager
资源分配的老大 负责资源的分配
从:nodemanager
服从resourcemanager的安排 为应用程序提供资源
代码的结构上分:
hdfs: 分布式文件系统的 NTFS
MAPREDUCE 分布式计算的代码 QQ 微信
YARN 资源调度的 操作系统
common :工具包 通信的协议
搭建一个hadoop集群 启动的时候:
5个:
namenode
d@R_404_5581@ode
secondarynamenode
resourcemanager
nodemanager
安装:
版本:
3.1 最新版本
2.7
2.8
2.7.6
不选最新版本 也不选老版本 中间的一个稳定版本
伪分布式的安装 --- 生产中不用 自己 自己测试的时候
假的分布式 所有的进程全部运行在一个节点上
linux操作 普通用户下
1.安装准备
1)ip
2)主机名
3)映射
4)关闭防火墙和sellinux
vi /etc/sysconfig/selinux
SELINUX=disabled
linux的安全认证 高级运维人员会用到
5)为普通用户添加 sudoers
vi /etc/sudoers
hadoop ALL=(ALL) ALL
6) 切换到普通用户
7)做免密码登录
这里和用户有关的
ssh-keygen
ssh-copy-id model
测试:
ssh model
8)安装jdk
sudo rpm -e java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64 --nodeps
sudo rpm -e java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64 --nodeps
source /etc/profile
9)修改系统的启动级别 3
sudo vi /etc/inittab
注意:所有的安装过程 在你的普通用户下
安装hadoop
1)上传
2)解压
tar -xvzf hadoop-2.7.6.tar.gz
目录介绍:
bin/sbin 脚本命令文件
etc 配置文件
lib 依赖包
share 共享的文档集依赖包
3)修改配置文件
etc/hadoop/
1)hadoop-env.sh
将java的环境变量添加上
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
2)hdfs-site.xml hdfs的相关配置信息
hdfs的副本的个数
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
3)core-site.xml 公共的配置
hdfs的访问的url MysqL连接的url MysqL:jdbc://
hdfs(协议)://主机名:端口(内部通信端口)
<property>
<name>fs.defaultFS</name>
<value>hdfs://model:9000</value>
</property>
4)mapred-site.xml mapreduce的相关配置
cp mapred-site.xml.template mapred-site.xml
mapreduce任务进行资源调度的框架
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5)yarn-site.xml
资源调度的 计算任务的类型
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6)slaves 从节点的信息
一行一个主机名 不要有多余的空格 也不要有多余的换行符
model
4)配置hadoop的环境变量
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
验证
hadoop version
5)格式化hdfs的文件系统
hadoop namenode -format
18/09/27 15:41:40 INFO common.Storage: Storage directory /tmp/hadoop-hadoop/dfs/name has been successfully formatted.
ps:格式化不成功 一致格式化 直到成功 一旦成功 不能重复执行
6)启动
先启动hdfs
start-dfs.sh
启动yarn
start-yarn.sh
验证:
hdfs:
http://namenode:50070
http://model:50070
http://resourcemanager:8088
http://model:8088
完全分布式的安装
集群安装在多个节点上的
1)多个节点的要求:
多个节点的用户名(安装的时候使用的用户/普通用户)一定要统一
多个节点的安装目录统一
集群规划:集群中的各个节点安装的组件有哪些
HDFS yarn
namenode d@R_404_5581@ode secondarynamenode rm nm
hadoop01 namenode resourcemanager
hadoop02 d@R_404_5581@ode secondarynamenode nodemanager
hadoop03 d@R_404_5581@ode nodemanager
hadoop04 d@R_404_5581@ode nodemanager
搭建
准备:
1)ip
2)主机名
3)映射
4)关闭防火墙和sellinux
vi /etc/sysconfig/selinux
SELINUX=disabled
linux的安全认证 高级运维人员会用到
5)为普通用户添加 sudoers
vi /etc/sudoers
hadoop ALL=(ALL) ALL
6) 切换到普通用户
7)做免密码登录
一定切换到普通用户
~/.ssh
这里和用户有关的
4台机器之间 相互都需要做 免密码登录
ssh-keygen
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
ssh-copy-id hadoop04
测试:
ssh hadoop01
ssh hadoop02
ssh hadoop03
ssh hadoop04
source /etc/profile
8)修改系统的启动级别 3
sudo vi /etc/inittab
hadoop的安装:
先装在一个节点上 在进行远程发送
mkdir /home/hadoop/apps
1)安装jdk
sudo rpm -e java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64 --nodeps
sudo rpm -e java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64 --nodeps
source /etc/profile
java -version
2)上传安装包
3)解压hadoop的安装包
tar -xvzf hadoop-2.7.6.tar.gz
4)配置hadoop的环境变量
sudo vi /etc/profile
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
验证
hadoop version
5)修改hadoop的配置文件 6个
$HADOOP_HOME/etc/hadoop/
1)hadoop-env.sh
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
2)core-site.xml 公共的配置文件
hdfs的访问url hdfs://namenode的主机名:9000
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
hdfs的文件的存储路径 包括namenode的信息存储目录 d@R_404_5581@ode的信息存储目录 没有配置 /tmp存储 会造成核心数据的丢失 这个生产环境中一定要配置的
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata</value>
</property>
3)hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/hadoopdata/name</value>
<description>namenode的数据的存储目录</description>
</property>
<property>
<name>dfs.d@R_404[email protected]</name>
<value>/home/hadoop/data/hadoopdata/data</value>
<description>d@R_404_5581@ode 的数据存储目录</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>HDFS 的数据块的副本存储个数</description>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop02:50090</value>
<description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>
</property>
4)mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5)yarn-site.xml
配置的是yarn的主节点的 主机名
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
</property>
6)vi slaves
从节点信息 一行一个 不要有空格 和换行 d@R_404_5581@ode nodemanager
hadoop02
hadoop03
hadoop04
6)远程发送到其他节点
jdk
scp -r jdk1.8.0_73 hadoop02:/home/hadoop/apps/
scp -r jdk1.8.0_73 hadoop03:/home/hadoop/apps/
scp -r jdk1.8.0_73 hadoop04:/home/hadoop/apps/
hadoop:
scp -r hadoop-2.7.6 hadoop02:/home/hadoop/apps/
scp -r hadoop-2.7.6 hadoop03:/home/hadoop/apps/
scp -r hadoop-2.7.6 hadoop04:/home/hadoop/apps/
/etc/profile
sudo scp /etc/profile hadoop02:/etc/
sudo scp /etc/profile hadoop03:/etc/
sudo scp /etc/profile hadoop04:/etc/
4个节点都执行 source /etc/profile
验证:
jdk
java -version
hadoop
hadoop version
7)进行格式化 格式化的是hdfs
在namenode所在的节点 ---hadoop01
hadoop namenode -format
/home/hadoop/data/hadoopdata/name has been successfully formatted.
成功的格式化只能进行一次
8)启动
先启动hdfs:
任意一个节点启动 start-dfs.sh
jps
hadoop01: namenode
hadoop02: secondarynamenode d@R_404_5581@ode
hadoop03:d@R_404_5581@ode
hadoop04:d@R_404_5581@ode
启动yarn:
start-yarn.sh 最好在yarn的主节点执行 hadoop01
验证:
hdfs的网页:
主节点主机名或ip:50070
hadoop01:50070
yarn的网页:
yarn主节点的主机名或ip:8088
集群的关闭和重启的问题
集群关闭:
关闭hdfs:
stop-dfs.sh 任意节点执行
关闭yarn:
stop-yarn.sh 在yarn的主节点执行
集群重启:
不需要格式化
先启动hdfs
再启动yarn
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。