hadoop本地模式和伪分布式搭建

一、本地模式搭建:

注意:前面有 # 的代表注解,可以不写

1. 个人习惯创:在家目录下建两个目录: modules (用来存放文件),software (用来存放压缩包).

命令:

[xcj@node01 ~]$ mkdir software 
[xcj@node01 ~]$ mkdir modules 

2. 将jdk与hadoop的压缩包放入下载到software目录下

-rw-rw-r--. 1 xcj xcj 456364743 5月  15 14:16 hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
-rw-rw-r--. 1 xcj xcj 195013152 5月  15 14:11 jdk-8u212-linux-x64.tar.gz

3. 解压hadoop与jdk压缩包

命令:

#将hadoop解压到modules目录
[xcj@node01 ~]$ tar -xzvf ~/software/hadoop-3.3.0-Centos7-64-with-snappy.tar.gz -C ~/modules/

#将hadoop解压到jdk目录
[xcj@node01 ~]$ tar -xzvf ~/software/jdk-8u212-linux-x64.tar.gz -C ~/modules/

4. 配置环境 

有两种配置方式:系统环境与用户环境,两种环境就配置的文件不一样,方式都是一样的.

系统环境: 所有用户都可以使用

用户环境: 就当前用户可用

命令:

#系统环境配置命令
vim /etc/profile

#用户环境命令
vim ~/.bashrc

#系统环境与用户环境选择一个即可,两人都配也没关系,当然如果两个都配,不如就配系统环境
#进入文件后,将下面的代码添加到文件的最后


#java环境
#注意每个人的目录与jdk版本可能不一样,注意看
#export JAVA_HOME=jdk存放的目录路径/jdk的文件名称
export JAVA_HOME=/home/xcj/modules/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

#hadoop环境
#注意每个人的目录与jdk版本可能不一样,注意看
#export HADOPP_HOME=hadoop存放的目录路径/hadoop的文件名称
export HADOOP_HOME=/home/xcj/modules/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin


5. 检验环境是否配置成功

命令:

[xcj@node01 ~]$ java -version
#出现以下信息,代表jdk环境配置成功
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)

[xcj@node01 ~]$ hadoop version
#出现以下信息,代表hadoop配置成功,每个人的以下信息可能有所差异,但是肯定有版本号
Hadoop 3.3.0
Source code repository Unknown -r Unknown
Compiled by root on 2021-07-15T07:35Z
Compiled with protoc 3.7.1
From source with checksum 5dc29b802d6ccd77b262ef9d04d19c4
This command was run using /home/xcj/modules/hadoop-3.3.0/share/hadoop/common/hadoop-common-3.3.0.jar



到这里hadoop的本地模式就完成了.

下面我们可以用一个案例来测试一下,这里家目录下创建一个文件,名称为testfile/input

命令:

#创建目录
mkdir -r ~/testfile/
#创建文件
touch ~/testfile/input
vim ~/testfile/input
#在文件添加到以下内容,内容随便
hello python
hello java
hello c
hello world

#保存,退出
:wq

#现在到hadoop的mapreduce目录下
cd ~/modules/hadoop-3.3.0/share/hadoop/mapreduce/

#执行下面代码,注意output目录是输出目录,且不能提前存在,他会自动创建
hadoop jar hadoop-mapreduce-examples-3.3.0.jar wordcount ~/testfile/input ~/testfile/output/

#到testfile目录下看看是否存在output目录,如果存在进到output目录
cd ~/testfile/output/
ll
#会看到,_SUCCESS 是成功标识
总用量 4
-rw-r--r--. 1 xcj xcj 36 5月  15 15:11 part-r-00000
-rw-r--r--. 1 xcj xcj  0 5月  15 15:11 _SUCCESS

#输入以下命令 
cat part-r-00000
#会有
c       1
hello   4
java    1
python  1
world   1

如果案例成功了,代表你已经入门一点点了,加油! 

二、伪分布式(一个节点表示一个集群,但是有分布式的概念。所有的角色都由当前节点充当 )

伪分布式与本地模式不同的是伪分布式需要配置一些配置文件

1. 在配置文件之前我们先,对本节点做一个映射

#切换root用户,输入这个命令
vim /etc/hosts
#在最后添加以下内容: ip地址 节点名称
192.168.88.151 node01

#修改本机名称,root权限
vim /etc/hostname
#在最后添加以下内容
node01

设置免密登陆,不设置后面有的进程不会开启,这也是有的hadoop会少进程的原因之一

#node1生成公钥私钥 (一路回车)
ssh-keygen  
	
#node1配置免密登录到node1 node2 node3
ssh-copy-id node1

2. 修改配置文件,通常修改core,hdfs,mapred,yarn -site.xml文件

注意:每个人的文件目录可能不一样

core-site.xml

 命令: vim core-site.xml

<configuration>
        <!-- hdfs的集群访问路径 -->
         <property>
                 <name>fs.default.name</name>
                <value>hdfs://node01:9820</value>
        </property>
        <!-- 执行MapReduce时产生的临时文件所在目录 -->
        <property>
                 <name>hadoop.tmp.dir</name>
                 <value>/home/xcj/modules/hadoop-3.3.0/tmp</value>
         </property>

</configuration>

hdfs-site.xml

命令: vim hdfs-site.xml

<configuration>

        <!-- hdfs的浏览器访问地址 -->
        <property>
                <name>dfs.namenode.http-address</name>
                <value>node01:9870</value>
        </property>
         <!-- hdfs中secondaryNameNode的访问地址 -->
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>node01:9868</value>
        </property>
        <!-- 设置副本数,默认是3,因为伪分布式只有一个节点,副本数不能大于节点数 -->
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
         <!-- 设置NameNode在相应节点上的数据存放路径 -->
         <property>
                <name>dfs.namenode.name.dir</name>
                <value>/home/xcj/modules/hadoop-3.3.0/dfs/name</value>
        </property>
        <!-- 设置DataNode在相应节点上的数据存放路径 -->
         <property>
                <name>dfs.datanode.data.dir</name>
                <value>/home/xcj/modules/hadoop-3.3.0/dfs/data</value>
         </property>
        <!-- 设置SecondaryNameNode在相应节点上的数据存放路径 -->
        <property>
                 <name>dfs.namenode.checkpoint.dir</name>
                 <value>/home/xcj/modules/hadoop-3.3.0/dfs/secondaryName</value>
         </property>

</configuration>
 

mapred-site.xml

命令: vim mapred-site.xml

  <configuration>
        <!--资源调度的方式-->
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
         </property>

</configuration>

yarn-site.xml

命令: vim yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
        <property>
                 <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
         <!-- 指定ResourceManager所在节点 -->
        <property>
                 <name>yarn.resourcemanager.hostname</name>
                 <value>node01</value>
         </property>

</configuration>   

hadoop-env.sh

命令: vim hadoop-env.sh

提示:大概在54行的位置

#打开原 hadoop-env.sh 文件,修改 JAVA_HOME

#默认是${JAVA_HOME},读取可能会出问题,直接改成绝对路径

export JAVA_HOME=/home/bduser/modules/jdk1.8

workers

命令: vim workers

#DataNode和nodemanage 所在的节点

node01

3. 格式化

#建议使用hdfs命令
hdfs namenode -format
#hadoop和hdfs效果完全等价
hadoop namenode -format

#回到hadoop根目录下,查看有没有dfs目录,查看格式化后的数据存放目录 
ll dfs
#会看到有一个name目录

注:格式化后只出现 name 目录,启动服务后才会出现 data 和 secondaryName 目录

4. 启动/改变相应的服务

       

#启动/关闭所有服务
start-all.sh
srop-all.sh

#单独启动/关闭hdfs和yarn的服务
start-dfs.sh
start-yarn.sh

stop-dfs.sh
stop-yarn.sh

#单独启动/关闭hdfs中的某一个服务
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
hadoop-daemon.sh start secondarynamenode

hadoop-daemon.sh stop namenode
hadoop-daemon.sh stop datanode
hadoop-daemon.sh stop secondarynamenode

#单独启动/关闭yarn中的某一个服务
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanagercd 

yarn-daemon.sh stop resourcemanager
yarn-daemon.sh stop nodemanagercd

#查看服务是否启动成功
jps
#如果用的start-all.sh这个命令启动一个有以下服务,则说明配置成功
[xcj@node01 hadoop-3.3.0]$ jps
115985 DataNode
116497 SecondaryNameNode
117285 ResourceManager
117956 Jps
117510 NodeManager
115757 NameNode

然后进入两个官网,网址为

ip:  端口号

ip地址:8080 或使用映射别名 nod01:8080

ip地址:9870  或使用映射别名 nod01:9870

注意:在本机上使用别名,要到Windows系统中配置映射关系,修改hosts文件

文件路径:C:\Windows\System32\drivers\etc\hosts 

在文件中添加: ip地址 别名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值