2.2 Hadoop3.1.0完全分布式集群配置与部署

开源地址 https://github.com/wangxiaoleiAI/big-data

卜算子·大数据 目录

开源“卜算子·大数据”系列文章、源码,面向大数据(分布式计算)的编程、应用、架构——每周更新!Linux、Java、Hadoop、Spark、Sqoop、hive、pig、hbase、zookeeper、Oozie、flink…etc

本节主要内容:

  • 前提
  • Hadoop3.1.0最新版本完全分布式集群服务器的配置与部署
  • 配置Java环境
  • 配置免登陆
  • 配置hadoop核心文件
  • 格式化集群
  • 开启集群
  • 关闭集群

这里写图片描述

这里写图片描述

2.2.1 Java环境配置、安装

通过wget下载linux版jdk

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/jdk-8u172-linux-x64.tar.gz

Java解压缩、移动到/opt/java/路径下

#解压
tar -zxf
# 移动至/opt/java 下
tar -zxf jdk-8u172-linux-x64.tar.gz
sudo mkdir -p /opt/java
sudo mv jdk1.8.0_172/ /opt/java/

添加java环境变量

sudo vim /etc/profile.d/jdk-1.8.sh

添加如下内容

#!/bin/sh
# Author:wangxiaolei 王小雷
# Github: https://github.com/wangxiaoleiai

export JAVA_HOME=/opt/java/jdk1.8.0_172
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

Java环境变量生效

source /etc/profile

查看Java

java -version

这里写图片描述

Java配置过程结束,按此依次配置其他服务器

2.2.2 免登陆配置

  • 三台服务器操作

安装必要依赖

sudo apt install ssh
sudo apt install pdsh

配置Keygen

# 输入以下命令,一路回车完成
ssh-keygen -t rsa

修改hosts配置文件

sudo vim /etc/hosts

这里写图片描述

  • Master主机服务器操作

master免密登录到worker中

ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub worker1
ssh-copy-id -i ~/.ssh/id_rsa.pub worker2

查看登录情况,此时不需要输入密码,就可以从Master登录到worker

ssh worker1

2.2.3 Hadoop核心文件配置

  • 可以在本地修改好配置文件后,然后将Hadoop复制到集群服务器中。
  • 也可以直接在服务器中修改,完成后然后复制到其他集群中。
  • 核心文件共6个文件需要修改,分别是 hadoop-env.sh,core-site.xml, hdfs-site.xml, yarn-site.xml, mapred-site.xml和workers。

下载hadoop3.1.0压缩包

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.0/hadoop-3.1.0.tar.gz
tar -zxf hadoop-3.1.0.tar.gz
cd hadoop-3.1.0/etc/hadoop
  • 1.etc/hadoop/hadoop-env.sh

修改hadoop-env.sh文件

vim hadoop-env.sh

添加如下内容

export JAVA_HOME=/opt/java/jdk1.8.0_172/
  • 2.etc/hadoop/core-site.xml
vim core-site.xml
<configuration>

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

  <property>
      <name>io.file.buffer.size</name>
      <value>131072</value>
  </property>

</configuration>
  • 3.etc/hadoop/hdfs-site.xml
vim hdfs-site.xml
<configuration>

    <!-- Configurations for NameNode: -->
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>/var/lib/hadoop/hdfs/name/</value>
    </property>

    <property>
      <name>dfs.blocksize</name>
      <value>268435456</value>
    </property>

    <property>
      <name>dfs.namenode.handler.count  </name>
      <value>100</value>
    </property>

    <!-- Configurations for DataNode: -->

    <property>
      <name>dfs.datanode.data.dir</name>
      <value>/var/lib/hadoop/hdfs/data/</value>
    </property>

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

</configuration>
  • 4.etc/hadoop/yarn-site.xml
vim yarn-site.xml
<configuration>

  <!-- Site specific YARN configuration properties -->

  <!-- Configurations for ResourceManager and NodeManager: -->

  <!-- Configurations for ResourceManager: -->
    <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>master</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_MAPRED_HOME</value>
    </property>
    <!-- 配置外网只需要替换外网ip为真实ip,否则默认为 localhost:8088 -->
    <!-- <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>外网ip:8088</value>
    </property> -->
  <!-- Configurations for NodeManager: -->
    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
    </property>
  <!-- Configurations for History Server (Needs to be moved elsewhere): -->
</configuration>
  • 5.etc/hadoop/mapred-site.xml
vim mapred-site.xml
<configuration>
  <!-- Configurations for MapReduce Applications: -->
  <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>
  • 6.etc/hadoop/workers

修改workers文件

vim workers

删除原本的localhost,新增集群worker

worker1
worker2

2.2.4 将配置好的Hadoop文件发送到每一个集群

在master操作,master发送至worker1,worker2

scp -r hadoop-3.1.0 worker1:/home/hadoop/
scp -r hadoop-3.1.0 worker2:/home/hadoop/

在三台主机中操作

sudo mkdir -p /opt/hadoop
sudo mv hadoop-3.1.0 /opt/hadoop/
# 新建rcmd_default文件
# 设置rcmd_default入口,避免出现 master: rcmd: socket: Permission denied
sudo sh -c "echo "ssh" > /etc/pdsh/rcmd_default"

2.2.5 Hadoop环境变量配置

三台 服务器上操作如下
- 设置环境的编码

sudo vim /etc/environment

增加如下内容,解决Tab报错

LANG=en_US.utf-8
LC_ALL=en_US.utf-8
  • 设置Hadoop环境变量
sudo vim /etc/profile.d/hadoop-3.1.0.sh
#!/bin/sh
# Author:wangxiaolei 王小雷
# Github: https://github.com/wangxiaoleiai

export HADOOP_HOME="/opt/hadoop/hadoop-3.1.0"
export PATH="$HADOOP_HOME/bin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
source /etc/profile

2.2.6 Hadoop完全分布式集群格式化

三台 主机上操作:在hdfs-site.xml中指定的hdfs文件路径,先创建出来,并把root改为hadoop,使得hadoop有读写权限

sudo mkdir /var/lib/hadoop

sudo chown hadoop:hadoop /var/lib/hadoop/

只在master上操作

cd /opt/hadoop/hadoop-3.1.0/

# 开始格式化
bin/hdfs namenode -format busuanzi

这里写图片描述

2.2.7 Hadoop完全分布式集群开启

开启所有HDFS进程

sbin/start-dfs.sh
# 查看
jps

这里写图片描述

开启所有yarn进程

sbin/start-yarn.sh
# 查看
jps

这里写图片描述

开启

bin/mapred --daemon start historyserver
# 查看
jps

最终集群如下图

这里写图片描述

2.2.8 通过web端查看

此处的web端集群情况查看的ip,为master的服务器ip。

1.ResourceManager http://192.168.56.106:8088/

这里写图片描述

2.NameNode http://192.168.56.106:9870/

这里写图片描述

3.MapReduce JobHistory Server http://192.168.56.106:19888/

这里写图片描述

2.2.9 Hadoop完全分布式集群关闭

在Master上操作

关闭HDFS进程

sbin/stop-dfs.sh

关闭YARN

sbin/stop-yarn.sh

关闭MapReduce JobHistory 服务

bin/mapred --daemon stop historyserver

2.2.10 完全、干净、彻底删除集群【谨慎操作】

# 删除HDFS文件
sudo rm -rf /var/lib/hadoop
# 删除日志文件
sudo rm -rf /opt/hadoop/hadoop-3.1.0/logs/
# 删除hadoop文件
sudo rm -rf /opt/hadoop/hadoop-3.1.0/
# 删除hadoop环境变量
sudo rm -rf /etc/profile.d/hadoop-3.1.0.sh

恭喜,至此,已经拥有了标准的完全分布式大数据集群环境了,你已经走进了大数据。开始探索大数据生态的奇妙之旅。一步一步来,大数据真没那么难。

开源地址:https://github.com/wangxiaoleiAI/big-data

大数据完整知识体系原创,请长按关注微信公众号【从入门到精通】,进群交流、获取一手更新资讯。

这里写图片描述

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐