hadoop本地、伪分布、完全分布式运行模式的基础配置

在进行配置之前需要知道、了解Hadoop文件的作用

名称描述
bin存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本
etcHadoop的配置文件目录,存放Hadoop的配置文件
lib存放Hadoop的本地库(对数据进行压缩解压缩功能)
sbin存放启动或停止Hadoop相关服务的脚本
share存放Hadoop的依赖jar包、文档、和官方案例

Linux系统必须安装jdk,和Hadoop ,本人使用的是
-------jdk-8u144-linux-x64.tar.gz
-------hadoop-2.7.2.tar.gz

hadoop本地运行模式的基础配置

Grep案例

需求: 1.在hadoop下创建一个文件夹
2.将Hadoop中的xml文件复制到创建的文件夹中
3.执行mapreduce,得到以dfs开头的文件

所有命令的执行都在hadoop解压目录下

[hadoop01@hadoop01 hadoop-2.7.2]$ mkdir input
[hadoop01@hadoop01 hadoop-2.7.2]$ cp etc/hadoop/*.xml input/
[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'

[hadoop01@hadoop01 hadoop-2.7.2]$ cat output/*
1	dfsadmin

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
## bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar 表示执行的命令在哪
## grep 过滤
## input 查找的目标文件
## output 得到结果后保存在哪
## 在input文件夹中查找'dfs[a-z.]+'的文件,并将结果保存在output中
WordCount案例

需求:统计wc.input文件中词语的数量

wc.input

[hadoop01@hadoop01 hadoop-2.7.2]$ vim wc.input

hadoop yarn
hadoop mapreduce
jinghang
jinghang
:wq     

执行过程:

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput/ wcoutput/

[hadoop01@hadoop01 hadoop-2.7.2]$ cat wcoutput/part-r-00000 
hadoop	2
jinghang	2
mapreduce	1
yarn	1
[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput/ wcoutput/

##  bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar 表示执行的命令在哪
## wordcount 统计词语出现的个数
## wcinput/ 统计哪里的文件
## wcoutput/ 输出的结果保存在哪里
## 统计wcinput/下文件中文件词语出现的次数,结果保存在wcoutput/

伪分布式运行模式

1.配置集群
2.测试
3.案例演示

1.配置集群
配置hadoop-env.sh

[hadoop01@hadoop01 hadoop-2.7.2]$ vim etc/hadoop/hadoop-env.sh 
export JAVA_HOME=${JAVA_HOME}

修改为

export JAVA_HOME=/opt/module/jdk1.8.0_144

配置 etc/hadoop/core-site.xml

添加namenode的地址
指定Hadoop运行时产生文件的存储目录

        <!-- 指定HDFS中NameNode的地址 -->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://主机名:9000</value>
        </property>

        <!-- 指定Hadoop运行时产生文件的存储目录 -->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/module/hadoop-2.7.2/data/tmp</value>
        </property>

配置 etc/hadoop/hdfs-site.xml

指定hdfs副本的数量,默认是3个

        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>

启动集群,第一次启动时格式化,只格式化一次,多次格式化后,删除data,logs目录后,再次格式化
在这里插入图片描述

格式化

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hdfs namenode -format

启动namenode

[hadoop01@hadoop01 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode

启动datanode

[hadoop01@hadoop01 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode

查看服务是否启动

[hadoop01@hadoop01 hadoop-2.7.2]$ jps
62501 DataNode
62639 Jps
62419 NameNode

服务启动成功后,可在浏览器中查看HDFS文件系统
http://hadoop01(或者主机ip地址):50070
当用主机名访问时,需要在Windows系统的C:\Windows\System32\drivers\etc\hosts文件中添加映射关系
linux的IP地址 Linux的主机名
在这里插入图片描述
报错,查看日志文件中的报错信息
/opt/module/hadoop-2.7.2/logs

操作演示:
上传文件到文件系统

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hdfs dfs -mkdir /input
[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hdfs dfs -put wcinput/wc.input  /input

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hdfs dfs -ls /input/
Found 1 items
-rw-r--r--   1 hadoop01 supergroup         47 2019-12-18 19:31 /input/wc.input
[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hdfs dfs -mkdir /input
## bin/hdfs dfs 表示操作的时HDFS文件系统
## -mkdir /input 创建文件夹
[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hdfs dfs -put wcinput/wc.input  /input
## -put 上传  -get 下载
## wcinput/wc.input 表示本地的目录
##  /input 表示在HDFS文件系统的文件夹
## $ bin/hdfs dfs -put wcinput/wc.input  /input 将本地目录中的wc.input文件上传到HDFS文件系统中的input文件夹中

上传后:
在这里插入图片描述

运行maprecdue程序

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input/ /output

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hdfs dfs -cat /output/part-r-00000
hadoop	2
jinghang	2
mapreduce	1
yarn	1
[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input/ /output
##  bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar 运行的是mapreduce命令
## wordcount 统计词语出现的数次
## /input/ 统计哪个文件
## /output 结果保存在哪

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hdfs dfs -cat /output/part-r-00000
## 显示结果

在这里插入图片描述

配置YARN,并运行MapReduce

配置 etc/hadoop/yarn-env.sh

[hadoop01@hadoop01 hadoop-2.7.2]$ vim etc/hadoop/yarn-env.sh
export JAVA_HOME=${JAVA_HOME}

修改为

export JAVA_HOME=/opt/module/jdk1.8.0_144

配置 etc/hadoop/yarn-site.xml

添加reduce获取数据的方式
指定YARN的rescourcemanager的地址

[hadoop01@hadoop01 hadoop-2.7.2]$ vim etc/hadoop/yarn-site.xml

<configuration>
        <!-- Reducer获取数据的方式 -->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

        <!-- 指定YARN的ResourceManager的地址 -->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>主机名</value>
        </property>
</configuration>

配置 etc/hadoop/mapred-env.sh

[hadoop01@hadoop01 hadoop-2.7.2]$ vim etc/hadoop/mapred-env.sh
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/

修改为

export JAVA_HOME=/opt/module/jdk1.8.0_144

etc/hadoop目录下mapred-site.xml.template文件改名为mapred-site.xml
并在文件中添加

<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>

启动ResourceManager

[hadoop01@hadoop01 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager

启动NodeManager

[hadoop01@hadoop01 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager

查看服务是否启动

[hadoop01@hadoop01 hadoop-2.7.2]$ jps
62501 DataNode
65283 ResourceManager
62419 NameNode
65649 Jps
65523 NodeManager

服务启动完毕,可以在浏览器访问YARN

http://Linux主机名(Linux的IP地址):8088

集群操作
删除HDFS上的output文件

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /output
19/12/18 20:08:56 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
Deleted /output

执行MapReduce

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output

查看结果

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hdfs dfs -cat /output/*
hadoop	2
jinghang	2
mapreduce	1
yarn	1

在这里插入图片描述

配置历史记录服务器

配置 etc/hadoop/mapred-site.xml

[hadoop01@hadoop01 hadoop-2.7.2]$ vim etc/hadoop/mapred-site.xml

在文件中增加

<!-- 历史服务器端地址 -->
<property>
	<name>mapreduce.jobhistory.address</name>
	<value>主机名:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>主机名:19888</value>
</property>

启动历史记录服务器

[hadoop01@hadoop01 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver

查看是否启动

[hadoop01@hadoop01 hadoop-2.7.2]$ jps
62501 DataNode
67045 JobHistoryServer
65283 ResourceManager
67114 Jps
62419 NameNode
65523 NodeManager

启动成功后可在浏览器中查看历史记录信息
可以在页面点击,也可以通过端口访问http://Linux主机名(Linux的IP地址):19888
在这里插入图片描述

配置日志的聚焦

配置etc/hadoop/yarn-site.xml

[hadoop01@hadoop01 hadoop-2.7.2]$ vim etc/hadoop/yarn-site.xml

在文件中添加

<!-- 日志聚集功能使能 -->
<property>
	<name>yarn.log-aggregation-enable</name>
	<value>true</value>
</property>

<!-- 日志保留时间设置7天 -->
<property>
	<name>yarn.log-aggregation.retain-seconds</name>
	<value>604800</value>
</property>

日志功能配置完毕需要重新启动NodeManage\ResourceManager\HistoryManager服务
关闭服务

[hadoop01@hadoop01 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh stop historyserver
[hadoop01@hadoop01 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop nodemanager
[hadoop01@hadoop01 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop resourcemanager

开启服务

[hadoop01@hadoop01 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
[hadoop01@hadoop01 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
[hadoop01@hadoop01 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager

查看日志信息

[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /output
[hadoop01@hadoop01 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值