Hadoop - 入门
【组成】:HDFS 分布式文件系统/存储海量数据
MapReduce 并行处理框架/实现任务分解/调度
【文件操作流程】:
读取:客户端 —— 请求NameNode —— 返回元数据位置 —— 客户端 —— 直接读取block块数据进行组装
写入:客户端 —— 请求NameNode —— 可用DataNodes —— 客户端拆分数据 —— 直接将拆分数据写入DataNodes —— 复制元数据3份
特点:数据冗余/硬件容错,流式数据访问[写入后无法修改只能删除后重新写入],适用于 读多写少 大数据文件存储
【配置】:conf目录/hadoop-2.6.4/etc/hadoop
1. hadoop-env.sh 配置java环境
export JAVA_HOME=${JAVA_HOME:-"/usr/java/jdk1.7.0_55"} # modified by YangYT
2. core-site.xml 配置工作目录/源数据/节点访问
工作目录:<name>hadoop.tmp.dir</name>
<value>/r2/hadoopdata/namenode</value>
源数据:<name>dfs.name.dir</name>
<value>/hadoop/name</value>
节点访问:<name>fs.defaultFS</name>
<value>hdfs://BFGD-Cluster</value>
回收站:<name>fs.trash.interval</name>
<value>1440</value> 24*60 默认保留1天
3. hdfs-site.xml 配置数据存放目录
<name>dfs.datanode.data.dir</name>
<value>节点目录</value>
4. mapred-site.xml 任务调度器
<name>mapreduce.jobhistory.address</name>
<value>slave1:10020</value>
5. /user/root/.Trash/ hdfs回收站
【启动】:hadoop-2.6.4/sbin
namenode格式化:hadoop fs -format
启动:start-all.sh
查看运行:jps JobTracker
Jps
DataNode
TaskTracker
NameNode
SecondaryNameNode
【命令】格式:hadoop fs -[命令]
常用:hadoop fs -ls / 查看文件根目录
hadoop fs -rm 删除
hadoop fs -cat
hadoop fs -put 提交文件
hadoop fs -get 取文件
hadoop dfsadmin -report 查看HDFS信息
hdfs dfs -expunge 清空回收站
hadoop dfs -mv /user/grid/.Trash/Current/user/grid/in /user/grid/in 相当去取出来
hadoop fs -du -sm /user/root/.Trash 查看回收站
hadoop fs -rm -r -skipTrash 目录/文件 直接删除
【HDFS】: 数据块:64MB
NameNode:管理节点/存放文件元数据
1. 文件与数据块的映射表
2. 数据块与数据节点的映射表
SecondaryNameNode:备份管理节点/定期同步元数据映像文件和修改日志
Fslmage/Editlog
当NameNode发生故障时备胎转正
DataNode:存放数据块
数据副本:容错机制/每个数据块有3个备份/分布在2个服务器上的3个节点
心跳检测:DataNode定期向NameNode发送心跳消息/节点状态信息
【MapReduce原理】:Map 分拆小任务 各自统计 input split
并行执行
Reduce 合并结果 再次统计 output
1. Job&Task
2. JobTracker 管理节点
Map任务 —— Map TaskTracker
Reduce任务 —— ReduceTaskTracker 在节点上具体得任务
3. TaskTracker[节点]
JobTracker:1. 作业调度
2. 分配任务/监控任务执行进度
3. 监控TaskTracker状态
容错机制:1. 重复执行 x4后放弃
2. 推测执行
【MapReduce用例】1. wordcount单词计数
【HDFS回收站】:Hadoop的回收站trash功能默认是关闭的,所以需要在core-site.xml中手动开启。
1、修改配置core-site.xml,增加:
<property>
<name>fs.trash.interval</name>
<value>1440</value>
<description>Number of minutes between trash checkpoints.
If zero, the trash feature is disabled.
</description>
</property>
默认是0,单位是分钟,这里设置为1天。删除数据rm后,会将数据move到当前文件夹下的.Trash目录。
2、测试
1)新建目录input hadoop fs -mkdir input 创建目录
2)上传文件 hadoop fs -copyFromLocal /data/soft/file0* input
3)删除目录input hadoop fs -rmr input 删除目录input
Moved to trash: hdfs://master:9000/user/root/input
4)查看当前目录 hadoop fs -ls
drwxr-xr-x - root supergroup 0 2011-02-12 22:17 /user/root/.Trash 回收站
发现input删除了,多了一个目录.Trash
5)恢复删除的目录 hadoop fs -mv /user/root/.Trash/Current/user/root/input /user/root/input
6)查看恢复的数据 hadoop fs -ls input
-rw-r--r-- 3 root supergroup 22 2011-02-12 17:40 /user/root/input/file01
-rw-r--r-- 3 root supergroup 28 2011-02-12 17:40 /user/root/input/file02
7)删除.Trash目录(清理垃圾)
hadoop fs -rmr .Trash
zookerper:/usr/local/hadoop/zookeeper-3.4.6
HBase下的zookeeper http://localhost:60010/zk.jsp —— 页面监控。IP+端口访问
/usr/local/hadoop/zookeeper-3.4.6/conf/zoo.conf —— 配置
- 点赞
- 收藏
- 关注作者
评论(0)