Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式
Hadoop官方网站 : https://hadoop.apache.org
文档链接 :https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SingleCluster.html
-
4.1本地运行模式
-
4.1.1官方Grep案例
1、在hadoop-2.7.7文件下面创建一个input文件夹
[ge@hadoop101 hadoop-2.7.7]$ mkdir input
2、将Hadoop的xml配置文件复制到input
[ge@hadoop101 hadoop-2.7.7]$ cp etc/hadoop/*.xml input
3、执行share目录下的MapReduce程序
[ge@hadoop101 hadoop-2.7.7]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar grep input output 'dfs[a-z.]+'
4、查看输出结果
[ge@hadoop101 hadoop-2.7.7]$ cat output/*
-
4.1.2官方WordCount案例
1、在hadoop-2.7.7文件下面创建一个wcinput文件夹
[ge@hadoop101 hadoop-2.7.7]$ mkdir wcinput
2、在wcinput文件夹下创建一个wc.input文件
[ge@hadoop101 hadoop-2.7.7]$ cd wcinput/
[ge@hadoop101 wcinput]$ touch wc.input
3、编辑wc.input文件
[ge@hadoop101 wcinput]$ vim wc.input
添加下面内容
hadoop yarn hadoop mapreduce ge ge
保存退出:wq
4、回到Hadoop 目录 /opt/module/hadoop-2.7.7
5、执行程序
[ge@hadoop101 hadoop-2.7.7]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount wcinput/ wcoutput
6、查看结果
[ge@hadoop101 hadoop-2.7.7]$ cat wcoutput/*
-
4.2伪分布式运行模式
-
4.2.1启动HDFS并运行MapRedcue程序
1、分析
(1)配置集群
(2)启动、测试集群增、删、查
(3)执行WordCount案例
2、执行步骤
(1)配置集群
(a)配置:hadoop-env.sh
Linux系统中获得JDK的安装路径
[ge@hadoop101 ~]$ echo $JAVA_HOME /opt/module/jdk1.8.0_161
修改JAVA_HOME路径
export JAVA_HOME=/opt/module/jdk1.8.0_161
(b)配置:core-site.xml
<!--指定HDFS中NameNode的地址--> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop101:9000</value> </property> <!--指定Hadoop运行时产生文件的存储目录--> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.7.7/data/tmp</value> </property>
(c)配置hdfs-site.xml
<!--指定HDFS副本的数量--> <property> <name>dfs.replication</name> <value>1</value> </property>
(2)启动集群
(a)格式化NameNode(第一次启动时格式化,以后不要总格式化)
[ge@hadoop101 hadoop-2.7.7]$ bin/hdfs namenode -format
(b)启动NameNode
[ge@hadoop101 hadoop-2.7.7]$ hadoop-daemon.sh start namenode
(c)启动DataNode
[ge@hadoop101 hadoop-2.7.7]$ hadoop-daemon.sh start datanode
(3)查看集群
(a)查看是否启动成功
[ge@hadoop101 hadoop-2.7.7]$ jps
4738 NameNode
4884 DataNode
4964 Jps
注意:jps是JDK中的命令,不是Linux命令,不安装JDK,不能使用jps.
(b)web端查看HDFS文件系统
http://hadoop101:50070/dfshealth.html#tab-overview
如果不能查看,看如下帖子处理
https://www.cnblogs.com/zlslch/p/6604189.html
(c)查看产生的Log日志s
说明:当企业遇到Bug时,经常根据日志提示信息分析问题、解决bug
当前目录:/opt/module/hadoop-2.7.7/logs
[ge@hadoop101 logs]$ ll 总用量 64 -rw-rw-r--. 1 ge ge 24549 3月 8 14:31 hadoop-ge-datanode-hadoop101.log -rw-rw-r--. 1 ge ge 713 3月 8 14:31 hadoop-ge-datanode-hadoop101.out -rw-rw-r--. 1 ge ge 28509 3月 8 14:31 hadoop-ge-namenode-hadoop101.log -rw-rw-r--. 1 ge ge 713 3月 8 14:27 hadoop-ge-namenode-hadoop101.out -rw-rw-r--. 1 ge ge 761 3月 8 14:26 hadoop-ge-nodename-hadoop101.out -rw-rw-r--. 1 ge ge 0 3月 8 14:27 SecurityAuth-ge.audit
[ge@hadoop101 logs]$ cat hadoop-ge-datanode-hadoop101.log
(d)思考:为什么不能一直格式化NameNode,格式化NameNode,要注意什么?
格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到以往数据。所以,格式化NameNode时,一点要先删除data数据和log日志,然后再格式化NameNode。
-
4.2.2启动YARN并运行MapRedcue程序
1、分析
(1)配置集群
(2)启动、测试集群增、删、查
(3)执行WordCount案例
2、执行步骤
(1)配置集群
(a)配置:yarn-env.sh
Linux系统中获得JDK的安装路径
[ge@hadoop101 ~]$ echo $JAVA_HOME /opt/module/jdk1.8.0_161
修改JAVA_HOME路径
export JAVA_HOME=/opt/module/jdk1.8.0_161
(b)配置yarn-site.xml
<!--Reducer获取数据的方式--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!--指定YARN的ResourceManager的地址--> <property> <name>yarn.nodemanager.hostname</name> <value>hadoop101</value> </property>
(c)配置:mapres-env.sh
配置一下JAVA_HOME,修改JAVA_HOME路径
export JAVA_HOME=/opt/module/jdk1.8.0_161
(d)配置:(对mapred-site.xml.template重新命名为)mapred-site.xml
[ge@hadoop101 hadoop]$ mv mapred-site.xml.template mapred-site.xml
[ge@hadoop101 hadoop]$ vim mapred-site.xml
<configuration>
<!--指定MR运行在YARN上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(2)启动集群
(a)启动前,必须保证NameNode 和 DataNode 已经启动
(b)启动resourcemanager
[ge@hadoop101 hadoop-2.7.7]$ sbin/yarn-daemon.sh start resourcemanager
(c)启动NodeManager
[ge@hadoop101 hadoop-2.7.7]$ sbin/yarn-daemon.sh start nodemanager
(3)集群操作
(a)YARN的浏览器页面查看,如下图所示
-
4.3完全分布式运行模式(开发重点)
分析:
1)准备三台客户机(关闭防火墙,静态ip,主机名称)
2)安装JDK
3)配置环境变量
4)安装Hadoop
5)配置环境变量
6)配置集群
7)单点启动
8)配置ssh
9)群起并测试集群
-
4.3.1 虚拟机准备
详见3.1章
-
4.3.2 编写集群分发脚本xsync
1、scp(secure copy)安全拷贝
(1)scp 定义:
scp 可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
(2)基本语法
scp -r $spdir/$fname $user@hadoop$host:$spdir/$fname
命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
(3)案例实操
(a)在hadoop1上,将hadoop1中 /opt/module 目录下的软件拷贝到hadoop102上