hadoop入门之本地模式,伪分步模式,历史记录

本文详细介绍Hadoop的安装步骤及环境配置,包括JDK安装、Hadoop集群搭建、环境变量配置、伪分布式与完全分布式运行模式配置等,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hadoop安装

1.准备工作

准备好一台虚拟机,修改静态ip,关闭防火墙,修改ip映射,安装JDK并且配置环境变量,没有jdk会报错。

2.安装hadoop

将hadoop的安装包上传到/usr/local目录下
在这里插入图片描述
解压[root@zhiyou101 local]# tar -zxvf hadoop-2.7.3.tar.gz
在这里插入图片描述
在这里插入图片描述
目录结构:
bin:操作hadoop集群命令
sbin:启动关闭hadoop集群命令
etc:hadoop的配置文件存放目录
lib:hadoop运行时的依赖包
share:hadoop案例存放位置

3.配置环境变量

1)编辑/etc/profile文件
vi /etc/profile
2)在文件末尾添加以下内容

JAVA_HOME=/usr/local/jdk1.8
HADOOP_HOME=/usr/local/hadoop-2.7.3
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin/:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH JAVA_HOME CLASSPATH HADOOP_HOME

3)重新加载/etc/profile文件
[root@zhiyou101 hadoop-2.7.3]# source /etc/profile
4)测试
[root@zhiyou101 hadoop-2.7.3]# hadoop version

hadoop运行模式

本地模式

不需要任何配置就可以启动,该模式在学习和测试中使用,计算文件和计算过程都在本地完成

伪分布式

跟完全分布式类似,但是只有一个节点

完全分布式

多节点协同工作,实际生产过程中使用完全分布式

本地模式

grep案例

概述

通过正则表达式找目标文件中匹配的数据,并将匹配的数据放到一个新文件中

将文件上传到linux上

1)在hadoop目录中创建input目录
2)将计算文件上传到input目录下

使用grep案例

1)案例位置
/usr/local/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
2)计算

[root@zhiyou101 output]# hadoop jar hadoop-mapreduce-examples-2.7.3.jar grep /usr/local/hadoop-2.7.3/input/greptest.txt /usr/local/hadoop-2.7.3/output 'zhi[a-z.]+'

解释上面语句:hadoop jar 运行的jar包路径(当前目录下存在jar,则只需要写名字即可) 案例(这里是grep) 目标文件目录 输出文件目录(不能存在,必须新建的,否则报错) 正则表达式
结果文件在input下part-r-00000文件里
cat part-r-00000正的打印出
tac part-r-00000反着打印出
另一个案例Wordcount案例:统计一样的单词出现的次数

伪分布式,运行在HDFS上

特点

跟完全分布式是一样的,只不过只有一台节点,我们需要将数据上传到HDFS上分布式存储,从HDFS上获取数据使用MapReduce进行分布式计算

配置

伪分布式运行在HDFS上

1)hadoop-env.sh

:set nu 设置多少行
只需要配置JAVA_HOME即可,第25行
export JAVA_HOME=/usr/local/jdk1.8.0_181

2)core-site.xml

要将下面内容写到< configuration>< /configuration>之中

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

	<!-- 指定hadoop运行时产生文件的存储目录 -->
	<property>
        	<name>hadoop.tmp.dir</name>
        	<value>/var/hadoop-2.7.3/data/tmp</value>
	</property>
3)hdfs-site.xml
<configuration>
	<!-- 指定HDFS中NameNode的地址 -->
	<property>
        	<name>fs.defaultFS</name>
        	<value>hdfs://zhiyou101:9000</value>
	</property>

	<!-- 指定hadoop运行时产生文件的存储目录 -->
	<property>
        	<name>hadoop.tmp.dir</name>
        	<value>/var/hadoop-2.7.3/data/tmp</value>
	</property>
</configuration>
启动hadoop集群
格式化namenode

仅第一次启动时格式化,之后就不要格式化
命令:[root@zhiyou101 current]# hadoop namenode -format
格式化之后,在core-site.xml文件中配置的hadoop运行时目录(/var/hadoop-2.7.3/data/tmp)就已经创建,里边就保存了namenode的信息(下图便是DataNode和namenode启动后)
在这里插入图片描述

启动namenode

[root@zhiyou101 sbin]# ./hadoop-daemon.sh start namenode

启动datanode

[root@zhiyou101 sbin]# ./hadoop-daemon.sh start datanode

查看启动结果

1)终端查看
Jps命令
在这里插入图片描述
2)浏览器查看
在地址栏上输入:http://zhiyou101:50070
在这里插入图片描述

HDFS文件系统

文件系统与Linux文件系统类似,根目录都是/,里边的目录都是我们自定义的
真正的文件还是存放在磁盘上的。
Namenode:/var/hadoop-2.7.3/data/tmp/dfs/name
Datanode:/var/hadoop-2.7.3/data/tmp/dfs/data

关闭

[root@zhiyou101 /]# hadoop-daemon.sh stop datanode
[root@zhiyou101 /]# hadoop-daemon.sh stop namenode
关闭时:先关闭DataNode后关闭namenode
开启是:先开启namenode后开启datanode

九、伪分布式运行在YARN上

总结

后缀名为.sh只需要修改JAVA_HOME

配置

在HDFS上的基础上新增以下配置

1)yarn-env.sh

配置JAVA_HOME
export JAVA_HOME=/usr/local/jdk1.8.0_181

2)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>zhiyou101</value>
</property>
3)mapred-env.sh

配置JAVA_HOME
export JAVA_HOME=/usr/local/jdk1.8.0_181

4)mapred-site.xml

该文件是没有的,重命名
[root@zhiyou101 hadoop]# cp mapred-site.xml.template mapred-site.xml

<!-- 指定mr运行在yarn上 -->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>
启动
先启动HDFS
1)启动nodemanager

[root@zhiyou101 hadoop]# yarn-daemon.sh start nodemanager

2)启动resourcemanager

[root@zhiyou101 hadoop]# yarn-daemon.sh start resourcemanager

3)一键启动yarn

start-yarn.sh

4)停止

[root@zhiyou101 hadoop]# yarn-daemon.sh stop nodemanager
[root@zhiyou101 hadoop]# yarn-daemon.sh stop resourcemanager
stop-yarn.sh

5)查看yarn

1)使用jps命令
2)浏览器查看
http://zhiyou101:8088

操作HDFS

创建目录

[root@zhiyou101 /]# hdfs dfs -mkdir -p /usr/input

上传文件

[root@zhiyou101 input]# hdfs dfs -put wctest.txt /usr/input

查看系统上的测试文件

[root@test221 input]# hdfs dfs -ls /usr/wc/input
[root@test221 input]# hdfs dfs -cat /usr/wc/input/wctest.txt

HDFS上运行mapreduce程序

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /usr/wc/input/wctest.txt /usr/wc/output

查看结果

[root@test221 hadoop-2.7.3]# hdfs dfs -cat /usr/wc/output/part-r-00000
在这里插入图片描述

web端查看

在这里插入图片描述

结果下载

[root@test221 hadoop-2.7.3]# hdfs dfs -get /usr/wc/output/part-r-00000 /usr/

删除文件

[root@test221 usr]# hdfs dfs -rmr /usr/wc/output

下载文件

[root@zhiyou101 hadoop-2.7.3]# hdfs dfs -get /usr/output/part-r-00000 目标目录

查看文件

[root@zhiyou101 hadoop-2.7.3]# hdfs dfs -cat /usr/output/part-r-00000
在这里插入图片描述
磁盘上数据存放位置

/var/hadoop-2.7.3/data/tmp/dfs/data/current/BP-411223114-192.168.109.101-1554105576719/current/finalized/subdir0/subdir0

在这里插入图片描述

历史任务

目的

可以看到YARN上执行过的所有任务

配置

修改mapred-site.xml

<!--添加历史服务-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>zhiyou101:10020</value>
</property>
<!--web网页访问配置-->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>zhiyou101:19888</value>
</property>
查看启动历史服务器文件目录:

[root@test221 usr]#ls sbin/ |grep mr
mr-jobhistory-daemon.sh

启动历史服务器

sbin/mr-jobhistory-daemon.sh start historyserver

查看历史服务器是否启动

jps

查看jobhistory

http://test221:19888/jobhistory

启动历史服务

[root@zhiyou101 sbin]# ./mr-jobhistory-daemon.sh start historyserver
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值