大数据之坑:腾讯云Hadoop3.1.3安装及集群环境搭建完全分布式 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

大数据之坑:腾讯云Hadoop3.1.3安装及集群环境搭建完全分布式

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:84

  • 媒介
  • 1.情况设备
    • 1.1 jdk安装
    • 1.2 防火墙封闭
    • 1.3 修改hosts文件
    • 1.4 创建hadoop用户(跳过)
  • 2.建立机械间互信
    • 2.1描述
    • 2.2 生成公钥
    • 2.3 传输认证文件
  • 3.安装hadoop以及hadoop设备
    • 3.1 hadoop下载(3.1.3)
    • 3.2 设备hadoop
  • 4.大年夜功告成
    • 4.1启动hadoop
    • 4.2然后即可在web网页查看到本身的页面!!!

媒介

因为课程进修须要,加上本机电脑的不便利性,笔者采取的是三台腾讯云的租用办事器(学生款性价比挺高的),因为在安装以及情况搭建过程中出现了很多问题,萌芽了相当多的材料,历经几番曲折,于是在此分享一下本身较为周全的操作过程,欲望可以或许帮到各位解决问题。

腾讯云办事器体系 CentOs

三台办事器分别号称代号为:master slave1 slave2

1.情况设备

1.1 jdk安装

Tips:机械已为Linux体系

在master机械节点(自行决定哪台机械作为master节点)进行操作:

  • 切换到root模式下,避免权限问题。(履行代码:su root ,然后输入暗码即可)(如不雅已经是root用户模式下则忽视此条操作)
  • 下载jdk文件
    此处推荐华为镜像站的jdk(1.8.0)文件网址
    长处:下载速度贼快,异常丝滑
wget https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz
  • 新建java文件夹用于jdk解压
    下载完之后,在usr文件夹下创建一个java文件夹
mkdir /usr/java
  • 解压jdk文件至方才创建的文件夹

    tar -zxvf +jdk的名字(可大年夜下载操作处查看到) -C +解压路径(本文为/usr/java)

下述代码为本文运行代码(如不雅你完全按照本文操作可直接运行该代码)

tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/java
  • 设备java情况变量
    1.打开设备文件
vim /etc/profile

2.修改设备文件(随便找个地位参加以下内容)

注:Linux下文件内容修改:键入i之后即可编辑文件内容,编辑完成之后按esc,输入符号:参加末行模式,然后输入wq保存退出

export JAVA_HOME=/usr/java/jdk1.8.0_151
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3.使情况变量生效

source /etc/profile

4.结不雅测试

java -version

如不雅可以或许返回java版本号则jdk安装成功(如下图)

java版本号返回

1.2 防火墙封闭

  • 运行如下代码
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

1.3 修改hosts文件

在媒介中末尾提到过笔者的集群为三台机械,所以笔者的hosts文件中ip映射有三行本身添加的代码,大年夜家可以根据本身实际情况恰当修改,然则此处ip映射关系必定不克不及掉足!!

  • 对于master结点,须要在文件末尾添加的内容为:
    master结点的内网ip master
    另一个机械1的公网ip slave1
    另一个机械2的公网ip slave2

  • 对于slave1结点,须要在文件末尾添加的内容为:
    master结点的公网ip master
    slave1结点的内网ip slave1
    另一个机械2的公网ip slave2

  • 对于slave2结点,须要在文件末尾添加的内容为:
    master结点的公网ip master
    slave1结点的公网ip slave1
    slave2结点的内网ip slave2

总而言之,对于本身机械上的ip映射就填本身的内网ip,本身机械上对其他ip的映射就是他们的公网ip

1.4 创建hadoop用户(跳过)

因为非root用户可能涉及权限问题,于是本文直接应用root用户进行后续操作

2.建立机械间互信

2.1描述

因为hadoop必须机械之间免密登录,所以我们必须采取ssh密钥认证方法去包管机械登录。

  • 机械a向机械b建立免密登录的流程
    1.机械a生成公钥
    2.机械a将认证文件传给机械b
    3.机械a成功单向建立与机械b的免密登录(即a可以免密登录b但b不克不及免密登录a,只须要在b上履行上述机械a的所有操作即可完成b到a的免密登录)

2.2 生成公钥

ssh-keygen
  • 碰到提示直接全回车就行,成功后会出现一个奇形怪状内容的矩形框,标头为RSA
  • 成功之后会在 ~/.ssh文件夹下面看到id_rsa id_rsa.pub文件(为root用户登录情况下,可能会有authorized_keys文件,问题不大年夜)

跳转至~/.ssh文件夹下

cd ~/.ssh

查看文件内容

ls

2.3 传输认证文件

  • 传递至localhost
ssh-copy-id localhost

检查是否成功

ssh localhost

第一次登录时须要输入一次本机root用户登录暗码,输入进去即可,然后再次键入代码:

ssh localhost

如不雅不须要输入暗码即竽暌箍现了日孚信息,则传递至localhost成功

  • 传递至slave1

传递时须要输入一次 slave1结点上的 root用户的登录暗码

ssh-copy-id slave1

检查是否成功

ssh slave1

如不雅不须要输入暗码即竽暌箍现了日孚信息,则传递至slave1成功

  • 传递至slave2

传递时须要输入一次 slave2结点上的 root用户的登录暗码

ssh-copy-id slave2

检查是否成功

ssh slave2

如不雅不须要输入暗码即竽暌箍现了日孚信息,则传递至slave2成功

3.安装hadoop以及hadoop设备

3.1 hadoop下载(3.1.3)

  • 跳转至根目次
cd
  • hadoop文件下载

此处推荐应用清华镜像的下载链接(纵享丝滑+1了):

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
  • 新建hadoop文件夹用于解压
    下载完之后,在usr文件夹下创建一个hadoop文件夹
mkdir /usr/hadoop
  • 解压hadoop文件至方才创建的文件夹

    tar -zxvf +下载文件的名字(可大年夜下载操作处查看到) -C +解压路径(本文为/usr/hadoop)

下述代码为本文运行代码(如不雅你完全按照本文操作可直接运行该代码)

tar -zxvf hadoop-3.1.3.tar.gz -C /usr/hadoop
  • 设备情况变量
vim /etc/profile

将之前设备jdk时刻的内容调换为:

export JAVA_HOME=/usr/java/jdk1.8.0_151
export HADOOP_HOME=/usr/hadoop/hadoop-3.1.3
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_LOG_DIR=/usr/hadoop/hadoop-3.1.3/logs
export YARN_LOG_DIR=$HADOOP_LOG_DIR
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 使情况变量生效
source /etc/profile
  • 测试
hadoop version

如不雅出现如下版本号信息则安装成功
hadoop版本号

3.2 设备hadoop

  • 创建文件夹
mkdir /usr/hadoop/hadoop-3.1.3/tmp
mkdir /usr/hadoop/hadoop-3.1.3/hdfs
mkdir /usr/hadoop/hadoop-3.1.3/hdfs/name
mkdir /usr/hadoop/hadoop-3.1.3/hdfs/data
  • 跳转至目次 /usr/hadoop/hadoop-3.1.3/etc/hadoop/
cd /usr/hadoop/hadoop-3.1.3/etc/hadoop/
  • 修改core-site.xml(在文件末尾的 之间添加如下代码)
<!--设备hdfs文件体系的定名空间--> 
  <property> 
    <name>fs.defaultFS</name> 
    <value>hdfs://master:9000</value> <!--master处为主机名,9000为端标语-->
  </property> 
 
<!-- 设备操作hdfs的存冲大年夜小 --> 
  <property> 
    <name>io.file.buffer.size</name> 
    <value>4096</value> 
  </property> 
<!-- 设备临时数据存储目次 --> 
  <property> 
    <name>hadoop.tmp.dir</name> 
    <value>file:/usr/hadoop/hadoop-3.1.3/tmp</value>
  </property>

  • 修改hdfs-site.xml
<!--设备副本数--> 
    <property> 
        <name>dfs.replication</name> 
        <value>3</value> 
    </property> 
<!--hdfs的元数据存储地位--> 
    <property> 
        <name>dfs.namenode.name.dir</name> 
        <value>file:/usr/hadoop/hadoop-3.1.3/hdfs/name</value>
    </property> 
<!--hdfs的数据存储地位--> 
    <property> 
        <name>dfs.datanode.data.dir</name> 
        <value>file:/usr/hadoop/hadoop-3.1.3/hdfs/data</value>
    </property> 
<!--hdfs的namenode的web ui 地址--> 
    <property> 
        <name>dfs.http.address</name> 
        <value>master:50070</value>
    </property> 
<!--hdfs的snn的web ui 地址--> 
    <property> 
        <name>dfs.secondary.http.address</name> 
        <value>0.0.0.0:50090</value>
    </property> 
<!--是否开启web操作hdfs--> 
    <property> 
        <name>dfs.webhdfs.enabled</name> 
        <value>true</value> 
    </property> 
<!--是否启用hdfs权限(acl)--> 
    <property> 
        <name>dfs.permissions</name> 
        <value>false</value> </property>
  • 修改mapred-site.xml
<!--指定mapreduce运行框架--> 
    <property> 
        <name>mapreduce.framework.name</name> 
        <value>yarn</value> </property> 
<!--汗青办事的通信地址--> 
    <property> 
        <name>mapreduce.jobhistory.address</name> 
        <value>master:10020</value>
    </property> 
<!--汗青办事的web ui地址--> 
    <property> 
        <name>mapreduce.jobhistory.webapp.address</name> 
        <value>master:19888</value>
    </property>
  • 修改yarn-site.xml
<!--指定resourcemanager所启动的办事器主机名--> 
    <property> 
        <name>yarn.resourcemanager.hostname</name> 
        <value>master</value> 
    </property> 
<!--指定mapreduce的shuffle--> 
    <property> 
        <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</value> 
    </property> 
<!--指定resourcemanager的内部通信地址--> 
    <property> 
        <name>yarn.resourcemanager.address</name> 
        <value>master:8032</value> 
    </property> 
<!--指定scheduler的内部通信地址--> 
    <property> 
        <name>yarn.resourcemanager.scheduler.address</name> 
        <value>master:8030</value> 
    </property> 
<!--指定resource-tracker的内部通信地址--> 
    <property> 
        <name>yarn.resourcemanager.resource-tracker.address</name> 
        <value>master:8031</value> 
    </property> 
<!--指定resourcemanager.admin的内部通信地址--> 
    <property> 
        <name>yarn.resourcemanager.admin.address</name> 
        <value>master:8033</value> 
    </property> 
<!--指定resourcemanager.webapp的ui监控地址--> 
    <property> 
        <name>yarn.resourcemanager.webapp.address</name> 
        <value>master:8088</value> 
    </property>
  • 修改workers(hadoop3之前文件名为slaves)

直接将文件内容调换为

master
slave1
slave2
  • 设备hadoop-env.sh、yarn-env.sh、mapred-env.sh
    参加本身的jdk路径,即/usr/java/jdk1.8.0_151(随便在文件找个空行参加以下内容)
export JAVA_HOME=/usr/java/jdk1.8.0_151
  • 设备文件拷贝
  • 办法一:直接在别的两台机械上反复3.2的所有操作
  • 办法二:master结点打包文件直接传输至其他两台机械
    打包指令:tar -zcvf +生成的紧缩文件名 + 被紧缩文件名。
    发送指令: scp +待发送文件名+ 用户名@主机名:另一台机械的文件接收路径

例如(仅做格局参考例子):

scp hadoop-3.1.3.tar.gz root@slave1:/usr/hadoop

发送完成之后在对应机械上履行对应恰当解压敕令即可(至指定精确文件夹)

4.大年夜功告成

4.1启动hadoop

  • 跳转目次
cd /usr/hadoop/hadoop-3.1.3/sbin
  • 格局化namenode
hdfs namenode -format

如不雅出现了SHUTDOWN_MSG: Shutting down NameNode at xxx信息也不要慌张,向上寻找信息,如不雅能找到 INFO common.Storage:Storage directory ******省略 has been successfully formatted信息,则格局化成功了,忽视后面的SHUTDOWN_MSG即可

  • 启动所有办事
start-all.sh
  • 若出现很多ERROR的情况则进行下列操作

跳转目次

cd /usr/hadoop/hadoop-3.1.3/sbin

修改start-dfs.sh和stop-dfs.sh文件,添加如下内容:

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

修改start-yarn.sh和stop-yarn.sh文件,添加如下内容:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

从新履行代码

start-all.sh
  • 成功后输入jps指令查看情况
jps

应当能看莅临行信息包含如下内容:
NodeManager ResourceManager NameNode Jps DataNode SecondaryNameNode

4.2然后即可在web网页查看到本身的页面!!!

http://master办事器的公网ip:50070/

在这里插入图片描述

相关案例查看更多