大数据高可用集群环境安装与配置(06)——安装Hadoop高可用集群

下载Hadoop安装包

登录 https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ 镜像站,找到我们要安装的版本,点击进去复制下载链接

安装Hadoop时要注意版本与后续安装的HBase、Spark等相关组件的兼容,不要安装了不匹配的版本,而导致某些组件需要重装

输入命令进行安装操作

cd /usr/local/src/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
tar -zxvf hadoop-2.7.7.tar.gz
mv hadoop-2.7.7 /usr/local/hadoop/

 

修改服务器系统环境变量

所有服务器都需要按要求修改配置

vi /etc/profile

在尾部添加下面配置

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

保存退出后,运行命令,让配置马上生效

source /etc/profile

创建Hadoop需要的文件夹

# 所有服务器都需要执行创建hadoop的tmp文件夹
mkdir -p /data/hadoop/

# 在两台master服务器创建这个文件夹
mkdir -p /data/hadoop/journaldata

 

配置Hadoop参数

打开Hadoop对应版本的官方页面,按说明对Hadoop配置文件配置相关参数

http://hadoop.apache.org/docs/r3.1.3/hadoop-project-dist/hadoop-common/SingleCluster.html

1. 配置hadoop-env.sh

cd /usr/local/hadoop/etc/hadoop/
vi hadoop-env.sh

在文件尾部添加java安装路径

export JAVA_HOME=/usr/local/java/jdk/

 

2. 配置core-site.xml

vi core-site.xml

将配置文件里的内容修改为下面内容:

<configuration>
    
    <property>
        <name>fs.defaultFSname>
        <value>hdfs://nameservice/value>
    property>
    
    <property>
        <name>fs.trash.intervalname>
        <value>4320value>
    property>
    
    <property>
        <name>hadoop.tmp.dirname>
        <value>/data/hadoop/value>
    property>
    
    <property>
        <name>ha.zookeeper.quorumname>
        <value>master:2181,master-backup:2181value>
    property>
configuration>

 

3. 配置hdfs-site.xml

vi hdfs-site.xml

将配置文件里的内容修改为下面内容:

<configuration>
    
    <property>
        <name>dfs.replicationname>
        <value>2value>
    property>
    
    <property>
        <name>dfs.namenode.name.dirname>
        <value>file://${hadoop.tmp.dir}/dfs/namevalue>
    property>
    
    <property>
        <name>dfs.datanode.data.dirname>
        <value>file://${hadoop.tmp.dir}/dfs/datavalue>
    property>
    
    <property>
        <name>dfs.nameservicesname>
        <value>nameservicevalue>
    property>
    
    <property>
        <name>dfs.ha.namenodes.nameservicename>
        <value>namenodes1,namenodes2value>
    property>
    
    <property>
        <name>dfs.namenode.rpc-address.nameservice.namenodes1name>
        <value>master:9000value>
    property>
    
    <property>
        <name>dfs.namenode.http-address.nameservice.namenodes1name>
        <value>master:50070value>
    property>
    
    <property>
        <name>dfs.namenode.rpc-address.nameservice.namenodes2name>
        <value>master-backup:9000value>
    property>
    
    <property>
        <name>dfs.namenode.http-address.nameservice.namenodes2name>
        <value>master-backup:50070value>
    property>
    
    <property>
        <name>dfs.ha.automatic-failover.enabledname>
        <value>truevalue>
    property>
    
    <property>
        <name>dfs.namenode.shared.edits.dirname>
        <value>qjournal://master:8485;master-backup:8485/nameservicevalue>
    property>
    
    <property>
        <name>dfs.journalnode.edits.dirname>
        <value>/data/hadoop/journaldatavalue>
    property>
    
    <property>
        <name>dfs.client.failover.proxy.provider.nameservicename>
        <value>
            org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
        value>
    property>
    
    <property>
        <name>dfs.ha.fencing.methodsname>
        <value>
            sshfence
            shell(/bin/true)
        value>
    property>
    
    <property>
        <name>dfs.ha.fencing.ssh.private-key-filesname>
        <value>~/.ssh/id_rsavalue>
    property>
    
    <property>
        <name>dfs.ha.fencing.ssh.connect-timeoutname>
        <value>30000value>
    property>
configuration>

 

4. 配置mapred-site.xml

mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

将配置文件里的内容修改为下面内容

<configuration>
    
    <property>
        <name>mapreduce.framework.namename>
        <value>yarnvalue>
    property>
configuration>

 

5. 配置yarn-site.xml

vi yarn-site.xml

将配置文件里的内容修改为下面内容

<configuration>
    
    <property>
        <name>yarn.resourcemanager.ha.enabledname>
        <value>truevalue>
    property>
    
    <property>
        <name>yarn.nodemanager.aux-servicesname>
        <value>mapreduce_shufflevalue>
    property>
    
    <property>
        <name>yarn.nodemanager.resource.memory-mbname>
        <value>1024value>
    property>
    
    <property>
        <name>yarn.resourcemanager.cluster-idname>
        <value>yrcvalue>
    property>
    
    <property>
        <name>yarn.resourcemanager.ha.rm-idsname>
        <value>resourcemanager1,resourcemanager2value>
    property>
    
    <property>
        <name>yarn.resourcemanager.hostname.resourcemanager1name>
        <value>mastervalue>
    property>
    <property>
        <name>yarn.resourcemanager.hostname.resourcemanager2name>
        <value>master-backupvalue>
    property>
    
    <property>
        <name>yarn.resourcemanager.webapp.address.resourcemanager1name>
        <value>master:8088value>
    property>
    <property>
        <name>yarn.resourcemanager.webapp.address.resourcemanager2name>
        <value>master-backup:8088value>
    property>
    
    <property>
        <name>yarn.resourcemanager.zk-addressname>
        <value>master:2181,master-backup:2181value>
    property>
    
    <property>
        <name>yarn.log-aggregation-enablename>
        <value>truevalue>
    property>
    
    <property>
        <name>yarn.log-aggregation.retain-secondsname>
        
        <value>86400value>
    property>
    
    <property>
        <name>yarn.resourcemanager.recovery.enabledname>
    <value>truevalue>
    property>
    
    <property>
        <name>yarn.resourcemanager.store.classname>
        <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStorevalue>
    property>
configuration>

 

6. 配置hadoop启动用户

如果使用root用户启动hadoop服务,则需要做以下配置,不然会直接报错

vi /usr/local/hadoop/sbin/start-dfs.sh

在第二行直接添加下面配置

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
vi /usr/local/hadoop/sbin/stop-dfs.sh

在第二行直接添加下面配置

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
vi /usr/local/hadoop/sbin/start-yarn.sh

在第二行直接添加下面配置

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
vi /usr/local/hadoop/sbin/stop-yarn.sh

在第二行直接添加下面配置

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

 

7. 添加集群子节点配置

vi slaves

将localhost改为下面内容

node1
node2
node3

 

8. 将hadoop同步到其他服务器上

rsync -avz /usr/local/hadoop/ master-backup:/usr/local/hadoop/
rsync -avz /usr/local/hadoop/ node1:/usr/local/hadoop/
rsync -avz /usr/local/hadoop/ node2:/usr/local/hadoop/
rsync -avz /usr/local/hadoop/ node3:/usr/local/hadoop/

 

9. 启动journalnode

分别在master和master-backup服务器上执行命令,启动journalnode

/usr/local/hadoop/sbin/hadoop-daemon.sh start journalnode

启动后使用jps查看,可以发现两台服务器上已多出了JournalNode进程

 

10. 格式化namenode

如果是全新集群,第一次namenode启动,需要执行格式化操作(只在master服务器执行)

/usr/local/hadoop/bin/hdfs namenode -format

将master服务器namenode格式化生成的文件复制到master-backup中

rsync -avz /data/hadoop/dfs master-backup:/data/hadoop/

 

 

如果是非HA集群转换成HA集群,则需要复制旧集群master上的dfs到新增的master-backup服务器上,即只需要执行上面的复制命令即可,不需要再次格式化

然后在新master-backup服务器还需要执行下面命令,实现待命状态引导

/usr/local/hadoop/bin/hdfs namenode -bootstrapStandby

然后执行初始化操作,将master上的数据同步到master-backup

/usr/local/hadoop/bin/hdfs namenode -initializeSharedEdits

 

11. 格式化ZKFC

初始化容灾管理器

/usr/local/hadoop/bin/hdfs zkfc -formatZK

执行后,可在master和master-backup服务器上分别查看/data/hadoop/journaldata/目录,如果里面自动生成了nameservice文件夹,即表示初台化成功了

 

12. 启动hadoop服务

在master服务器中运行命令,启动HDFS

/usr/local/hadoop/sbin/start-all.sh

master-backup服务器上的resourcemanager需要手动启动

/usr/local/hadoop/sbin/yarn-daemon.sh start resourcemanager

在master与master-backup服务器上输入jps命令,就可以查看到已启动的服务

3569 Jps
1987 JournalNode
3220 NameNode
2937 QuorumPeerMain
10616 ResourceManager
3501 DFSZKFailoverController

执行上面命令后,各node节点上也已启动了NodeManager,datanode服务需要手动登录各node节点服务器上去分别启动

/usr/local/hadoop/sbin/hadoop-daemon.sh start datanode

输入jps命令,就可以查看到已启动的服务

15083 NodeManager
23043 DataNode
16319 Jps

 

13. 查看hadoop运行状态

在浏览器打开 http://192.168.10.90:8088/cluster 与 http://192.168.10.91:8088/cluster 查看到hadoop的运行状态

打开 http://192.168.10.90:50070/dfshealth.html#tab-datanode 与 http://192.168.10.91:50070/dfshealth.html#tab-overview 可以分别查看到两个master服务器的namenodes的状态分别为active与standby

 

版权声明:本文原创发表于 博客园,作者为 AllEmpty 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

作者博客:http://www.cnblogs.com/EmptyFS/

你可能感兴趣的:(大数据高可用集群环境安装与配置(06)——安装Hadoop高可用集群)