centos7搭建hadoop2.10高可用(HA)

1. 安装hadoop2.10

在CentOS 7 上安装Hadoop 的过程已经很成体系,可以使用 Cloudera 包管理器(CDH),但是 CDH 需要订阅并不免费,而且似乎也不一定适合Hadoop 的最新版本。因此,我们将在此处描述如何手动安装 Hadoop 。

1.1 前置依赖

安装Hadoop之前,您需要在系统上安装Java。运行以下命令来安装Java:

yum install java-1.8.0-openjdk-headless

完整的安装命令:

yum update -y

yum install -y java-1.8.0-openjdk-headless

curl -O https://www-eu.apache.org/dist/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz

tar xvf hadoop-2.10.0.tar.gz

mv hadoop-2.10.0 /usr/local/hadoop

chown -R hduser:hadoop /usr/local/hadoop

其中 hduser 是系统中已创建的非root用户,而 hadoop 是在此过程中创建的组。

1.2 配置环境

将Hadoop的bin目录添加到PATH中。您需要在bashrc文件中设置Hadoop环境变量。使用vi编辑器打开~/.bashrc 文件:

vi ~/.bashrc

在文件末尾添加以下行:

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

保存并关闭文件。

2. Hadoop HA 环境准备

2.1 修改hadoop-env.sh

首先需要重新分发修改后的hadoop-env.sh之前将具有以下环境变量值的文件复制并重命名为hadoop-env.sh:

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

cp hadoop-env.sh hadoop-env.sh.orig

使用vi编辑器打开hadoop-env.sh文件:

vi hadoop-env.sh 

找到以下内容:

export JAVA_HOME=${JAVA_HOME}

export HADOOP_OPTS="-Djava.net.preferIPv4Stack=true"

修改为以下内容:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64

export HADOOP_OPTS="-Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="

2.2 配置masters&slaves

Hadoop HA的配置主要涉及以下两个文件

/usr/local/hadoop/etc/hadoop/masters

/usr/local/hadoop/etc/hadoop/slaves

修改masters文件:

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

echo "namenodehostname" >masters

修改slaves文件:

echo "datanode1hostname" >slaves

echo "datanode2hostname" >>slaves

echo "datanode3hostname" >>slaves

3. 配置Hadoop HDFS HA

3.1 配置core-site.xml和hdfs-site.xml文件

core-site.xml:

fs.defaultFS

hdfs://NAMENODE-HOSTNAME/

io.file.buffer.size

131072

hdfs-site.xml:

dfs.nameservices

nameserviceha

dfs.ha.namenodes.nameserviceha

namenode1,namenode2

dfs.namenode.rpc-address.nameserviceha.namenode1

namenode1:8020

dfs.namenode.rpc-address.nameserviceha.namenode2

namenode2:8020

dfs.namenode.http-address.nameserviceha.namenode1

namenode1:50070

dfs.namenode.http-address.nameserviceha.namenode2

namenode2:50070

dfs.namenode.shared.edits.dir

qjournal://journal-1:8485;journal-2:8485;journal-3:8485/addressofmyoriginlatethreejournalnode/hadoop-2.10.0/csdn/ha

dfs.journalnode.edits.dir

/export/hadoop-2.10.0/csdn/ha/journalnode

dfs.ha.fencing.methods

sshfence

dfs.ha.fencing.ssh.private-key-files

/tmp/id_rsa

dfs.ha.automatic-failover.enabled

true

4. 总结

至此,我们已经成功完成了Hadoop2.10的高可用性(HA)环境部署。本文中提供了详细的Hadoop2.10 HA环境准备及HDFS的HA配置。在实际应用中,可以根据具体情况进行优化和定制化配置以达到更好的效果。

操作系统标签