Hadoop的安装与部署(分布式+非高可用)

* 全文的命令都是在登录root账号的情况下执行。

一、硬件环境

假设有3台机,IP及主机名如下:

192.168.100.105 c1
192.168.100.110 c2
192.168.100.115 c3

 

二、软件环境

操作系统:Ubuntu Server 18.04

JDK:1.8.0

Hadoop:3.3.0/3.3.1

* 这里的ZooKeeper、Hadoop根目录都放在/home/目录下

 

三、系统运行环境配置

https://www.cnblogs.com/live41/p/15525826.html

 

四、部署Hadoop

* 以下操作在每台机都要执行一次

1.下载Hadoop安装包

https://downloads.apache.org/hadoop/common/

 

2.解压安装包

这里假定下载的是hadoop-3.3.1.tar.gz文件,解压到/usr/bin/目录

tar -xvf hadoop-3.3.1.tar.gz -C /usr/local/

把目录名也改一下

mv /usr/local/hadoop-3.3.1 /usr/local/hadoop

 

3.创建目录

cd /usr/local/hadoop
sudo mkdir hdfs
sudo mkdir hdfs/datanode
sudo mkdir hdfs/namenode
sudo mkdir hadoop/logs
sudo mkdir yarn
sudo mkdir yarn/logs

 

4.配置环境变量

vim ~/.bashrc

添加内容

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

更新环境变量

source ~/.bashrc

测试

hadoop version

 

5.修改Hadoop的配置

(1) 进入Hadoop的配置文件目录

cd $HADOOP_CONF_DIR

 或cd /usr/local/hadoop/etc/hadoop/

 

(2) 编辑hadoop-env.sh文件

vim hadoop-env.sh

查看以下内容,如果没有就加上,如果已有就不用改。

export JAVA_HOME=/usr/bin/jdk1.8.0
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export HADOOP_LOG_DIR=/usr/local/hadoop/logs

 

(3) 编辑core-site.xml

vim core-site.xml

在c1机添加以下内容:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://c1:9820/</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
</configuration>

在c2、c3机添加以下内容:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://c1:9820/</value>
        <description>NameNode URI</description>
    </property>
</configuration>

 

(4) 编辑hdfs-site.xml文件

vim hdfs-site.xml

在c1机添加以下内容:

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///usr/local/hadoop/hdfs/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///usr/local/hadoop/hdfs/datanode</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.datanode.use.datanode.hostname</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
        <value>false</value>
    </property>
</configuration>

在c2、c3添加以下内容:

<configuration>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///usr/local/hadoop/hdfs/datanode</value>
        <description>DataNode directory</description>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.datanode.use.datanode.hostname</name>
        <value>false</value>
    </property>
</configuration>

 

(4) 编辑yarn-site.xml文件

vim yarn-site.xml

在c1机添加以下内容:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>file:///usr/local/hadoop/yarn/local</value>
    </property>
    <property>
        <name>yarn.nodemanager.log-dirs</name>
        <value>file:///usr/local/hadoop/yarn/logs</value>
    </property>
</configuration>

 在c2、c3机添加以下内容:

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

 

(5) 编辑mapred-site.xml文件

vim mapred-site.xml

在c1机添加以下内容:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>c1:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>c1:19888</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.intermediate-done-dir</name>
        <value>/mr-history/tmp</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.done-dir</name>
        <value>/mr-history/done</value>
    </property>
</configuration>

  在c2、c3机添加以下内容:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

 

(6) 修改workers文件(旧版的是slaves文件)

vim workers

添加以下内容:

c1
c2
c3

 

6.修改文件权限

chmod 777 /usr/local/hadoop/hdfs
chmod 777 /usr/local/hadoop/logs

 

7.格式化hdfs

hdfs namenode -format

 

五、启动和停止Hadoop

1.启动

在c1机执行:

start-dfs.sh
start-yarn.sh

 

2.检查是否运行正常

每台机执行:

jps

 

3.创建目录和查看目录

在c1机执行:

hdfs dfs -mkdir /Clotho
hdfs dfs -ls /

 

4.登录管理界面

http://c1:9870/  或 http://192.168.100.105:9870/

 

5.停止

在c1机执行:

stop-yarn.sh
stop-dfs.sh

 

附录1:更简单和安全的操作

https://tecadmin.net/install-hadoop-on-ubuntu-20-04/

http://www.mtitek.com/tutorials/bigdata/hadoop/install.php

以上2篇新建了hadoop用户来运行,且并没有关闭防火墙,只是开通了必须的端口。

 

附录2:

高可用方式(使用了ZooKeeper)的安装步骤

https://www.cnblogs.com/live41/p/15483192.html

 

posted @ 2021-10-26 18:42  Clotho_Lee  阅读(291)  评论(0编辑  收藏  举报