- 大数据的四个特性
- 数据量大
- 种类多
- 速度快: 产生数据的速度快,要求时延小
- 价值高: 整体价值,单条记录没有价值
2.什么是hadoop
大数据存储和计算的一整套解决方案,软件平台
3.hadoop的核心组件
- Common(基础设施)
- HDFS: 分布式的文件系统(海量数据的存储)
- MapReduce: 分布式的计算框架(海量数据离线运算)
- Yarn: 分布式资源调度系统(2.x)
- 分布式和集群区别
- 负载均衡集群
- 分布式:
利用多个节点共同协作完成一项或多项具体业务功能的系统就是分布式系统。
5.hadoop集群搭建
5.1 hdfs 组成
- namenode(nn): 存放元数据信息,存储文件名称,文件属性,文件的块列表,所在的dn的节点列表
- datanode(dn): 存放具体的block的,校验文件。
- secondarynamenode(2nn): 降低namenode压力,辅助作用
5.2 yarn组成
- ResourceManager(rm): 整个集群的资源调度
- NodeManager(nm): 单个节点的资源调度
启动集群
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
成功检测
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
6.高可用
问题:
完全分布式: namenode存在某个服务器上且只有一个,如果该节点宕机,整个集群瘫痪。存在单点故障问题。
解决:
同时启动多个namenode,但是某个时刻管理集群的只能有一个.
namenode的状态:
active(活跃的,管理集群)
standby(热备): 随时切换状态到active, 元数据和active的元数据保持一致。 搭建共享存储系统(active写入元数据,standby负责监听并写入磁盘和内存)
safemode(安全模式)
7.Federation 机制
问题:
集群扩展问题. 单点故障,每个namenode的内存和磁盘受限,业务之间干扰问题,性能问题,称为集群扩展的瓶颈。
解决:
同时存在多个namenode,但是每个负责管理部分业务,共享datanode的信息。
好处:
1.集群便于扩展
2.业务分离减少干扰
3.性能更高
缺点:
不能解决单点故障问题
8.hdfs介绍
分而治之: 大文件分布式存储到各个节点
**- 分散存储
-
冗余备份**
-
hdfs架构(主从架构)
-
namenode(nn) master
- 保存元数据信息: 目录树,文件的名称,文件的属性,文件的块信息,block的存放列表
- 接受客户端的请求和响应
- 传递命令给datanode
-
datanode(dn) slave
- 存储具体的block信息,block的校验文件
- 真正执行读写的位置
- 定期汇报节点的block状态
-
secondarynamenode(2nn)
- 辅助namenode,减轻压力
-
适合一次写入,多次读出,不支持修改,但是支持追加。
9.shell操作
常用命令:
hadoop fs :运行fs
hdfs dfs:运行fs的命令
hdfs dfsadmin -report: 报告整个集群的状态
hdfs getconf -confKey key:获取hdfs集群的配置信息
1.ls
hdfs dfs -ls -R /:递归展示所有内容
2.mkdir
hdfs dfs -mkdir -p /aa/bb/cc:级联创建
3.put
hdfs dfs -put a.txt /:上传
4.get
hdfs dfs -get /a.txt:下载
5.copyFromLocal(从本地文件系统复制到hdfs文件系统)
等同于put
6.copyToLocal(从hdfs文件系统复制到本地文件系统)
等同于get
7.cp:复制(hdfs文件系统)
8.mv:移动(hdfs文件系统)
9.moveFromLocal
10.moveToLocal
11.getMerge: 合并下载
hdfs dfs -getmerge /merge/*.txt a.txt
12.appendToFile:追加内容
hdfs dfs -appendToFile a.txt /merge/a.txt
13.cat:查看文件内容
hdfs dfs -cat /merge/a.txt
14.rm:删除
hdfs dfs -rm -r /merge
15.rmdir:删除空目录
16.text: 字符形式展示文件内容
17.setrep:设置副本的数量
hdfs dfs -setrep 2 /a.tar.gz
- java api操作hdfs
1.复制hadoop-eclipse-plugin.jar --> eclipse/plugins
2.windows中安装hadoop
解压非中文路径下–配置环境变量
3.eclipse–>preferences–>hadoop map/reduce
4.show view -->mapreduce
FileSystem
Configration
代表client与文件系统连接的配置对象
-
默认配置
1.configration对象中默认的配置
2.common.jar/hdfs.jar/map.jar/yarn.jar
core-default.xml
hdfs-deafult.xml
mapred-default.xml
yarn-default.xml
3.自定义一些xml文件,放置在classpath下
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml -
自定义配置
- 如果是xml文件
conf.addResource(“core-aaa.xml”); - 使用conf方法
conf.set(“fs.defaultFS”, “hdfs://hdp01:9000”);
- 如果是xml文件
12