关于hadoop:阿里云搭建Hadoop集群

21次阅读

共计 5705 个字符,预计需要花费 15 分钟才能阅读完成。

1 前言

在讲述 Hadoop 集群搭建之前,首先要理解 Hadoop 和集群两个名词,Hadoop 是由 Apache 基金会开发的分布式系统基础架构,简略了解就是大数据技术利用的根底。集群能够了解为多台装有 hadoop 的服务器。搭建 Hadoop 集群的目标就是为了治理多台服务器,使多台服务器之间可能协调工作。本文抉择了 3 台阿里云服务器。从下图中能够对整个大数据架构有了大体的理解。

Hadoop 次要有 HDFS(分布式文件存储系统)、Yarn(集群资源管理与调度)和 MapReduce(分布式计算框架)组成。Hadoop 集群中分为主机(master)和从机(slave),本文配置一台阿里云服务器为主机和从机。其余两台为从机。HDFS(分布式文件存储系统)在主机上称为 Namenode 节点,在从机上称为 Datanode 节点。Namenode 保护 HDFS 的文件系统树以及文件树中所有的文件和文件夹的元数据。能够了解为 win 零碎中文件夹属性中的那些信息,Datanode 是存储和检索数据的中央。能够了解为 win 零碎中文件夹中理论数据。

Yarn(集群资源管理与调度)在主机上称为 ResourceManager 节点,在从机上称为 NodeManager。ResourceManager 是全局的资源管理器, 负责整个零碎的资源管理和调配,NodeManager 是节点上的资源和工作管理器。定时地向 ResourceManager 汇报本节点的资源应用状况。

MapReduce(分布式计算框架)顾名思义就是计算框架,有啥特点呢,就是分布式,能够把大型数据处理工作分解成很多单个简略的工作,而后再把各个处理结果合在一起。计算过程能够百度理解。

2 Hadoop 集群搭建

2.1 服务器零碎设置

网上教程多采纳虚拟机创立多个 linux 零碎来搭建 Hadoop 集群,我感觉虚拟机有弊病就采纳了阿里云服务器。阿里云服务器购买选配过程后续再介绍。

  • hosts 文件批改

hosts是一个没有扩展名的系统文件,其根本作用就是将一些罕用的网址域名与其对应的 IP 地址建设一个关联“数据库”。当用户在浏览器中输出一个须要登录的网址时,零碎会首先主动从 hosts 文件中寻找对应的 IP 地址,一旦找到,零碎就会立刻关上对应网页,如果没有找到,则零碎会将网址提交 DNS 域名解析服务器进行 IP 地址的解析。就如你拜访本地的时候,你输出 127.0.0.1 和 localhost 是统一的。hosts 文件批改就是在增加三台服务器 IP 和域名的映射。

vi /etc/hosts

增加一下映射

172.27.66.8 master
172.27.66.10 slave1
172.27.66.9 slave2

后续拜访域名和拜访 IP 的成果是一样的。

依照 IP 地址批改三台服务器的主机名

hostnamectl set-hostname master
hostnamectl set-hostname slave1
hostnamectl set-hostname slave2
  • SSH 免密登录

SSH 免密登录是为了各个服务器之间拜访不在须要明码。三台服务器别离执行一遍如下命令。执行完该命令会在 root/.ssh 下生成密钥。

ssh-keygen -t rsa
#在 slave1 和 slave2 下别离把 id_rsa.pub 发送到主机上,并从新命令
scp id_rsa.pub root@master:~/.ssh/id_rsa.pub.slave1
scp id_rsa.pub root@master:~/.ssh/id_rsa.pub.slave2

在主机 root/.ssh 下把 id_rsa.pub、id_rsa.pub.slave1、id_rsa.pub.slave2 追加到 authorized_keys 中。

cat id_rsa.pub >> authorized_keys 
cat id_rsa.pub.slave1 >> authorized_keys 
cat id_rsa.pub.slave2 >> authorized_keys

而后把 authorized_keys 传回到 slave1 和 slave2 中

scp authorized_keys root@slave1:~/.ssh 
scp authorized_keys root@slave2:~/.ssh

最初批改文件权限。

chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys  

2.2 Hadoop 装置

hadoop 各组件软件下载地址:

清华镜像:https://mirrors.tuna.tsinghua…

  • 各模块配置文件批改

Hadoop 的版本为 3.2.1,软件包 hadoop-3.2.1.tar.gz 解压到 /usr/local 下,

tar -zxvf hadoop-3.2.1.tar.gz

装置实现后进入 /usr/local/hadoop-3.2.1/etc/hadoop,批改配置文件为:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、workers,

# 关上文件的命令
vi core-site.xml

core-site.xml在 <configuration> —-</configuration> 之间增加如下配置,留神批改 hadoop.tmp.dir 门路(依照本人零碎的门路)

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop-3.2.1/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
</configuration>

hdfs-site.xm l 在 <configuration> —-</configuration> 之间增加如下配置,留神批改 dfs.datanode.data.dir 和 dfs.namenode.name.dir 门路。dfs.replication 正本参数。同 datanode 个数。

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop-3.2.1/hdfs/namenode</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop-3.2.1/hdfs/datanode</value>
    </property>

    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>

    <property>
      <name>dfs.permissions</name>
      <value>false</value>
      <description>need not permissions</description>
    </property>

    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>
</configuration>

yarn-site.xml在 <configuration> —-</configuration> 之间增加如下配置。

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>

    <property>
        <description>The address of the applications manager interface in the RM.</description>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
    </property>

    <property>
        <description>The address of the scheduler interface.</description>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
    </property>

   <property>
        <description>The http address of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:18088</value>
   </property>

   <property>
        <description>The https adddress of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${yarn.resourcemanager.hostname}:18090</value>
   </property>

   <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>${yarn.resourcemanager.hostname}:8031</value>
   </property>

   <property>
        <description>The address of the RM admin interface.</description>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
   </property>

   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

mapred-site.xml在 <configuration> —-</configuration> 之间增加如下配置。

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
 
    <property>
      <name>mapred.job.tracker</name>
      <value>master:9001</value>
    </property>
</configuration>

workers下增加如下内容。

slave1
slave2
  • 环境变量设置

hadoop-env.sh、yarn-env.sh两个文件下,增加 java 的地址,环境变量的目标就是为了便于拜访。

export JAVA_HOME=/usr/local/jdk1.8.0_261

2.3 JDK8 装置

java 的版本为 jdk-8u261-linux-x64.tar.gz,解压到 /usr/local 下

tar -zxvf jdk-8u261-linux-x64.tar.gz -C /usr/local

设置环境变量

vi /etc/profile
#增加如下内容
JAVA_HOME=/usr/local/jdk1.8.0_261
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
#立刻失效环境变量
source /etc/profile

2.4 hadoop 集群测试

# 将主机下配置好的 hadoop 文件整体发送到两个从机上
scp -r /usr/local/hadoop-3.2.1 root@slave1:/usr/local
scp -r /usr/local/hadoop-3.2.1 root@slave2:/usr/local

#增加 hadoop 的环境变量
export HADOOP_HOME=/usr/local/hadoop-3.2.1
export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

#在主机下格式化 namenode
/usr/local/hadoop-3.1.1/bin/hdfs namenode -format
#启动和敞开 HDFS
start-dfs.sh
stop-dfs.sh
#启动和敞开 yarn
start-yarn.sh
stop-yarn.sh
#启动全副
start-all.sh
stop-all.sh

启动集群后在主机上输出 jps 显示

在从机上输出 jps 显示

输出 hdfs dfsadmin -report 显示

总结

Hadoop 集群搭建,依照步骤一步一步搭建,难度不大。

不求点赞 只求有用

本文由微信公众号《大数据分析师常识分享》公布

正文完
 0