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

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

473次阅读
没有评论

共计 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、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7828048
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
使用1Panel面板搭建属于你的AI项目环境

使用1Panel面板搭建属于你的AI项目环境

使用 1Panel 面板搭建属于你的 AI 项目环境 在 AI 项目越来越火的今天,很多朋友都想自己动手搭建一...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...