三种运行模式
1.本地运行模式
-默认模式。
-不对配置文件进行修改。
-使用本地文件系统,而不是分布式文件系统。
-Hadoop不会启动NameNode、DataNode、JobTracker、TaskTracker等守护进程,Map()和Reduce()任务作为同一个进程的不同部分来执行的。
-用于对MapReduce程序的逻辑进行调试,确保程序的正确。
1.进入Hadoop
的安装目录
cd /opt/module/hadoop-2.7.2
2.在当前目录下创建目录input
. 这个文件夹将来用来存放要统计的文本文件.
mkdir input
3.配置文件
vim etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/module/jdk-14
4.把etc/hadoop
下的所有xml
文件copy
到input
目录下. 这些xml
就是我们要统计的文本
cp etc/hadoop/*.xml input
5.执行share
目录下MapReduce
程序
注:output 目录不能存在
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar grep input output 'dfs[a-z.]+'
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount input out1
6.查看结果
cat output/*
2.伪分布运行运行模式
2.1 在HDFS
上运行MapReduce
程序
配置集群:
1.在etc/hadoop/hadoop-env.sh
中配置JAVA_HOME
变量
vim /opt/module/hadoop-2.7.6/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/module/jdk-14
2.配置core-site.xml
(核心站点)
vim etc/hadoop/core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<!-- 地址要根据自己实际情况来写. 具体的ip地址也是可以的 -->
<value>hdfs://hadoop01:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.6/data/tmp</value>
</property>
3.配置hdfs-site.xml
(hdfs
站点)
vim etc/hadoop/hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
启动集群
1.格式化 NameNode
.
hdfs namenode -format
2.启动 namenode
hadoop-daemon.sh start namenode
3. 启动 datanode
hadoop-daemon.sh start datanode
查看集群
1.查看namenode
和datanode
是否启动成功
jps
2.查看日志文件在logs
目录下
3.使用web
端查看hdfs
文件系统
地址其实就是namenode
所在的主机的地址
50070
是web
端口. 和前面配置的9000
区别开来: 9000
是datanode
与namenode
通讯时的端口.
http://172.30.34.209:50070/
2.2 在Yarn
上运行MapReduce
程序
集群配置
1. 在etc/haddop/yarn-env.sh
上配置JAVA_HOME
vim mapred-env.sh
export JAVA_HOME=/opt/module/jdk-14
2. 配置yarn-site.xml
vim etc/haddop/yarn-site.xml
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<!-- 主机地址要根据实际情况来定 -->
<value>hadoop01</value>
</property>
3. 配置/etc/hadoop/mapred-site.xml
(1)复制出来一个/etc/hadoop/mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
(2)配置/etc/hadoop/mapred-site.xml
<!-- 指定MapReduce程序运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
4. 启动resourcemanager
yarn-daemon.sh start resourcemanager
5. 启动resourcemanager
yarn-daemon.sh start nodemanager
2.3 操作集群:在集群上运行wordcount
程序
1.在本地创建一个文件words.txt
, 文件内容如下:(内容随意)
3. 把words.txt
上传到hdfs
系统上的/input
目录下
hadoop fs -put input/word.txt /
4. 查看是否上传成功
方法1:
hadoop fs
-ls /input
方法2: 使用web
端查看: http://hadoop01:50070
5.在集群上运行wordcount
程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /word.txt /output
6.查看输出结果
方法1: 直接在hdfs
系统上查看
hdfs dfs -cat /output/part-r-00000
方法2: 把输出结果下载到本地之后查看
hdfs dfs -get /output ./
posted on 2020-10-31 19:18 happygril3 阅读(710) 评论(0) 收藏 举报