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配置。在实际应用中,可以根据具体情况进行优化和定制化配置以达到更好的效果。