共计 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
主机名 | IP | HDFS | Yarn | HBase |
master1 | 10.64.8.1 | Namenode1 | ResourceManager | HMaster |
master1 | 10.64.8.2 | Namenode2 | ||
slave1 | 10.64.8.3 | Datanode1 | NodeManager | HRegionServer |
slave2 | 10.64.8.4 | Datanode2 | NodeManager | HRegionServer |
slave3 | 10.64.8.5 | Datanode3 | NodeManager | HRegionServer |
准备工作:
(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
主机名 | IP | HDFS | Yarn | HBase |
master1 | 10.64.8.1 | Namenode1 | ResourceManager | HMaster |
master1 | 10.64.8.2 | Namenode2 | ||
slave1 | 10.64.8.3 | Datanode1 | NodeManager | HRegionServer |
slave2 | 10.64.8.4 | Datanode2 | NodeManager | HRegionServer |
slave3 | 10.64.8.5 | Datanode3 | NodeManager | HRegionServer |
准备工作:
(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.sh | bash 脚本 | hadoop 需要的环境变量 |
core-site.xml | xml | hadoop 的 core 的配置项 |
hdfs-site.xml | xml | hdfs 的守护进程配置,包括 namenode、datanode |
slaves | 纯文本 | datanode 的节点列表(每行一个) |
mapred-env.sh | bash 脚本 | mapreduce 需要的环境变量 |
mapre-site.xml | xml | mapreduce 的守护进程配置 |
yarn-env.sh | bash 脚本 | yarn 需要的环境变量 |
yarn-site.xml | xml | yarn 的配置项 |
以下 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 高可用,实现故障自动切换。
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
看到如下结果。
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