阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop2.3-HA高可用集群环境搭建

237次阅读
没有评论

共计 22911 个字符,预计需要花费 58 分钟才能阅读完成。

前言:

作为安装 Hadoop 的第一步,就是根据实际情况选择合适的 Hadoop 版本,这次我所用的 CDH5.1.0,基于 Hadoop2.3 版本。那么什么是 CDH 呢,下面科普一下。

Cloudera 是一家提供 Hadoop 支持、咨询和管理工具的公司,在 Hadoop 生态圈有着举足轻重的地位,它的拳头产品就是著名的 Cloudera’s Distribution for Hadoop,简称 CDH。该软件同我们熟知的 Apache Hadoop 一样,都是完全开源,基于 Apache 软件许可证,免费为个人和商业使用。Coudera 从一个稳定的 Apache Hadoop 版本开始,连续不断的发布新版本并为旧版本打上补丁,为各种不同的生产环境提供安装文件,在 Cloudera 的团队中有许多 Apache Hadoop 的代码贡献者,所以 Cloudera 的公司实力毋庸置疑。

一般用户安装 Hadoop 时,不仅仅只安装 HDFS、MapReduce,还会根据需要安装 Hive、HBase、Spark 等。Cloudera 将这些相关的项目都集成在一个 CDH 版本里面,目前 CDH 包括 Hadoop、HBase、Hive、Pig、Sqood、Zooksspe、Spark、Flume、Oozie、Mahout 等等,几乎覆盖了 Hadoop 生态圈,这样做的好处是保证了组件之间的兼容性,因为各个项目之间也存在完全独立的版本,其各个版本与 Hadoop 之间必然会存在兼容性的问题,如果选择 CDH,那么同一个 CDH 版本内的各个组建将完全不存在兼容性问题。所以初学者使用 CDH 来搭建 Hadoop 是一个很好的选择。

规划:

机器:5 台  OS:CentOS 6.5

机器规划
主机名IPHDFSYarnHBase
master110.64.8.1Namenode1ResourceManagerHMaster
master110.64.8.2Namenode2  
slave110.64.8.3Datanode1NodeManagerHRegionServer
slave210.64.8.4Datanode2NodeManagerHRegionServer
slave310.64.8.5Datanode3NodeManagerHRegionServer

准备工作:

(1)关闭 selinux 和防火墙

master1、master2、slave1、slave2、slave3

#setenforce 0&& service iptables stop &&chkconfig iptables off

(2)修改主机名

master1

#hostname master1 && echo master1 >/etc/hostname

master2

#hostname master1 && echo master1 >/etc/hostname

slave1

#hostname slave1 && echo slave1 >/etc/hostname

slave2

#hostname slave2 && echo slave2 >/etc/hostname

slave3

#hostname slave3 && echo slave3 >/etc/hostname

master1、master2、slave1、slave2、slave3

1234567 #cat >> /etc/hosts << EOF

10.64.8.1 master1

10.64.8.2 master2

10.64.8.3 slave1

10.64.8.4 slave2

10.64.8.5 slave3

EOF

(3)主从节点 ssh 互信

生产中使用 hadoop 用户来运行,root 用户会有风险,初学者可以使用 root 用户,避免权限问题的困扰。

master1、master2

#ssh-keygen -t rsa

#ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1

#ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2

#ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave3

(4)安装 jdk

master1、master2、slave1、slave2、slave3

#rpm -e –nodeps Java-1.6.0-openjdk  — 删除 openjdk

#yum install jdk1.8.0_60.x86_64

(5)格式化硬盘

master1、master2、slave1、slave2、slave3

#mkfs.ext4 /dev/sdb

#mkdir /data

#mount /dev/sdb /data

#echo “mount /dev/sdb /data” >>/etc/rc.local

(6)系统参数调优

master1、master2、slave1、slave2、slave3

12345678910 cat >>/etc/sysctl.conf <<EOF

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 1200 

net.ipv4.tcp_syncookies = 1 

net.ipv4.tcp_tw_reuse = 1 

net.ipv4.tcp_tw_recycle = 1 

net.ipv4.ip_local_port_range = 1024 65000

net.ipv4.tcp_max_syn_baklog = 8192

net.ipv4.tcp_max_tw_bukets = 5000

EOF

123 cat >> /etc/security/limits.conf <<EOF

*            soft    nofile          65535*            hard    nofile          65535

EOF

重启

(7)下载需要的安装包

12 #cd /opt

#wget hadoop-2.3.0-cdh5.1.0.tar.gz

附 CDH5.1.0 下载链接

hadoop-2.3.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.3.0-cdh5.1.0.tar.gz

zookeeper-3.4.5-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/zookeeper-3.4.5-cdh5.1.0.tar.gz

hive-0.12.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/hive-0.12.0-cdh5.1.0.tar.gz

hbase-solr-1.5-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/hbase-solr-1.5-cdh5.1.0.tar.gz

hbase-0.98.1-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/hbase-0.98.1-cdh5.1.0.tar.gz

spark-1.0.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/spark-1.0.0-cdh5.1.0.tar.gz

flume-ng-1.5.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.5.0-cdh5.1.0.tar.gz

solr-4.4.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/solr-4.4.0-cdh5.1.0.tar.gz

mahout-0.9-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/mahout-0.9-cdh5.1.0.tar.gz

hue-3.6.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/hue-3.6.0-cdh5.1.0.tar.gz

oozie-4.0.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/oozie-4.0.0-cdh5.1.0.tar.gz

whirr-0.9.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/whirr-0.9.0-cdh5.1.0.tar.gz

pig-0.12.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/pig-0.12.0-cdh5.1.0.tar.gz

search-1.0.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/search-1.0.0-cdh5.1.0.tar.gz

parquet-1.2.5-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/parquet-1.2.5-cdh5.1.0.tar.gz

parquet-format-1.0.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/parquet-format-1.0.0-cdh5.1.0.tar.gz

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-03/142155p2.htm

安装部署 zookeeper

(1)安装 zookeeper
master1、master2、slave1、slave2、slave3

#cd /opt/ 
#tar xf  zookeeper-3.4.5-cdh5.1.0.tar.gz
#ln -s zookeeper-3.4.5-cdh5.1.0.tar.gz zookeeper

(2)配置 zookeeper
master1、master2、slave1、slave2、slave3

#mkdir -p /data/zookeeper/{data,logs}
#cat >  /opt/zookeeper/conf/zoo.cfg <<EOF
tickTime=2000
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
initLimit=5
syncLimit=2
server.1=10.64.8.1:2888:3888
server.2=10.64.8.2:2888:3888
server.3=10.64.8.3:2888:3888
server.4=10.64.8.4:2888:3888
server.5=10.64.8.5:2888:3888
EOF

master1

#echo 1 > /data/zookeeper/data/myid

master2

 #echo 2 > /data/zookeeper/data/myid

slave1

#echo 3 > /data/zookeeper/data/myid

slave2

#echo 4 > /data/zookeeper/data/myid

slave3

#echo 5 > /data/zookeeper/data/myid

(3)启动 zookeeper
master1、master2、slave1、slave2、slave3

#/opt/zookeeper/bin/zkServer.sh start
#echo “/opt/zookeeper/bin/zkServer.sh start” >> /etc/rc.local

在 CentOS7 上安装 Zookeeper-3.4.9 服务 http://www.linuxidc.com/Linux/2016-09/135052.htm

ZooKeeper 官方文档翻译——ZooKeeper Overview 3.4.6  http://www.linuxidc.com/Linux/2016-12/138025.htm

CentOS 下 ZooKeeper 3.4.8 集群环境搭建 http://www.linuxidc.com/Linux/2016-12/137958.htm

CentOS 7 下 Zookeeper 集群安装 http://www.linuxidc.com/Linux/2017-01/139733.htm

ZooKeeper 学习总结  http://www.linuxidc.com/Linux/2016-07/133179.htm

Linux 下安装 Zookeeper 集群 http://www.linuxidc.com/Linux/2017-01/139545.htm

Linux 下 Zookeeper 集群的安装  http://www.linuxidc.com/Linux/2017-03/141400.htm

Zookeeper 集群的搭建与调试  http://www.linuxidc.com/Linux/2017-03/141812.htm

前言:

作为安装 Hadoop 的第一步,就是根据实际情况选择合适的 Hadoop 版本,这次我所用的 CDH5.1.0,基于 Hadoop2.3 版本。那么什么是 CDH 呢,下面科普一下。

Cloudera 是一家提供 Hadoop 支持、咨询和管理工具的公司,在 Hadoop 生态圈有着举足轻重的地位,它的拳头产品就是著名的 Cloudera’s Distribution for Hadoop,简称 CDH。该软件同我们熟知的 Apache Hadoop 一样,都是完全开源,基于 Apache 软件许可证,免费为个人和商业使用。Coudera 从一个稳定的 Apache Hadoop 版本开始,连续不断的发布新版本并为旧版本打上补丁,为各种不同的生产环境提供安装文件,在 Cloudera 的团队中有许多 Apache Hadoop 的代码贡献者,所以 Cloudera 的公司实力毋庸置疑。

一般用户安装 Hadoop 时,不仅仅只安装 HDFS、MapReduce,还会根据需要安装 Hive、HBase、Spark 等。Cloudera 将这些相关的项目都集成在一个 CDH 版本里面,目前 CDH 包括 Hadoop、HBase、Hive、Pig、Sqood、Zooksspe、Spark、Flume、Oozie、Mahout 等等,几乎覆盖了 Hadoop 生态圈,这样做的好处是保证了组件之间的兼容性,因为各个项目之间也存在完全独立的版本,其各个版本与 Hadoop 之间必然会存在兼容性的问题,如果选择 CDH,那么同一个 CDH 版本内的各个组建将完全不存在兼容性问题。所以初学者使用 CDH 来搭建 Hadoop 是一个很好的选择。

规划:

机器:5 台  OS:CentOS 6.5

机器规划
主机名IPHDFSYarnHBase
master110.64.8.1Namenode1ResourceManagerHMaster
master110.64.8.2Namenode2  
slave110.64.8.3Datanode1NodeManagerHRegionServer
slave210.64.8.4Datanode2NodeManagerHRegionServer
slave310.64.8.5Datanode3NodeManagerHRegionServer

准备工作:

(1)关闭 selinux 和防火墙

master1、master2、slave1、slave2、slave3

#setenforce 0&& service iptables stop &&chkconfig iptables off

(2)修改主机名

master1

#hostname master1 && echo master1 >/etc/hostname

master2

#hostname master1 && echo master1 >/etc/hostname

slave1

#hostname slave1 && echo slave1 >/etc/hostname

slave2

#hostname slave2 && echo slave2 >/etc/hostname

slave3

#hostname slave3 && echo slave3 >/etc/hostname

master1、master2、slave1、slave2、slave3

1234567 #cat >> /etc/hosts << EOF

10.64.8.1 master1

10.64.8.2 master2

10.64.8.3 slave1

10.64.8.4 slave2

10.64.8.5 slave3

EOF

(3)主从节点 ssh 互信

生产中使用 hadoop 用户来运行,root 用户会有风险,初学者可以使用 root 用户,避免权限问题的困扰。

master1、master2

#ssh-keygen -t rsa

#ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1

#ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2

#ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave3

(4)安装 jdk

master1、master2、slave1、slave2、slave3

#rpm -e –nodeps Java-1.6.0-openjdk  — 删除 openjdk

#yum install jdk1.8.0_60.x86_64

(5)格式化硬盘

master1、master2、slave1、slave2、slave3

#mkfs.ext4 /dev/sdb

#mkdir /data

#mount /dev/sdb /data

#echo “mount /dev/sdb /data” >>/etc/rc.local

(6)系统参数调优

master1、master2、slave1、slave2、slave3

12345678910 cat >>/etc/sysctl.conf <<EOF

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 1200 

net.ipv4.tcp_syncookies = 1 

net.ipv4.tcp_tw_reuse = 1 

net.ipv4.tcp_tw_recycle = 1 

net.ipv4.ip_local_port_range = 1024 65000

net.ipv4.tcp_max_syn_baklog = 8192

net.ipv4.tcp_max_tw_bukets = 5000

EOF

123 cat >> /etc/security/limits.conf <<EOF

*            soft    nofile          65535*            hard    nofile          65535

EOF

重启

(7)下载需要的安装包

12 #cd /opt

#wget hadoop-2.3.0-cdh5.1.0.tar.gz

附 CDH5.1.0 下载链接

hadoop-2.3.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.3.0-cdh5.1.0.tar.gz

zookeeper-3.4.5-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/zookeeper-3.4.5-cdh5.1.0.tar.gz

hive-0.12.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/hive-0.12.0-cdh5.1.0.tar.gz

hbase-solr-1.5-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/hbase-solr-1.5-cdh5.1.0.tar.gz

hbase-0.98.1-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/hbase-0.98.1-cdh5.1.0.tar.gz

spark-1.0.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/spark-1.0.0-cdh5.1.0.tar.gz

flume-ng-1.5.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.5.0-cdh5.1.0.tar.gz

solr-4.4.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/solr-4.4.0-cdh5.1.0.tar.gz

mahout-0.9-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/mahout-0.9-cdh5.1.0.tar.gz

hue-3.6.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/hue-3.6.0-cdh5.1.0.tar.gz

oozie-4.0.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/oozie-4.0.0-cdh5.1.0.tar.gz

whirr-0.9.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/whirr-0.9.0-cdh5.1.0.tar.gz

pig-0.12.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/pig-0.12.0-cdh5.1.0.tar.gz

search-1.0.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/search-1.0.0-cdh5.1.0.tar.gz

parquet-1.2.5-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/parquet-1.2.5-cdh5.1.0.tar.gz

parquet-format-1.0.0-cdh5.1.0.tar.gz

http://archive.cloudera.com/cdh5/cdh/5/parquet-format-1.0.0-cdh5.1.0.tar.gz

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-03/142155p2.htm

安装部署 Hadoop

(1)安装 hadoop
master1、master2、slave1、slave2、slave3

#cd /opt/ 
#tar xf  hadoop-2.3.0-cdh5.1.0.tar.gz
#ln -s ln -s  hadoop-2.3.0-cdh5.1.0 hadoop

(2)添加 hadoop 环境变量
master1、master2、slave1、slave2、slave3

#cat >> /etc/profile <<EOF
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
EOF
#source /etc/profile

(3)配置 hadoop

主要配置文件

(hadoop-2.3.0-cdh5.1.0 /etc/hadoop/)

格式作用
hadoop-env.shbash 脚本hadoop 需要的环境变量
core-site.xmlxmlhadoop 的 core 的配置项
hdfs-site.xmlxmlhdfs 的守护进程配置,包括 namenode、datanode
slaves纯文本datanode 的节点列表(每行一个)
mapred-env.shbash 脚本mapreduce 需要的环境变量
mapre-site.xmlxmlmapreduce 的守护进程配置
yarn-env.shbash 脚本yarn 需要的环境变量
yarn-site.xmlxmlyarn 的配置项

以下 1 - 8 的配置,所有机器都相同,可先配置一台,将配置统一 copy 到另外几台机器。

master1、master2、slave1、slave2、slave3

1: 配置 hadoop-env.sh
cat >> hadoop-env.sh  <<EOF
export Java_HOME=/usr/java/jdk1.8.0_60
export HADOOP_HOME=/opt/hadoop-2.3.0-cdh5.1.0
EOF

2: 配置 core-site.xml
#mkdir -p /data/hadoop/tmp
#vim  core-site.xml
<?xml version=”1.0″ encoding=”UTF-8″?>
<?xml-stylesheet type=”text/xsl” href=”https://www.linuxidc.com/Linux/2017-03/configuration.xsl”?>
<configuration>
    <property>
        <!– 填写 hdfs 集群名,因为是 HA,两个 namenode–>
        <name>fs.defaultFS</name>
        <value>hdfs://mycluster</value>
    </property>
    <property>
        <!– hadoop 很多路径都依赖他,namenode 节点该目录不可以删除,否则要重新格式化 –>
        <name>hadoop.tmp.dir</name>
        <value>/data/hadoop/tmp</value>
    </property>
    <property>
        <!–zookeeper 集群的地址 –>
        <name>ha.zookeeper.quorum</name>
        <value>master1:2181,master2:2181,slave1:2181,slave2:2181,slave3:2181</value>
    </property>
</configuration>

3: 配置 hdfs-site.xml
#mkdir -p /data/hadoop/dfs/{namenode,datanode}
#mkdir -p /data/hadoop/ha/journal
#vim hdfs-site.xml
<?xml version=”1.0″ encoding=”UTF-8″?>
<?xml-stylesheet type=”text/xsl” href=”https://www.linuxidc.com/Linux/2017-03/configuration.xsl”?>
<!–hdfs-site.xml–>
<configuration>
    <property>
        <!– 设置为 true,否则一些命令无法使用如:webhdfs 的 LISTSTATUS–>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    <property>
        <!– 数据三副本 –>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <!–namenode 的数据目录,存储集群元数据 –>
        <name>dfs.namenode.name.dir</name>
        <value>file:/data/hadoop/dfs/namenode</value>
    </property>
    <property>
        <!–datenode 的数据目录 –>
        <name>dfs.datanode.data.dir</name>
        <value>file:/data/hadoop/dfs/datanode</value>
    </property>
    <property>
        <!– 可选,关闭权限带来一些不必要的麻烦 –>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
    <property>
        <!– 可选,关闭权限带来一些不必要的麻烦 –>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
    <!–HA 配置 –>
    <property>
        <!– 设置集群的逻辑名 –>
        <name>dfs.nameservices</name>
        <value>mycluster</value>
    </property>
    <property>
        <!–hdfs 集群中的 namenode 节点逻辑名 –>
        <name>dfs.ha.namenodes.mycluster</name>
        <value>namenode1,namenode2</value>
    </property>
    <property>
        <!–hdfs namenode 逻辑名中 RPC 配置,rpc 简单理解为序列化文件上传输出文件要用到 –>
        <name>dfs.namenode.rpc-address.mycluster.namenode1</name>
        <value>master1:9000</value>
    </property>
    <property>
        <!–hdfs namenode 逻辑名中 RPC 配置,rpc 简单理解为序列化文件上传输出文件要用到 –>
        <name>dfs.namenode.rpc-address.mycluster.namenode2</name>
        <value>master2:9000</value>
    </property>
    <property>
        <!– 配置 hadoop 页面访问端口 –>
        <name>dfs.namenode.http-address.mycluster.namenode1</name>
        <value>master1:50070</value>
    </property>
    <property>
        <name>dfs.namenode.http-address.mycluster.namenode2</name>
        <value>master2:50070</value>
    </property>
    <property>
        <!– 建立与 namenode 的通信 –>
        <name>dfs.namenode.servicerpc-address.mycluster.namenode1</name>
        <value>master1:53310</value>
    </property>
    <property>
        <name>dfs.namenode.servicerpc-address.mycluster.namenode2</name>
        <value>master2:53310</value>
    </property>
    <property>
        <!–journalnode 共享文件集群 –>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://master1:8485;master2:8485;slave1:8485;slave2:8485;slave3:8485/mycluster</value>
    </property>
    <property>
        <!–journalnode 对 namenode 的进行共享设置 –>
        <name>dfs.journalnode.edits.dir</name>
        <value>/data/hadoop/ha/journal</value>
    </property>
    <property>
        <!– 设置故障处理类 –>
        <name>dfs.client.failover.proxy.provider.mycluster</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <property>
        <!– 开启自动切换,namenode1 stanby 后 nn2 或 active–>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
    <property>
        <!–zookeeper 集群的地址 –>
        <name>ha.zookeeper.quorum</name>
        <value>master1:2181,master2:2181,slave1:2181,slave2:2181,slave3:2181</value>
    </property>
    <property>
        <!– 使用 ssh 方式进行故障切换 –>
        <name>dfs.ha.fencing.methods</name>
        <value>sshfence</value>
    </property>
    <property>
        <!–ssh 通信密码通信位置 –>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
    </property>
</configuration>

4: 配置 mapred-env.sh
cat >> mapred-env.sh  <<EOF
#heqinqin configure
export JAVA_HOME=/usr/java/jdk1.8.0_60
EOF

5: 配置 mapred-site.xml
<?xml version=”1.0″?>
<?xml-stylesheet type=”text/xsl” href=”https://www.linuxidc.com/Linux/2017-03/configuration.xsl”?>
<configuration>
    <name>mapreduce.framework.name</name>
    <value>yarn<value>
</configuration>

6: 配置 yarn-env.sh
1234 cat >> yarn-env.sh  <<EOF
#heqinqin configure
export JAVA_HOME=/usr/java/jdk1.8.0_60
EOF

7: 配置 yarn-site.xml
#mkdir -p /data/hadoop/yarn/local
#mkdir -p /data/hadoop/logs
#chown -R hadoop /data/hadoop
#vim yarn-site.xml
<?xml version=”1.0″ encoding=”UTF-8″?>
<?xml-stylesheet type=”text/xsl” href=”https://www.linuxidc.com/Linux/2017-03/configuration.xsl”?>
<!–####################yarn-site.xml#########################–>
<configuration>
  <property>
      <!–rm 失联后重新链接的时间 –>
      <name>yarn.resourcemanager.connect.retry-interval.ms</name>
      <value>2000</value>
  </property>
  <property>
      <!– 开启 resource manager HA, 默认为 false–> 
      <name>yarn.resourcemanager.ha.enabled</name>
      <value>true</value>
  </property>
  <property>
      <!– 开启故障自动切换 –>
      <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
      <value>true</value>
  </property>
  <property>
      <!– 配置 resource manager –>
      <name>yarn.resourcemanager.ha.rm-ids</name>
      <value>rm1,rm2</value>
  </property>
  <property>
      <name>yarn.resourcemanager.ha.id</name>
      <value>rm1</value>
      <description>If we want to launch more than one RM in single node, we need this configuration</description>
  </property>
  <property>
      <!– 开启自动恢复功能 –>
      <name>yarn.resourcemanager.recovery.enabled</name>
      <value>true</value>
  </property>
  <property>
      <!– 配置与 zookeeper 的连接地址 –>             
      <name>yarn.resourcemanager.zk-state-store.address</name>
      <value>localhost:2181</value>
  </property>
  <property>
      <name>yarn.resourcemanager.store.class</name>
      <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
  </property>
  <property>
      <name>yarn.resourcemanager.zk-address</name>
      <value>localhost:2181</value>
  </property>
  <property>
      <name>yarn.resourcemanager.cluster-id</name>
      <value>yarncluster</value>
  </property>
  <property>
      <!–schelduler 失联等待连接时间 –>
      <name>yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms</name>
      <value>5000</value>
  </property>
<!– 配置 resourcemanager–>
  <!– 配置 rm1–>
  <property>
      <!– 配置应用管理端口 –>
      <name>yarn.resourcemanager.address.rm1</name>
      <value>master1:8032</value>
  </property>
  <property>
      <!–scheduler 调度器组建的 ipc 端口 –>
      <name>yarn.resourcemanager.scheduler.address.rm1</name>
      <value>master1:8030</value>
  </property>
  <property>
      <!–http 服务端口 –>
      <name>yarn.resourcemanager.webapp.address.rm1</name>
      <value>master1:8088</value>
  </property>
  <property>
      <!–IPC 端口 –>
      <name>yarn.resourcemanager.resource-tracker.address.rm1</name>
      <value>master1:8031</value>
  </property>
  <property>
      <!–IPC 端口 –>
      <name>yarn.resourcemanager.admin.address.rm1</name>
      <value>master1:8033</value>
  </property>
  <property>
      <name>yarn.resourcemanager.ha.admin.address.rm1</name>
      <value>master1:8035</value>
  </property>
  <!– 配置 rm2–>
  <property>
      <!–application 管理端口 –>
      <name>yarn.resourcemanager.address.rm2</name>
      <value>master2:8032</value>
  </property>
  <property>
      <!–scheduler 调度器端口 –>
      <name>yarn.resourcemanager.scheduler.address.rm2</name>
      <value>master2:8030</value>
  </property>
  <property>
      <!–http 服务端口 –>
      <name>yarn.resourcemanager.webapp.address.rm2</name>
      <value>master2:8088</value>
  </property>
  <property>
      <!–ipc 端口 –>
      <name>yarn.resourcemanager.resource-tracker.address.rm2</name>
      <value>master2:8031</value>
  </property>
  <property>
      <!–ipc 端口 –>
      <name>yarn.resourcemanager.admin.address.rm2</name>
      <value>master2:8033</value>
  </property>
  <property>
      <name>yarn.resourcemanager.ha.admin.address.rm2</name>
      <value>master2:8035</value>
  </property>
<!– 配置 nodemanager–>
  <property>
      <!– 配置 localizer ipc 端口 –>
      <description>Address where the localizer IPC is.</description>
      <name>yarn.nodemanager.localizer.address</name>
      <value>0.0.0.0:8040</value>
  </property>
  <property>
      <!–nodemanager http 访问端口 –>
      <description>NM Webapp address.</description>
      <name>yarn.nodemanager.webapp.address</name>
      <value>0.0.0.0:8042</value>
  </property>
  <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>/data/hadoop/yarn/local</value>
  </property>
  <property>
      <name>yarn.nodemanager.log-dirs</name>
      <value>/data/hadoop/logs</value>
  </property>
  <property>
      <name>mapreduce.shuffle.port</name>
      <value>8050</value>
  </property>
<!– 故障处理类 –>
  <property>
      <name>yarn.client.failover-proxy-provider</name>
      <value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value>
  </property>
</configuration>

8: 配置 slaves
cat >> slaves <<EOF
slave1
slave2
slave3
EOF

配置完毕

——————————————————————————–

启动集群
(1) 格式化命名空间
master1

#/opt/hadoop/bin/hdfs zkfc -formatZK

(2)启动 journalnode
master1、master2、slave1、slave2、slave3(集群内随意算则奇数台机器作为 journalnode,三台也可以)

#/opt/hadoop/sbin/hadoop-daemon.sh start journalnode

(3)master1 节点格式化,并启动 namenode
master1

格式化 namenode 的目录
#/opt/hadoop/bin/hadoop namenode -format mycluster

启动 namenode
#/opt/hadoop/sbin/hadoop-daemon.sh start namenode

(4)master2 节点同步 master1 的格式化目录,并启动 namenode
master2

从 master1 将格式化的目录同步过来
#/opt/hadoop/bin/hdfs namenode -bootstrapStandby

启动 namenode
#/opt/hadoop/sbin/hadoop-daemon.sh start namenode

(5)master 节点启动 zkfs
master1、master2

#/opt/hadoop/sbin/hadoop-daemon.sh start zkfc

(6)slave 节点启动 datanode
slave1、slave2、slave3

#/opt/hadoop/sbin/hadoop-daemon.sh start datanode

(7)master 节点启动 yarn
master1

#/opt/hadoop/sbin/start-yarn.sh

(8)master 节点启动 historyserver
master1

./mr-jobhistory-daemon.sh start historyserver

集群已启动。在各服务器执行 jps 查看,两个 master 上各一个 namenode,形成 namenode 高可用,实现故障自动切换。

Hadoop2.3-HA 高可用集群环境搭建

CDH 的安装和设置 http://www.linuxidc.com/Linux/2017-02/140707.htm

yum 安装 CDH5.5 Hadoop 集群 http://www.linuxidc.com/Linux/2017-02/140186.htm

CDH5.9.0 集群部署与搭建 http://www.linuxidc.com/Linux/2017-01/139615.htm

CDH5.7.2 离线部署笔记 http://www.linuxidc.com/Linux/2016-08/133924.htm

Cloudera Manager 5 和 CDH5 离线安装  http://www.linuxidc.com/Linux/2016-07/133360.htm

CentOS 7.2 下搭建 CDH5.8.3  http://www.linuxidc.com/Linux/2017-03/141294.htm

部署配置 HBase

(1)安装 habase
master1、slave1、slave2、slave3

#cd /opt
#tar xf  hbase-0.98.1-cdh5.1.0.tar.gz
#ln -s  hbase-0.98.1-cdh5.1.0 hbase

(2)配置 habase
master1、slave1、slave2、slave3

以下 1 - 3 步骤配置,需要同步到每台 hbase 主机上。可以先在 master 上配置,然后 copy 到其他服务器。

1:配置环境变量
#hbase 自带 zookeeper,如果不用自带 zk,将下面设置为 fales,避免 start-hbase.sh 的时候启动 zookeeper。Hadoop 的变量,防止 hbase 不识别集群名
#cat >> /opt/hbase/conf/hbase-env.sh << EOF
export HADOOP_HOME=/opt/hadoop-2.3.0-cdh5.1.0  #配置 hadoop 变量,否则 hbase 不识别 hdfs 集群名
export HBASE_HOME=/opt/hbase-0.98.1-cdh5.1.0
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_MANAGES_ZK=fales            #不使用 hbase 自带的 zookeeper,使用搭建的 zk 集群。
export HBASE_CLASSPATH=${HBASE_HOME}/conf
export Java_HOME=/usr/java/jdk1.8.0_60
EOF

2:配置 hbase-site.xml
#mkdir -p /data/hbase/tmp
#vim hbase-site.xml
<?xml version=”1.0″?>
<?xml-stylesheet type=”text/xsl” href=”https://www.linuxidc.com/Linux/2017-03/configuration.xsl”?>
<!–##############hbase-site.xml##########–>
<configuration>
    <property>
        <!– 设置 hbase 数据库存放数据的目录 –>
        <name>hbase.rootdir</name>
        <value>hdfs://mycluster/hbase</value>
    </property>
    <property>
        <!– 打开 hbase 分布模式 –>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <!– 指定 hbase 的 master–>
        <name>hbase.master</name>
        <value>master1:60000</value>
    </property>
    <property>
        <!– 指定 zookeeper 集群节点名, 因为是由 zookeeper 表决算法决定的 –>
        <name>hbase.zookeeper.quorum</name>
        <value>master1,master2,slave1,slave2,slave3</value>
    </property>
    <property>
        <!– 指 zookeeper 集群 data 目录 –>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/data/zookeeper/data/</value>
    </property>
    <property>
        <!– 指 hbase 的 tmp 目录 –>
        <name>hbase.tmp.dir</name>
        <value>/data/hbase/tmp</value>
    </property>
</configuration>

3:配置 regionservers
slave1
slave2
slave3

(3)启动 habase
master1

#/opt/hbase/bin/start-hbase.sh
#jps

看到如下结果。

Hadoop2.3-HA 高可用集群环境搭建

Hadoop+HBase 搭建云存储总结 PDF http://www.linuxidc.com/Linux/2013-05/83844.htm

Ubuntu Server 14.04 下 Hbase 数据库安装  http://www.linuxidc.com/Linux/2016-05/131499.htm

HBase 结点之间时间不一致造成 regionserver 启动失败 http://www.linuxidc.com/Linux/2013-06/86655.htm

深入理解 HBase 架构原理 http://www.linuxidc.com/Linux/2017-01/139173.htm

Hadoop 集群安装 &HBase 实验环境搭建 http://www.linuxidc.com/Linux/2013-04/83560.htm

基于 Hadoop 集群的 HBase 集群的配置 http://www.linuxidc.com/Linux/2013-03/80815.htm‘

Hadoop 安装部署笔记之 -HBase 完全分布模式安装 http://www.linuxidc.com/Linux/2012-12/76947.htm

CentOS 6.4 下 HBase 集群安装  http://www.linuxidc.com/Linux/2016-11/137303.htm

HBase 的详细介绍:请点这里
HBase 的下载地址:请点这里

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142155.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计22911字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中