0


Hadoop单节点集群的搭建

    本文基于Apache Hadoop 3.3.6 – Hadoop:设置单节点集群。这一网页的整理创作,旨在进行基于Linux系统环境下的搭建思路分享。

基本配置:

  • JAVA

在Apache官网下(Hadoop Java 版本 - Hadoop - Apache Software Foundation)查阅得知Hadoop(即当前各大数据软件)支持以下版本:

b2dbb8e1957a4defaa36e69fce6eae5f.png

            我们据此取交集,安装JAVA 8。JDK可以使用以下命令安装(使用具有sudo权限的用户输入命令):

sudo yum install java-1.8.0-openjdk

sudo yum install java-1.8.0-openjdk-devel

然后检查 jdk 是否成功安装:

java -version

javac -version

如果显示出版本号(如下图),则说明安装成功!

4e9f46be8959488892bcaabcbd913f8b.png

  • SSH免密登录

      在使用SSH生成免密登陆之前先设置一个专门的Hadoop用户,便于修改权限等的操作,方便后期管理(在设置密码时密码不足8位会出现警告但可以继续执行命令):
    

sudo useradd -s /bin/bash -m hadoop #创建

sudo passwd hadoop #初始化密码

sudo usermod -aG wheel hadoop #添加用户 “hadoop”到 “wheel” 用户组,具sudo权限

4c29ad1b728747a393fe98562538d435.png

     现在在Hadoop用户下配置ssh免密登录(如果提示没有 SSH 可以使用 sudo yum install ssh 命令安装):

su hadoop #切换为hadoop用户,下文均以hadoop用户执行命令

ssh-keygen -t rsa #生成用户当前密钥

3f7bffe06dfe497888dbfadd07c550b9.png

ssh-copy-id hadoop@localhost #将本地的 SSH 公钥复制到hadoop

ssh localhost #测试隧道是否能连接到主机

9032fb21e5514314a82d7dc42a5e7483.png

Hadoop伪分布式系统的安装(Hadoop用户下)

  • 安装wget

      wget (web get) 可以**从指定网址下载网络文件**。速度快,方便好用。
    
      本文的下载方法是通过wget指定网页链接,还可以在Windows下载好压缩包后上传文件至Linux系统再解压(直接下载原文件会比较慢,同时也不推荐)。
    

sudo yum install wget

  • 下载Hadoop安装包

      在Apache官网中给出了官网的下载链接,缺点是下载速度非常慢,时间跨度在8小时左右并且网速不稳定,推荐使用国内镜像网站下载:Index of /apache/hadoop/common/hadoop-3.3.6 (tsinghua.edu.cn)
    

f19cf0cbe2cb4bee9d0762e1dcbb3854.png

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.6//hadoop-3.3.6.tar.gz
     等待Hadoop压缩包下载完成后,新建一个专门用来存放Hadoop程序的目录,一般在  /usr/local 下创建(如果提示没有 tar 可以使用 sudo yum install tar 命令安装)
#此块均在家目录下执行

sudo mkdir /usr/local/hdp    
#此处创建了一个名为hdp的目录

sudo chown -R hadoop:hadoop /usr/local/hdp    
#修改权限
#递归地将/usr/local/hdp目录及其下的所有文件和子目录的所有者改为用户 hadoop 和用户组 hadoop,此文件夹下的其他文件权限保持默认root用户

tar -xzf hadoop-3.3.6.tar.gz    
#在家目录下执行解压命令文件

mv hadoop-3.3.6 /usr/local/hdp/hadoop    
#为方便输入将 hadoop-3.3.6 改名为 hadoop并移动到创建好的hdp目录下

dc586e09a53c4c799f3be9113c36c02a.png

     完成上述步骤后显示 /usr/local 目录下文件的权限,确定 hadoop 用户对 hdp 拥有足够的管理权限。

配置文件

  • 设置JAVA环境变量

首先找到 Java 安装的根目录,步骤如下:

47f04daf1a3f4b8398ec631430513087.png

27372524b9954b23b14128d23a15a582.png

    java 安装的在目录 /usr/lib/jvm 下,此时切换到 hadoop-env.sh 文件中写入环境变量,此文件在目录 /usr/local/hdp/hadoop/etc/hadoop 下,所有要配置的文件都在该目录下:

c5893c20ace145aabbea638f81c871b4.png

首先在 hadoop-env.sh 的 vim 模式下写入,保存并退出。

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

完成以上步骤就完成了Java环境变量的配置。

配置 core-site.xml

将以下内容存入 xml 文件

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

2a236212174440a197ad64780bd3023b.png

配置好后如上图

配置hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
    此时保存并退出后就可以格式化并尝试启动 NameNode 守护程序和 DataNode 守护程序,但是方便起见,在此目录下将 yarn 也配置好避免多次切换目录。

配置mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>

配置yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

格式化文件系统

切换到 /hadoop/bin 目录下使用命令进行格式化

启动进程

此时启动 hdfs 会显示(无法解析主机名 “bbuildServe”:名称或服务未知):

2d4eba66e3fd4ac682f2047f9d18efd6.png

这是因为主机名没有正确映射到主机地址(127.0.0.1),还需要在 /etc 文件下进入 vim 模式修改 hosts 所映射的主机名(需要借助sudo权限):

6bc6464a4bb24fbbb0ac22f7584218a2.png

    此时再切回 /sbin 目录下执行 start 就能正常启动进程了(此时会报一个绿色警告表示映射成功),再使用 jps 命令查看系统进程(除 jps 外至少三个进程,是没有问题的)

baddfc96a5ad4b88b10b5cf9c85fb894.png

在此目录下再尝试用 ./start-yarn.sh 命令启动 yarn,一切正常下会显示以下进程:

36250e16c3284e74a9c15dab015066cf.png

隧道链接web页面

HDFS管理后台链接:http://localhost:9870/

以及YARN管理后台链接:http://localhost:8088/

    在程序启动的前提下通过 SSH 隧道能够访问到链接网页,SSH 隧道设置目标端口及监听端口分别为 8088/9870 (这里以端口 8088 为例):

92c8a5c10cd043e8be1bf113d4e8efd9.png

设置好 SSH 并成功打开后就可以在浏览器直接进入对应的网址。

8737ec5eb45a41679f8f4881bf2602ef.png

结束进程

            在启动各程序后使用,使用结束必须结束进程,否则可能会损坏安装程序, /stop-all.sh 一次结束所有进程。

总结

本文仅简单梳理安装分布式文件系统的经过,未提及很多可能隐藏的问题,同时本文未写入创建执行作业所需目录的具体过程,同时若有先配置过防火墙,在防火墙开启的状态下其端口访问可能会失败,端口访问使可以先检查防火墙是否为开启状态,以上等皆欢迎留言讨论。


本文转载自: https://blog.csdn.net/2302_76932373/article/details/142597452
版权归原作者 此人很懒, 所有, 如有侵权,请联系我们删除。

“Hadoop单节点集群的搭建”的评论:

还没有评论