三种运行模式

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文件copyinput目录下. 这些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.查看namenodedatanode是否启动成功

jps

2.查看日志文件在logs目录下

3.使用web端查看hdfs文件系统 

地址其实就是namenode所在的主机的地址

50070web端口. 和前面配置的9000区别开来: 9000datanodenamenode通讯时的端口.

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)    收藏  举报

导航