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

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

490次阅读
没有评论

共计 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
文章数
19356
评论数
4
阅读量
8277894
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

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

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

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

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

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

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...

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

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...