1、准备工作:
阿里云服务器:
操作系统:linux CentOS 7.4 64位
Cpu:1核
内存:2G
硬盘:40G
ip:47.105.***.***
jdk-8u60-linux-x64.tar.gz
hadoop-2.7.2.tar.gz
2、环境搭建步骤:
2.1、首先更改主机名,目的是为了方便管理
添加IP和主机名映射(vim /etc/hosts),在配置文件中使用主机名的话,这个映射必须加。必须使用私有地址
注:主机名称更改之后,要重启(reboot)才会生效。
2.2、关闭防火墙
2.3、在opt下创建文件夹
2.4、安装JDK
解压jdk到/opt/module目录下
配置jdk环境变量
打开/etc/profile 文件,在 profie 文件末尾添加 jdk 路径:
让修改后的文件生效:
测试安装成功
2.5、安装Hadoop
解压hadoop文件到/opt/module下面
在/opt/module/hadoop-2.7.2/etc/hadoop 路径下配置 hadoop-env.sh
将hadoop添加到环境变量,打开/etc/profile 文件(vi /etc/profile),在 profie 文件末尾添加 jdk 路径.
让修改后的文件生效:
3、运行模式:
Hadoop 运行模式:
(1)本地模式(默认模式): 不需要启用单独进程,直接可以运行,测试和开发时使用。
(2)伪分布式模式: 等同于完全分布式,只有一个节点。
(3)完全分布式模式: 多个节点一起运行。
4、本地模式
4.1、官方grep案例
创建在 hadoop-2.7.2 文件下面创建一个 input 文件夹
将 hadoop 的 xml 配置文件复制到 input
执行 share 目录下的 mapreduce 程序(将input下所有dfs开头a-z接续的文件都拷贝到output下)
查看输出结果(output下有2个文件,一个是存放内容的,一个是成功标记文件)
4.2、官方wordcount案例
创建在 hadoop-2.7.2 文件下面创建一个 wcinput 文件夹,在 wcinput 文件下创建一个 wc.input 文件
编辑vim wc.input 文件,输入如下内容
hadoop yarn
hadoop mapreduce
atguigu
atguigu
回到 hadoop 目录/opt/module/hadoop-2.7.2,执行以下命令:
查看结果(统计出每个单词的个数)
5、伪分布式模式(只有一个节点)
5.1、启动 HDFS 并运行 MapReduce 程序
除了完成以上环境搭建后还需要完成以下几步:
5.1.1、配置集群
1)、配置:hadoop-env.sh
2)、配置:core-site.xml
3)、配置:hdfs-site.xml
5.1.2、启动集群
1)、格式化 namenode(第一次启动时格式化,以后就不要总格式化)
2)、启动 namenode
3)、启动 datanode
5.1.3、查看集群
1)、查看是否启动成功
2)、查看产生的 log 日志
3)、Web端查看hdfs文件系统
5.1.4、操作集群
1)、在 hdfs 文件系统上创建一个 input 文件夹
2)、将测试文件内容上传到文件系统上
注:wcinput/wc.input为本地文件目录,/user/root/input为hdfs文件节点目录。
本地运行时使用的本地文件,而hadoop运行时要使用hdfs文件。
3)、运行 mapreduce 程序
4)、查看输出结果
命令行查看:
浏览器查看:
5)、将测试文件内容下载到本地
6)、删除输出结果
5.2、YARN 上运行 MapReduce 程序
除了完成以上环境搭建后还需要完成以下几步:
5.2.1、配置集群
1)、配置 yarn-env.sh和mapred-env.sh
2)、配置:yarn-site.xml
3)、配置: (对 mapred-site.xml.template 重新命名为) mapred-site.xml
vi mapred-site.xml
5.2.2、启动集群
启动resourcemanager和nodemanager
5.2.3、集群操作
1)、yarn 的浏览器页面查看
2)、删除文件系统上的 output 文件
3)、执行 mapreduce 程序
注:此时跑的与之前的不同,控制台打印内容不同,此时时真正的mr资源调用.
4)、查看运行结果
5.3、配置文件说明
Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认 配置值时,才需要修改自定义配置文件,更改相应属性值。
1)、默认配置文件:存放在 hadoop 相应的 jar 包中
[core-default.xml]
hadoop-common-2.7.2.jar/ core-default.xml
[hdfs-default.xml]
hadoop-hdfs-2.7.2.jar/ hdfs-default.xml
[yarn-default.xml]
hadoop-yarn-common-2.7.2.jar/ yarn-default.xml
[core-default.xml]
hadoop-mapreduce-client-core-2.7.2.jar/ core-default.xm
2)、自定义配置文件:存放在$HADOOP_HOME/etc/hadoop
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml