Hadoop基础

1.什么是大数据
大数据核心含义是一种技术革新
随着互联网时代的深入,产生了越来越多的数据,比如:
1.电商产生的大量用户浏览、购物行为
2.移动运营商记录了大量的用户上网行为
3.网络舆情——营销支撑
4.金融系统征信分析
。。。。。。
上述的这些需求,用以前的传统技术无法胜任,需要有一个全新的技术体系来支撑,再次背景之下,就产生了一系列针对海量数据进行处理的技术
总结:“大数据”这个概念核心是指一系列针对海量数据进行处理的新技术
大数据技术的主要功能:处理海量数据

2.大数据应用场景
个性化的推荐:基于海量的用户行为、用户画像实现精准推荐
淘宝:已购买宝贝,系统查询功能的实现都需要依赖大数据技术,需要快速响应的海量数据库系统

3.大数据技术简介
大数据技术基本上都需要解决两个核心需求:
1.数据存储
一般都是采用分布式存储
将数据(文件)分散到一个集群上的N多台机器上存储
2.数据运算
什么叫运算:
有一堆用户浏览商品的行为记录,需要统计出最热门的TOP100个商品;
每个人一次访问平均浏览了多少个商品;
每一个商品被人浏览时,同事还会有哪些商品跟随着被浏览;
上述这些数据分析需求,最终都会转化成程序来实现,程序的运行最终又是机器CPU+内存+磁盘等硬件资源的运行
在海量数据的场景下,单机资源无法满足运算的需求,所以,在大数据体系下,一切数据运算的逻辑实现都得靠:分布式运算系统

4.什么是Hadoop
上文所述,分布式存储,分布式运算,都应该由成熟的框架来提供
Hadoop就是其中的一种框架
Hadoop就能提供分布式存储以及分布式运算的功能
1.Hadoop中有一个组件:HDFS——分布式存储
2.Hadoop中有一个组件:MAPREDUCE——分布式运算
3.HADOOP中有一个组件:YARN——为MAPREDUCE提供硬件资源调度
但是HADOOP的核心组件,极为底层,如果直接基于这个底层框架来开发我们的数据分析逻辑,比较繁琐,开发效率很低,所以,在HADOOP这个底层框架之上,又衍生了大量的快捷开发工具:
1.HIVE
可以让用户只要写SQL来表达数据处理逻辑即可

5.HDFS快速入门
5.1HDFS集群的安装
5.1.1HDFS集群中机器的角色
两类核心角色:
1.主节点(1台):NAME NODE
2.从节点(N多台):DATA NODE
其实就是在机器上安装一个软件,又叫网络服务,分别监听各自机器的端口
5.1.2HDFS安装
1.准备机器,4台机器,1台NN,3台DN
准备的内容,主机名,IP地址,域名映射,防火墙,JDK安装
2.上传Hadoop的安装包
上传到一台机器就行了,nn
3.解压安装包到/root/apps
4.修改配置文件
进去 HADOOPHOME/etc/hadoop1.hadoopenv.shjavahome2.coresite.xml3.hdfssite.xmlsecondary5.6.namenodenamenodenamenode H A D O O P H O M E / e t c / h a d o o p 1. 修 改 h a d o o p − e n v . s h j a v a h o m e 2. 修 改 c o r e − s i t e . x m l 3. 修 改 h d f s − s i t e . x m l s e c o n d a r y 5. 复 制 修 改 好 的 安 装 包 到 其 他 节 点 6. 初 始 化 n a m e n o d e n a m e n o d e 在 机 器 上 运 行 时 , 会 记 录 一 些 数 据 , 数 据 的 记 录 , 又 一 个 人 特 定 的 目 录 机 构 , 那 么 应 该 在 n a m e n o d e 启 动 之 前 先 构 造 出 这 样 一 个 目 录 HADOOP_HOME/bin/hadoop namenode-format
7.启动集群
启动namenode节点
hadoop-daemon.sh start namenode
启动所有datenode节点
hadoop-daemon.sh start datanode
可以访问namenode提供的信息页面
hdp-nn-01:50070
出错排查日志
slaves 配置datanode
start-dfs.sh
stop-dfs.sh

5.2Hadoop源码文件介绍
share mapreduce hdfs yarn 的地方
lib 本地库,C语言,和Linux系统底层交互的一些库
.txt 发行许可
include 本地库的一些依赖
bin 一些功能命令
sbin 移动、停止、重启命令。系统命令
etc 配置文件

6.自定义HDFS分布式存储系统
代码TODO

7.HDFS的工作机制简介
7.1HDFS的基本特性
提供文件目录结构
namenode只负责管理元数据
7.2HDFS的基本操作
7.2.1如何启动一个命令行的hdfs客户端
任何一台机器上,只要有Hadoop的安装包,就可以启动
启动命令 hadoop fs 参数
7.3命令行客户端的常用功能
1.上传文件到集群中
hadoop fs -put 本地路径 hdfs上的路径
hadoop fs -put /root/a.txt /
相同功能的另一种写法
hadoop fs -copyFromLocal 本地路径 hdfs上的路径
2.下载文件到本地
hadoop fs -get hdfs上的路径
hadoop fs -get/a.txt
相同功能的另一种写法
hadoop fs -copyToLocal hdfs上的路径
3.查看hdfs中的目录信息
hadoop fs -ls /
4.创建文件
hadoop fs -mkdir /aaa
hadoop fs -mkdir -p /bbb/ccc
5.删除文件夹
hadoop fs -rm -r /bbb
hadoop fs -rm 文件名
6.查看文本文件内容
hadoop fs -cat /a.txt

8.HDSF如何动态扩容
扩容就是增加datanode
datanode可以在线扩容
1.准备一台服务器,配置好环境:网络、IP、防火墙、免密登陆、JDK
2.从原集群的任意一台机器上复制Hadoop安装包到新机器
3.在原集群的slaves文件中添加新机器的主机名
4.在新机器上启动datanode即可
A.直接用start-dfs.sh
B.或者在新机器上手动启动datanode进程 hadoop-daemon.sh start data

9.HDFS的一些配置属性
1.块大小:128M
HDFS中存储的文件块可以有多个副本,默认3个
参数:dfs.blocksize 默认:134217728
此参数用户客户端 也就是说,HDFS里面存储的文件块的块大小完全由客户端决定
2.副本数量
HDFS中存储的文件块的副本数量,默认3个
参数:dfs.replication 默认:3
第一个副本:存在离客户端最近的一台datanode上
第二个副本:存在跟上一台datanode相同的机架的另一台datanode上
第三个副本:存在另一个机架上的某台datanode上
此参数用户客户端 也就是说,HDFS里面存储的文件块的副本数量完全由客户端决定
3.元数据存储目录
元数据存储目录就是namenode的工作目录,由以下参数决定
参数:dfs.namenode.name.dir 默认:file:// hadoop.tmp.dir/dfs/namenamenode使namenodenamenodedfs.namenode.name.dir/mnt/disk1,/mnt/disk2,/mnt/disk3,nfs://namenode4.datanodedatanodedfs.datanode.data.dirfile:// h a d o o p . t m p . d i r / d f s / n a m e 此 参 数 是 给 n a m e n o d e 服 务 端 程 序 使 用 此 参 数 默 认 值 在 生 产 中 并 不 合 适 , 应 该 给 n a m e n o d e 专 门 配 置 一 个 安 全 的 位 置 作 为 工 作 目 录 正 确 做 法 : 应 该 给 n a m e n o d e 配 置 多 个 目 录 , 而 且 这 多 个 目 录 应 该 挂 在 多 个 磁 盘 d f s . n a m e n o d e . n a m e . d i r / m n t / d i s k 1 , / m n t / d i s k 2 , / m n t / d i s k 3 , n f s : / / 配 置 多 个 目 录 后 , n a m e n o d e 会 往 各 目 录 中 写 入 相 同 的 数 据 作 为 冗 余 备 份 4. d a t a n o d e 文 件 块 存 储 目 录 d a t a n o d e 的 工 作 目 录 也 是 参 数 可 配 的 参 数 : d f s . d a t a n o d e . d a t a . d i r 默 认 : f i l e : / / {hadoop.tmp.dir}/dfs/data
默认配置在生产系统中并不合适,应该:
让datanode的工作目录指定到服务器上用于存储数据的多块数据磁盘上

dfs.datanode.data.dir
/data/disk1,/data/disk2,/data/disk3

配置多个目录后,datanode会往各目录中轮询写入不同的数据,以扩大datanode自身的容量

10.写数据原理解析
这里写图片描述

11.读数据原理解析
这里写图片描述

12.namenode工作原理解析
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值