0、hadoop1.x和hadoop2.x区别
Hadoop1.x的核心组件 与Hadoop2.x核心组件不一样
Hadoop1.x:hdfs、common、mapreduce(mapreduce同时处理业务逻辑 运算和资源调度、耦合性较大)
Hadoop2.x:hdfs、yarn、common、mapreduce(增加yarn、yarn只负责资源的调度、mapreduce只负责运算)
1、概念理解
HDFS组成:namenode(存储文件的元数据)、datanode(本地储存数据)、secondary namenode(用来监控hdfs状态的辅助后台程序,每隔一段时间获取hdfs元数据的快照)
YARN组成:resourcemanager(1.处理客户端请求 2.监控nodemanager 3. 启动或者监控applicationmaster 4.资源的分配与调度)、nodemanger(1.管理单个节点上的资源、
2.处理来自resourcemanager的命令、3.处理来自applicationmaster的命令)、applicationmaster(1.负责数据的切分 2.为应用程序申请资源并分配给内部任务 3.任务的监控与容错)、
container(是yarn中资源抽象、它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等)
MapReduce组成: map阶段、reduce阶段
1)Map阶段并行处理输入数据
2)Reduce阶段对Map结果进行汇总
2、克隆一台虚拟机
ip地址:192.168.1.105
主机名:hadoop105
用户名:atguigu
配置atguigu具有root权限
关闭防火墙
安装jdk
安装hadoop
3、本地运行Hadoop 案例(3.1.2 官方wordcount案例)
1. 创建在hadoop-2.7.2文件下面创建一个wcinput文件夹
[atguigu@hadoop101 hadoop-2.7.2]$ mkdir wcinput
2. 在wcinput文件下创建一个wc.input文件
[atguigu@hadoop101 hadoop-2.7.2]$ cd wcinput
[atguigu@hadoop101 wcinput]$ touch wc.input
3. 编辑wc.input文件
[atguigu@hadoop101 wcinput]$ vi wc.input
在文件中输入如下内容
hadoop yarn
hadoop mapreduce
atguigu
atguigu
保存退出::wq
4. 回到Hadoop目录/opt/module/hadoop-2.7.2
5. 执行程序
[atguigu@hadoop101 hadoop-2.7.2]$ hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
6. 查看结果
[atguigu@hadoop101 hadoop-2.7.2]$ cat wcoutput/part-r-00000
atguigu 2
hadoop 2
mapreduce 1
yarn 1
4、伪分布式运行Hadoop 案例(3.2.1 HDFS上运行MapReduce 程序)
(1)配置集群
(a)配置:hadoop-env.sh
Linux系统中获取JDK的安装路径:
[atguigu@ hadoop101 ~]# echo $JAVA_HOME
/opt/module/jdk1.8.0_144
修改JAVA_HOME 路径:
export JAVA_HOME=/opt/module/jdk1.8.0_144
(b)配置:core-site.xml
[atguigu@hadoop101 hadoop-2.7.2]$ cd data/tmp/dfs/data/current/
clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837
注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。所以,格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode。
(4)操作集群
(a)在HDFS文件系统上创建一个input文件夹
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/atguigu/input
(b)将测试文件内容上传到文件系统上
[atguigu@hadoop101 hadoop-2.7.2]KaTeX parse error: Undefined control sequence: \[ at position 78: …)查看上传的文件是否正确 \̲[̲atguigu@hadoop1… bin/hdfs dfs -ls /user/atguigu/input/
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/atguigu/ input/wc.input
(d)运行MapReduce程序
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/input/ /user/atguigu/output
(e)查看输出结果
命令行查看:
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/atguigu/output/*
浏览器查看,如图2-34所示
图2-34 查看output文件
(f)将测试文件内容下载到本地
[atguigu@hadoop101 hadoop-2.7.2]$ hdfs dfs -get /user/atguigu/output/part-r-00000 ./wcoutput/
(g)删除输出结果
[atguigu@hadoop101 hadoop-2.7.2]$ hdfs dfs -rm -r /user/atguigu/output