当前位置:   article > 正文

Linux部署hadoop伪分布式_linux hadoop

linux hadoop

Linux部署hadoop伪分布式


一、hadoop是什么?

Hadoop 是一个开源的分布式计算平台,用于存储和处理大规模数据集。它由Apache软件基金会开发和维护。Hadoop的核心组件包括:

  1. Hadoop分布式文件系统(HDFS):用于存储大规模数据集的分布式文件系统。它通过将数据划分为多个块,并在集群中的多台服务器上存储这些块来实现数据的可靠性和可扩展性。

  2. Hadoop YARN(Yet Another Resource Negotiator):作为资源管理器,负责管理和调度集群中的计算资源,以便在集群中运行各种计算作业。

  3. MapReduce:是一种编程模型和处理框架,用于在Hadoop集群上进行大规模数据处理。它将任务分解成多个独立的任务(Map任务和Reduce任务),并在集群中的多台计算节点上并行执行这些任务。

Hadoop能够处理的数据量非常大,并且能够在分布式环境中实现高可用性和容错性。它被广泛应用于各种领域,如大数据分析、数据挖掘、日志处理等。

二、伪分布是什么?

伪分布式是指在单个节点上模拟分布式环境,使得开发者可以在单台计算机上运行和测试分布式系统的各个组件。在伪分布式模式下,所有的Hadoop核心组件(如HDFS、YARN和MapReduce)都在同一台计算机上运行,但它们仍然可以相互通信,并且可以使用多个进程模拟多台机器。

伪分布式模式通常用于开发和测试目的,因为它提供了一个简化的环境来验证和调试Hadoop应用程序,而无需真正的多台计算机集群。它允许开发者在单台计算机上模拟整个Hadoop集群的行为,包括数据存储、资源管理和任务执行等。

在伪分布式模式下,通常会在单个节点上运行单个NameNode和DataNode来模拟HDFS,同时运行ResourceManager和NodeManager来模拟YARN,以及运行MapReduce任务来模拟MapReduce框架。虽然所有组件都运行在单个节点上,但它们之间的通信和交互仍然遵循分布式系统的设计原则和通信协议。

总之,伪分布式模式提供了一个简单方便的方式来测试和开发Hadoop应用程序,但在生产环境中,通常会部署真正的分布式集群来获得更好的性能和可靠性。

三、使用步骤

1.下载jdk

一百度网盘链接:https://pan.baidu.com/s/1iiZho571cQq3aslqLHV9Jw?pwd=45sf
提取码:45sf
二官网下载(需要Oracle账号)
官网:www.oracle.com

2.下载hadoop和jdk安装包,如果有hadoop和jdk安装包,可以上传到Linux系统里

jdk从百度云下载到本地后上传到LInux系统中,可以通过rz工具

安装rz工具

//用root权限下载安装lrzsz软件包
//对于Red Hat/CentOS系统,运行以下命令:
sudo yum install lrzsz

//对于Debian/Ubuntu系统,运行以下命令
sudo apt-get update
sudo apt-get install lrzsz

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

root权限下使用rz,将jdk上传到Linux,上传时会默认上传到 当前文件夹,可以先进入你要保存jdk安装包的目录再使用rz命令,如何没有使用root权限会上传不成功

rz
  • 1

在这里插入图片描述
下载hadoop-3.3.6

代码如下(示例):以在阿里云镜像仓库为列,用wget方法

//在root权限下 跟新yum库
yum -y update
//下载wget
yum install wget
//使用wget下载hadoop 保存在/opt/目录下
wget https://mirrors.aliyun.com/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz -p /opt/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

出现下列图片则下载成功
在这里插入图片描述

3.关闭防火墙和关闭防火墙自启动

//在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙
systemctl stop firewalld
systemctl disable firewalld.service
  • 1
  • 2
  • 3

4.解压安装hadoop和jdk

在安装jdk之前我们需要将Linux自带的jdk卸载(如果是最小安装则忽略)

sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps
//(1)rpm -qa:表示查询所有已经安装的软件包
//(2)grep -i:表示过滤时不区分大小写
//(3)xargs -n1:表示一次获取上次执行结果的一个值
//(4)rpm -e --nodeps:表示卸载软
  • 1
  • 2
  • 3
  • 4
  • 5

解压安装

tar -zxvf hadoop-3.3.4.tar.gz -C /opt/module/ //-C 后面是hadoop的安装目录,根据自己情况选择安装目录
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/ //安装jdk
  • 1
  • 2

5.修改安装目录的名字(方便配置环境)

进入安装路径

mv hadoop-3.3.4/ hadoop //将hadoop-3.3.4 改为 hadoop
mv jdk1.8.0_212/ jdk //将jdk1.8.0_212 改为 jdk
  • 1
  • 2

6.配置环境变量

使用vim或这vi命令在profile.d文件夹下创建一个名为my_env的脚本,添加环境变量,添加完成保存退出后,使用source命令

//以root权限创建脚本
vim /etc/profile.d/my_env.sh
添加内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk //jdk的安装目录,根据自己的安装路径修改
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOMH
export HADOOP_HOME=/opt/module/hadoop //hadoop的安装目录,根据自己的安装路径修改
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
source /etc/profile.d/my_env.sh
  • 1

当输入hadoop version和 java -version时出现下列情况则配置成功

java -version
hadoop version
  • 1
  • 2

在这里插入图片描述

7.修改hadoop安装目录的所有者

一般情况我们不推荐以root用户下启用hadoop,我们可以创建一个普通用户专门使用hadoop

//创建一个名为hadoop的用户组
groupadd hadoop
//创建一个名为hadoop的用户
sudo useradd hadoop -g hadoop -s/bin/bash
//设置Hadoop用户的密码
passwd hadoop
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

我们给hadoop用户添加root权限

vim /etc/sudoers
  • 1

在%wheel下面添加一行(刚刚创建的hadoop用户)
在这里插入图片描述
上面四步要在root权限下操作

登录刚刚创建hadoop用户

su hadoop
  • 1

我们将Hadoop目录的上一级目录的所有者改为hadoop用户

chown -R hadoop:hadoop /opt/  //-R 是将/opt/目录下的全部文件的所有者都修改
  • 1

8.SSH免密登录

先检查SSH是否安装

sudo service sshd status
  • 1

如果出现提示的话,说名没有安装ssh服务
Loaded: error (Reason: No such file or directory)

安装SSH

sudo yum install sshd
//或者
sudo yum install openssh-server
  • 1
  • 2
  • 3

安装完成后登录本机

ssh localhost //然后输入密码
  • 1

创建公钥

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

//修改authorized_keys文件权限
chmod 0600 ~/.ssh/authorized_keys
  • 1
  • 2
  • 3
  • 4
  • 5

修改完成后再登录本机是就不需要输入密码

9.给hadoop配置jdk环境

进入安装好的hadoop文件夹,编辑修改hadoop-env.sh文件,在文件中找到 JAVA_HOME 添加安装jdk的路径

vim etc/hadoop/hadoop-env.sh
  • 1

路径根据自己的jdk安装路径填写
在这里插入图片描述

10.创建文件夹保存hadoop数据

我们在/opt/文件下创建data文件夹保存Hadoop产生的数据(可以根据自己情况选择data文件夹的位置,但是要记得路径,下面配置会用到)

mkdir /opt/data/hadoop -p
mkdir /opt/data/hadoop/tmp
mkdir /opt/data/hadoop/var
mkdir /opt/data/hadoop/dfs
mkdir /opt/data/hadoop/dfs/name
mkdir /opt/data/hadoop/dfs/data

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

11.修改core-site.xml,hdfs-site.xml,mapred-site.xml

core-site.xml

<configuration>
    <!-- Hadoop临时目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/data/hadoop/tmp</value>
        <description>Hadoop临时目录</description>
    </property>

    <!-- Hadoop文件系统的默认名称空间 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

hdfs-site.xml ,value中的路径需要自己创建

<configuration>

  <!-- Namenode持久储存命名空间和事务日志的路径 -->
  <property>
    <name>dfs.name.dir</name>
    <value>/opt/data/hadoop/dfs/name</value>
    <description>本地文件系统上Namenode持久储存命名空间和事务日志的路径</description>
  </property>

  <!-- DataNode对应的本地文件系统上以逗号分隔的路径列表 -->
  <property>
    <name>dfs.data.dir</name>
    <value>/opt/data/hadoop/dfs/data</value>
    <description>DataNode对应的本地文件系统上以逗号分隔的路径列表</description>
  </property>

  <!-- 副本数量 是伪分布式副本数为1-->
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>

  <!-- 是否检查权限生成dfs -->
  <property>
    <name>dfs.permission</name>
    <value>false</value>
    <description>为true需要检查权限才能生成dfs</description>
  </property>

</configuration>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

mapred-site.xml

<configuration>

  <!-- 指定 JobTracker 的地址和端口号,用于 MapReduce 作业的跟踪和管理 -->
  <property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
  </property>

  <!-- 指定本地模式运行时的临时文件目录,用于存储本地模式下生成的临时数据和输出 -->
  <property>
    <name>mapred.local.dir</name>
    <value>/opt/data/hadoop/var</value>
  </property>

  <!-- 指定使用的 MapReduce 框架的名称,这里设置为 YARN,表示使用 Hadoop 的资源管理器 -->
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>

</configuration>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

12.启动hadoop

在启动前先要格式化hdfs

/opt/module/hadoop/bin/hadoop namenode -format //根据自己的Hadoop安装路径使用
  • 1

出现successfully formatted时则格式化成功
在这里插入图片描述

启动hadoop

//启动hdfs
/opt/module/hadoop/sbin/start-dfs.sh
//启动yarn
/opt/module/hadoop/sbin/start-yarn.sh

//或者启动全部
/opt/module/hadoop/sbin/start-all.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

使用jps命令查看是否启动成功

jps
  • 1

在这里插入图片描述

当出现下列进程时则启动成功,可以在浏览器输入下列地址查看HDFS和YARN的运行情况
http://‘虚拟机的IP地址’:9870/
http://‘虚拟机的IP地址’:8088/
在这里插入图片描述
在这里插入图片描述
我们对hdfs进行操作验证
进入hadoop的bin目录执行操作

//创建user目录
./hdfs dfs -mkdir /user

//在user目录下创建hadoop目录
./hdfs dfs -mkdir /user/hadoop

//查看suer目录的文件
./hdfs dfs -ls /user
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述
将hadoop的配置文件拷贝到hadoop目录中,作为测试数据

./hdfs dfs -put /opt/module/hadoop/etc/hadoop/*.xml /user/hadoop
//查看如何拷贝成功
./hdfs dfs -ls /user/hadoop
  • 1
  • 2
  • 3

当hadoop目录下有文件时则成功
在这里插入图片描述

到此伪分布式部署成功

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/1002507
推荐阅读
相关标签
  

闽ICP备14008679号