Linux安装Hadoop伪分布式运行模式

安装和配置hadoop伪分布式运行模式

一、Hadoop运行环境搭建

1.1虚拟机环境准备

更改主机名:

[root@hadoop02 hadoop]# hostnamectl set-hostname hadoop02
[root@hadoop02 hadoop]# vi /etc/hosts

#输入:

192.168.136.36 hadoop02

在根目录下先创建一个software目录,用来放置安装包:

[root@hadoop02 /]# mkdir software

安装包:
链接: https://pan.baidu.com/s/1QOHTy3VkT-vxYNgjiZdsRw
提取码: 21fp
把9个安装包拖进来:
在这里插入图片描述

1.2 安装jdk1.8(若已安装则忽略这步)

解压jdk到根目录下的opt目录下:

[root@hadoop02 software]# tar -zvxf jdk-8u221-linux-x64.tar.gz -C /opt/

改名为java8:

[root@hadoop02 opt]# mv jdk-8u221-linux-x64 java8

配置jdk环境变量

vim /etc/profile
export JAVA_HOME=/opt/java8
export CLASSPATH=.:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH=$JAVA_HOME/bin:$PATH

保存后退出
手动生效环境变量

source /etc/profile

验证jdk是否安装成功

java -version

1.3 安装Hadoop

解压hadoop-2.6.0-cdh5.14.2.tar.gz到opt目录下:

[root@hadoop02 software]# tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz -C /opt/

把hadoop-2.6.0-cdh5.14.2名字更改为hadoop

[root@hadoop02 opt]# mv hadoop-2.6.0-cdh5.14.2/ hadoop

配置Hadoop环境变量:

[root@hadoop02 opt]# vi /etc/profile

输入:

export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

保存退出,使环境变量生效:

[root@hadoop02 opt]# source /etc/profile

验证hadoop是否安装成功:

[root@hadoop02 opt]# hadoop version

在这里插入图片描述

二、Hadoop运行模式

Hadoop 运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
Hadoop 官方网站:http://hadoop.apache.org/

2.1 本地运行模式

以官方wordcount案例为准
进入hadoop安装目录后新建wcinput文件夹

mkdir wcinput

进入wcinput文件夹,新建wc.input文件

cd wcinput
touch wc.input

编辑wc.input

vim wc.input

输入以下内容

hadoop yarn spark
hadoop mapreduce
hadoop spark
hadoop spark

回到Hadoop安装目录后执行程序

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount wcinput wcoutput

查看结果

cat wcoutput/part-r-00000
hadoop  4
mapreduce       1
spark   3
yarn    1

2.2 伪分布式运行模式

2.2.1 启动HDFS 并运行 MapReduce 程序

1)任务:

(1)配置集群
(2)启动、测试集群增、删、查
(3)执行 wordcount 案例

2)执行步骤

(1) 配置集群

进入根目录下的opt目录下的hadoop下的目录下的hadoop:

[root@hadoop02 opt]# cd /opt/hadoop/etc/hadoop

配置hadoop-env.sh:

[root@hadoop02 hadoop]# vi hadoop-env.sh

在export JAVA_HOME=${JAVA_HOME}下输入:

export JAVA_HOME=/opt/java8

注意:后面的是你java安装的目录
在这里插入图片描述
配置core-site.xml:

[root@hadoop02 hadoop]# vi core-site.xml

在两个configuration之间输入:

  <!-- 指定 HDFS 中 NameNode 的地址 -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://192.168.136.36:9000</value>
  </property>
  <!-- 指定 hadoop 运行时产生文件的存储目录 -->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/tmp</value>
  </property>

注意:hdfs后面输入的是你的主机ip,后面的9000是端口号
在这里插入图片描述

保存退出,配置hdfs-site.xml:

[root@hadoop02 hadoop]# vi hdfs-site.xml

在两个configuration之间输入:

  <!-- 指定 HDFS 副本的数量 -->
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>

在这里插入图片描述
(2)启动集群

(a)格式化 NameNode(第一次启动时格式化,以后就不要总格式化)

[root@hadoop02 hadoop]$ bin/hdfs namenode -format

(b)启动 NameNode

[root@hadoop02 hadoop]$ sbin/hadoop-daemon.sh start namenode

(c)启动 DataNode

[root@hadoop02 hadoop]$ sbin/hadoop-daemon.sh start datanode

(3)查看集群
(a)查看是否启动成功

[root@hadoop02 hadoop]$ jps
12586 NameNode
12668 DataNode
12666 Jps

(b)查看产生的 log 日志
当前目录:Hadoop安装目录

[root@hadoop02 hadoop] cd logs
[root@hadoop02 logs]$ ls

(c)web 端查看 HDFS 文件系统(或者换成 ip:50070)
http://hadoop02:50070/
注意:如果不能查看,请检查防火墙是否关闭,windows 操作系统是否配置了 hadoop101 和虚拟机 ip 的映射

(4)操作集群
(a)在 hdfs 文件系统上 创建一个 input 文件夹

[root@hadoop02 hadoop]$ bin/hdfs dfs -mkdir -p /user/hadoop/input

(b)将测试文件内容 上传到文件系统上

[root@hadoop02 hadoop]$ bin/hdfs dfs -put wcinput/wc.input /user/hadoop/input/

(c) 查看上传的文件是否正确

[root@hadoop02 hadoop]$ bin/hdfs dfs -ls /user/hadoop/input/
[root@hadoop02 hadoop]$ bin/hdfs dfs -cat /user/hadoop/input/wc.input

(d)运行 mapreduce 程序

[root@hadoop02 hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /user/hadoop/input/ /user/hadoop/output

(e)查看输出结果
命令行查看:

[root@hadoop02 hadoop]$ bin/hdfs dfs -cat /user/hadoop/output/*

也可以在浏览器上进行查看
(f)将测试文件内容 下载到本地

[root@hadoop02 hadoop]$ bin/hdfs dfs -get /user/hadoop/ output/part-r-00000 ./wcoutput/

(g) 删除输出结果

[root@hadoop02 hadoop]$ bin/hdfs dfs -rm -r /user/hadoop/output
2.2.2 YARN 上运行 MapReduce 程序

1)任务:
(1)配置集群任务在 yarn 上运行
(2)在 yarn 上执行 wordcount 案例

2)执行步骤
(1)配置集群

cd /opt/hadoop/etc/hadoop

a.配置yarn-env.sh

[root@hadoop02 hadoop]# vi yarn-env.sh
export JAVA_HOME=/opt/java8

b.配置yarn-site.xml:

[root@hadoop02 hadoop]# vi yarn-site.xml

在两个configuration中输入:

<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop02</value>
  </property>
<!-- reducer 获取数据的方式 -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>

在这里插入图片描述
c.配置 mapred-env.sh

vim mapred-env.sh
export JAVA_HOME=/opt/java8

d.配置mapred-site.xml
复制mapred-site.xml.template

[root@hadoop02 hadoop]# cp mapred-site.xml.template mapred-site.xml

配置mapred-site.xml:

[root@hadoop02 hadoop]# vi mapred-site.xml

在两个configuration中输入:

<!-- 指定 mr 运行在 yarn 上 -->
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>

在这里插入图片描述
(2)启动集群

(a)启动前必须保证 namenode 和 datanode 已经启动
(b)启动 resourcemanager

[root@hadoop02 hadoop]$ /sbin/yarn-daemon.sh start resourcemanager

(c)启动 nodemanager

[root@hadoop02 hadoop]$ sbin/yarn-daemon.sh start nodemanager

(3)集群操作
(a)yarn 的浏览器页面查看,yarn 的 web ui 端口为 8088
http://hadoop02:8088/cluster
(b)删除文件系统上的 output 文件

[root@hadoop02 hadoop]$ bin/hdfs dfs -rm -r /user/hadoop/output

(c)执行 mapreduce 程序

[root@hadoop02 hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /user/hadoop/input /user/hadoop/output

(d)查看运行结果

[root@hadoop02 hadoop]$ bin/hdfs dfs -cat /user/hadoop/output/*
2.2.3 配置历史服务器

配置历史服务器可以查看 MapReduce 任务的详情信息,查看日志,定
位错误
步骤如下:
1)配置 mapred-site.xml

[root@hadoop02 hadoop]# vi mapred-site.xml

在两个Configuration中添加:

  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>192.168.136.36:10020</value>
  </property>
  <property>
   <name>mapreduce.jobhistory.webapp.address</name>
    <value>192.168.136.36:19888</value>
  </property>

2)启动历史服务器

[root@hadoop02 hadoop]$ sbin/mr-jobhistory-daemon.sh start historyserver

3)查看历史服务器是否启动

[root@hadoop02 hadoop]$ jps

4)查看 jobhistory
http://hadoop02:19888/jobhistory

2.2.4 配置日志的聚集

日志聚集概念:应用运行完成以后,将日志信息上传到 HDFS 系统上。方便查看
开启日志聚集功能步骤:
(1)配置yarn-site.xml:

[root@hadoop02 hadoop]# vi yarn-site.xml

在两个Configuration中添加:

<!-- 日志聚集功能使能 -->
  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>
<!-- 日志保留时间设置 7 天 -->
  <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
  </property>

(2)关闭 nodemanager 、resourcemanager 和 historymanager

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

(3)启动 nodemanager 、resourcemanager 和 historymanager

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

(4)测试:删除 hdfs 上已经存在的 hdfs 文件

[root@hadoop02 hadoop]$ bin/hdfs dfs -rm -r /user/hadoop/output

(5)执行 wordcount 程序

[root@hadoop02 hadoop]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /user/hadoop/input /user/hadoop/output

(6)查看日志
http://hadoop02:19888/jobhistory

2.2.5 配置文件说明

Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改
某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
(1)默认配置文件:存放在 hadoop 相应的 jar 包中
[core-default.xml]
hadoop-common-.jar/ core-default.xml
[hdfs-default.xml]
hadoop-hdfs-
.jar/ hdfs-default.xml
[yarn-default.xml]
hadoop-yarn-common-.jar/ yarn-default.xml
[mapred-default.xml]
hadoop-mapreduce-client-core-
.jar/ mapred-default.xml

(2)自定义配置文件:存放在$HADOOP_HOME/etc/hadoop
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值