第三、四章:安装模式之本地模式与伪分布式搭建

本文详细介绍了如何在本地模式和伪分布式集群环境下搭建Hadoop环境,包括JDK和Hadoop的安装,配置核心和HDFS-site文件,以及WordCount程序的实例演示。重点在于环境设置和关键操作步骤,适合开发者调试和理解分布式计算原理。
摘要由CSDN通过智能技术生成

目录

3.1 本地模式介绍

3.2 平台软件说明

3.3 环境搭建:Jdk的安装步骤

3.4 hadoop目录结构说明

3.5 环境搭建:Hadoop的安装步骤

3.6 程序案例演示:grep程序

3.7 案例测试_wordcount.

第四章:安装模式之伪分布式集群

4.1 伪分布式模式介绍

4.2 平台软件说明

4.3 伪分布式环境需求及搭建

4.4 伪分布式相关文件的配置

4.5 格式化NameNode

4.6 启动HDFS

4.7 WebUI_50070

4.8 程序案例演示:wordcount程序


3.1 本地模式介绍

3.1.1 特点:

运行在单台机器上,没有分布式思想,使用的是本地文件系统

3.1.2. 用途

用于对MapReduce程序的逻辑进行调试,确保程序的正确。由于在本地模式下测试和调试MapReduce程序较为方便,因此,这种模式适宜用在开发阶段。

3.2 平台软件说明

- 操作系统:         win10/win7
- 虚拟软件:         VMware14
- 虚拟机:           主机名:qianfeng01         ip:192.168.10.101
- 上传路径:         /root
- 软件安装路径:      /usr/local
- Jdk:             jdk-8u221-linux-x64.tar.gz
- Hadoop:          hadoop-2.7.6.tar.gz
- 用户:            root

3.3 环境搭建:Jdk的安装步骤

步骤1)检查一下是否已经安装过或者系统内置JDK,如果有内置的,将其卸载

[root@qianfeng01 ~]# rpm -qa | grep jdk     #如果有,请卸载
[root@qianfeng01 ~]# rpm -e xxxxxxxx --nodeps      #将查询到的内置jdk强制卸载

步骤2)上传jdk1.8

将jdk-8u221-linux-x64.tar.gz上传到/root目录中

步骤3)解压jdk到/usr/local/下

[root@qianfeng01 ~]# tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local

步骤4)更名jdk

[root@qianfeng01 ~]# cd /usr/local
[root@qianfeng01 local]# mv jdk1.8.0_221/  jdk

步骤5)配置Jdk的环境变量:/etc/profile

[root@qianfeng01 local]# vi /etc/profile
.........省略...........
#jdk environment
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

步骤6)使当前窗口生效

[root@qianfeng01 local]# source /etc/profile

步骤7)验证jdk环境

[root@qianfeng01 local]# java -version
[root@qianfeng01 local]# javac  

3.4 hadoop目录结构说明

3.4.1 Hadoop目录结构如下:(可以提前在window系统上解压,看一下)

--1. bin:           hadoop的二进制执行命令文件存储目录
--2. sbin:          hadoop的执行脚本存储目录
--3. etc:           hadoop的配置文件存储目录
--4. lib/libexec:   hadoop的资源库存储目录
--5. share:         hadoop的共享资源、开发工具和案例存储目录
--6. include:       hadoop的工具脚本存储目录

3.5 环境搭建:Hadoop的安装步骤

步骤1) 上传并解压hadoop

将hadoop软件包上传到/root目录下,然后解压到/usr/local/目录下
[root@qianfeng01 ~]# tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/

步骤2)更名hadoop

[root@qianfeng01 ~]# cd /usr/local
[root@qianfeng01 local]# mv hadoop-2.7.6/ hadoop

步骤3)配置hadoop的环境变量

[root@qianfeng01 local]# vi /etc/profile
.........省略..........
#hadoop environment
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

步骤4)使当前窗口生效

[root@qianfeng01 local]# source /etc/profile

步骤5)验证hadoop

[root@qianfeng01 local]# hadoop version

3.6 程序案例演示:grep程序

步骤1) 进入hadoop的根目录

[root@qianfeng01 local]# cd $HADOOP_HOME

步骤2) 创建一个目录/input

[root@qianfeng01 hadoop]# mkdir input

步骤3) 将$HADOOP_HOME/etc/hadoop/目录下的所有xml文件复制到input目录下

[root@qianfeng01 hadoop]# cp ./etc/hadoop/*.xml ./input

步骤4) 使用hadoop自带的grep程序查找input目录下的文件是否有符合正则表达式'dfs[a-z.]'的字符串

[root@qianfeng01 hadoop]#   hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar grep input ./output 'dfs[a-z.]'
​
命令行内容解析:
--1. 使用hadoop命令运行jar文件
--2. 同时指定具体的jar文件的路径
--3. 使用jar文件里的grep主程序
--4. 统计当前目录下的input目录里的内容,
--5. 将统计结果输出到当前目录下的output目录
--6. 给grep指定一个正则表达式
​
注意:输出目录是一个不存在的目录,程序会自动生成

步骤5) 进入output目录查看part-r-00000文件

[root@qianfeng01 hadoop]# cd ./output
[root@qianfeng01 output]# cat part-r-00000

3.7 案例测试_wordcount.

[root@qianfeng01 hadoop]#  hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount input ./output1

第四章:安装模式之伪分布式集群

4.1 伪分布式模式介绍

1.特点
    - 在一台机器上安装,使用的是分布式思想,即分布式文件系统,非本地文件系统。
    - Hdfs涉及到的相关守护进程(namenode,datanode,secondarynamenode)都运行在一台机器上,都是独立的java进程。
2. 用途
    比Standalone mode 多了代码调试功能,允许检查内存使用情况,HDFS输入输出,以及其他的守护进程交
    互。

4.2 平台软件说明

- 操作系统:         win10/win7
- 虚拟软件:         VMware14
- 虚拟机:           主机名:qianfeng01         ip:192.168.10.101
- 软件包存储路径:    ~
- 软件安装路径:      /usr/local/  
- Jdk:             jdk-8u221-linux-x64.tar.gz
- Hadoop:          hadoop-2.7.6.tar.gz
- 用户:             root

4.3 伪分布式环境需求及搭建

4.3.1 环境需求:

--1. 确保防火墙是关闭的.
--2. NAT模式和静态IP的确定 (192.168.10.101)
--3. 确保/etc/hosts文件里 ip和hostname的映射关系
--4. 确保免密登陆localhost有效
--5. jdk和hadoop的环境变量配置

4.3.2 防火墙关闭确认

[root@qianfeng01 ~]# systemctl stop firewalld
[root@qianfeng01 ~]# systemctl disable firewalld.service
[root@qianfeng01 ~]# systemctl stop NetworkManager
[root@qianfeng01 ~]# systemctl disable NetworkManager
​
#最好也把selinux关闭掉,这是linux系统的一个安全机制,进入文件中将SELINUX设置为disabled
[root@qianfeng01 ~]# vi /etc/selinux/config
.........
SELINUX=disabled            
.........

4.3.3 配置/etc/hosts文件

-- 进入hosts文件,配置一下ip和hostname
[root@qianfeng01 ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
​
192.168.10.101 qianfeng01     <====添加本机的静态IP和本机的主机名之间的映射关系      

4.3.4 确保ssh对localhost的免密登陆认证有效

-1. 使用rsa加密技术,生成公钥和私钥。一路回车即可
[root@qianfeng01 ~]# ssh-keygen -t rsa              
-2. 进入~/.ssh目录下,使用ssh-copy-id命令
[root@qianfeng01 .ssh]# ssh-copy-id   root@localhost
-3. 进行验证,去掉第一次的询问(yes/no)
[hadoop@qianfeng01 .ssh]# ssh localhost

4.3.5 安装Jdk和Hadoop,配置相关环境变量

-1. 上传和解压两个软件包
[root@qianfeng01 ~]# tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local/
[root@qianfeng01 ~]# tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/
​
-2. 进入local里,给两个软件更名
[root@qianfeng01 ~]# cd /usr/local/
[root@qianfeng01 local]# mv 1.8.0_221/  jdk
[root@qianfeng01 local]# mv hadoop-2.7.6/ hadoop
​
-3. 配置环境变量
[hadoop@qianfeng01 local]# vi /etc/profile
​
.....省略...........
​
#java environment
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
​
#hadoop environment
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

4.4 伪分布式相关文件的配置

4.4.1 core-site.xml的配置

[root@qianfeng01 ~]# cd $HADOOP_HOME/etc/hadoop
[root@qianfeng01 hadoop]# vi core-site.xml
​
<configuration>
    <!-- 配置分布式文件系统的schema和ip以及port,默认8020-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:8020/</value>
    </property>
</configuration>
    
扩展: hadoop1.x的默认端口是9000,hadoop2.x的默认端口是8020,使用哪一个都可以

4.4.2 hdfs-site.xml的配置:

[root@qianfeng01 hadoop]# vi hdfs-site.xml
<configuration>
    <!-- 配置副本数,注意,伪分布模式只能是1。-->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

4.4.3 hadoop-env.sh的配置:指定jdk的环境

[root@qianfeng01 hadoop]# vi hadoop-env.sh
................
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk
..................

4.5 格式化NameNode

4.5.1 格式化命令

[root@qianfeng01 hadoop]# hdfs namenode -format

4.5.2 格式化的日志解读

4.6 启动HDFS

4.6.1 启动伪分布式

[root@qianfeng01 hadoop]# start-dfs.sh

4.6.2 启动滚动信息说明

4.6.3 jps命令查看守护进程

从上图我们可以看到,启动脚本会开启分布式文件系统上的相关进程:

namenode
datanode
secondarynamenode

4.7 WebUI_50070

可以在浏览器上输入:192.168.10.101:50070 来查看一下伪分布式集群的信息
--1. 浏览一下页面上提示的ClusterID,BlockPoolID
--2. 查看一下活跃节点(Live Nodes)的个数,应该是1个
​
Compiled:编译     hadoop是由kshvachk工具集成的
Cluster ID:集群id
Block Pool ID:datanode节点的block池的id,每个datanode节点的都要一样

4.8 程序案例演示:wordcount程序

4.8.1 准备要统计的两个文件,存储到/root/data/下

--1. 创建data目录
[root@qianfeng01 hadoop]# mkdir ~/data
--2. 将以下两个文件上传到data目录下
- poetry1.txt
- poetry2.txt 

4.8.2 在hdfs上创建存储目录

[root@qianfeng01 hadoop]# hdfs dfs -mkdir /input

4.8.3 将本地文件系统上的上传到hdfs上,并在web上查看一下

[root@qianfeng01 hadoop]$ hdfs dfs -put ~/data/poetry* /input/

4.8.4 运行自带的单词统计程序wordcount

[root@qianfeng01 hadoop]# cd $HADOOP_HOME
[root@qianfeng01 hadoop]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar  wordcount /input /out

4.8.5 查看webui

4.8.6 查看part-r-00000文件

[root@qianfeng01 hadoop]# hdfs dfs -cat /out/part-r-00000
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值