集群部署
This commit is contained in:
		| @@ -115,7 +115,7 @@ TODO | ||||
|  | ||||
| 1. [Hbase 简介](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hbase简介.md) | ||||
| 2. [HBase系统架构及数据结构](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hbase系统架构及数据结构.md) | ||||
| 3. [HBase基本环境搭建(Standalone /pseudo-distributed mode)](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/HBase基本环境搭建.md) | ||||
| 3. [HBase基本环境搭建(Standalone /pseudo-distributed mode)](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/HBase单机环境搭建.md) | ||||
| 4. [HBase集群环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/HBase集群环境搭建.md) | ||||
| 5. [HBase常用Shell命令](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hbase_Shell.md) | ||||
| 6. [HBase Java API](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hbase_Java_API.md) | ||||
|   | ||||
| @@ -7,28 +7,27 @@ | ||||
|  | ||||
| ### 二、Hadoop | ||||
|  | ||||
| 1. [Hadoop单机版本环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/hadoop单机版本环境搭建.md) | ||||
| 1. [Hadoop单机环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Hadoop单机环境搭建.md) | ||||
|  | ||||
| 2. Hadoop集群环境搭建 | ||||
| 3. 基于Zookeeper搭建Hadoop的HA集群 | ||||
| 2. [Hadoop集群环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Hadoop集群环境搭建.md) | ||||
|  | ||||
| ### 三、Spark | ||||
|  | ||||
| 1. [Spark单机版本环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Spark单机版本环境搭建.md) | ||||
| 1. [Spark开发环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/SparkSpark开发环境搭建.md) | ||||
|  | ||||
| 2. Spark集群环境搭建 | ||||
| 2. [基于Zookeeper搭建Spark高可用集群](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/SparkSpark集群环境搭建.md) | ||||
|  | ||||
| ### 四、Storm | ||||
|  | ||||
| 1. [Storm单机版本环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Storm单机版本环境搭建.md) | ||||
| 1. [Storm单机环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Storm单机环境搭建.md) | ||||
|  | ||||
| 2. Storm集群环境搭建 | ||||
| 2. [Storm集群环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Storm集群环境搭建.md) | ||||
|  | ||||
| ### 五、Hbase | ||||
| ### 五、HBase | ||||
|  | ||||
| 1. [Hbase基本环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Hbase基本环境搭建.md) | ||||
| 1. [Hbase单机环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Hbase单机环境搭建.md) | ||||
|  | ||||
| 2. Hbase集群环境搭建 | ||||
| 2. [Hbase集群环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Hbase集群环境搭建.md) | ||||
|  | ||||
| ### 六、Flume | ||||
|  | ||||
|   | ||||
| @@ -1,14 +1,32 @@ | ||||
| # HBase集群环境配置 | ||||
|  | ||||
| <nav> | ||||
| <a href="#一集群规划">一、集群规划</a><br/> | ||||
| <a href="#二前置条件">二、前置条件</a><br/> | ||||
| <a href="#三集群搭建">三、集群搭建</a><br/> | ||||
|         <a href="#31-下载并解压">3.1 下载并解压</a><br/> | ||||
|         <a href="#32-配置环境变量">3.2 配置环境变量</a><br/> | ||||
|         <a href="#33-集群配置">3.3 集群配置</a><br/> | ||||
|         <a href="#34-HDFS客户端配置">3.4 HDFS客户端配置</a><br/> | ||||
|         <a href="#35-安装包分发">3.5 安装包分发</a><br/> | ||||
| <a href="#四启动集群">四、启动集群</a><br/> | ||||
|         <a href="#41-启动ZooKeeper集群">4.1 启动ZooKeeper集群</a><br/> | ||||
|         <a href="#42-启动Hadoop集群">4.2 启动Hadoop集群</a><br/> | ||||
|         <a href="#43-启动HBase集群">4.3 启动HBase集群</a><br/> | ||||
|         <a href="#45-查看服务">4.5 查看服务</a><br/> | ||||
| </nav> | ||||
|  | ||||
|  | ||||
|  | ||||
| ## 一、集群规划 | ||||
|  | ||||
| 这里搭建一个3节点的HBase集群,其中三台主机上均为`Regin Server`。同时为了保证高可用,除了在hadoop001上部署主`Master`服务外,还在hadoop002上署备用的`Master`服务,Master服务由Zookeeper集群进行协调管理,如果主`Master`不可用,则备用`Master`会成为新的主`Master`。 | ||||
| 这里搭建一个3节点的HBase集群,其中三台主机上均为`Regin Server`。同时为了保证高可用,除了在hadoop001上部署主`Master`服务外,还在hadoop002上部署备用的`Master`服务。Master服务由Zookeeper集群进行协调管理,如果主`Master`不可用,则备用`Master`会成为新的主`Master`。 | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/hbase集群规划.png"/> </div> | ||||
|  | ||||
| ## 二、前置条件 | ||||
|  | ||||
| HBase的运行需要依赖JDK和Hadoop,HBase 2.0+需要安装JDK 1.8+ 。同时为了保证高可用,这里我们不采用HBase内置的Zookeeper,而采用外置的Zookeeper集群。相关搭建步骤可以参阅: | ||||
| HBase的运行需要依赖Hadoop和JDK(`HBase 2.0+`对应`JDK 1.8+`) 。同时为了保证高可用,这里我们不采用HBase内置的Zookeeper服务,而采用外置的Zookeeper集群。相关搭建步骤可以参阅: | ||||
|  | ||||
| - [Linux环境下JDK安装](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Linux下JDK安装.md) | ||||
| - [Zookeeper单机环境和集群环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Zookeeper单机环境和集群环境搭建.md) | ||||
| @@ -20,10 +38,10 @@ HBase的运行需要依赖JDK和Hadoop,HBase 2.0+需要安装JDK 1.8+ 。同 | ||||
|  | ||||
| ### 3.1 下载并解压 | ||||
|  | ||||
| 下载并解压,官方下载地址:https://hbase.apache.org/downloads.html | ||||
| 下载并解压,这里我下载的是CDH版本HBase,下载地址为:http://archive.cloudera.com/cdh5/cdh/5/ | ||||
|  | ||||
| ```shell | ||||
| # tar -zxvf hbase-2.1.4-bin.tar.gz | ||||
| # tar -zxvf hbase-1.2.0-cdh5.15.2.tar.gz | ||||
| ``` | ||||
|  | ||||
| ### 3.2 配置环境变量 | ||||
| @@ -35,7 +53,7 @@ HBase的运行需要依赖JDK和Hadoop,HBase 2.0+需要安装JDK 1.8+ 。同 | ||||
| 添加环境变量: | ||||
|  | ||||
| ```shell | ||||
| export HBASE_HOME=/usr/app/hbase-2.1.4 | ||||
| export HBASE_HOME=usr/app/hbase-1.2.0-cdh5.15.2 | ||||
| export PATH=$HBASE_HOME/bin:$PATH | ||||
| ``` | ||||
|  | ||||
| @@ -172,7 +190,7 @@ start-hbase.sh | ||||
|  | ||||
| 访问HBase的Web-UI界面,这里我安装的HBase版本为1.2,访问端口为`60010`,如果你安装的是2.0以上的版本,则访问端口号为`16010`。可以看到`Master`在hadoop001上,三个`Regin Servers`分别在hadoop001,hadoop002,和hadoop003上,并且还有一个`Backup Matser` 服务在 hadoop002上。 | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/hbase-集群搭建1.png"/> </div> | ||||
|  | ||||
| <br/> | ||||
|  | ||||
| @@ -180,4 +198,4 @@ hadoop002 上的 HBase出于备用状态: | ||||
|  | ||||
| <br/> | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/hbase-集群搭建2.png"/> </div> | ||||
| @@ -1,17 +1,7 @@ | ||||
| # Hadoop单机版环境搭建 | ||||
|  | ||||
|  | ||||
|  | ||||
| >系统环境:centos 7.6 | ||||
| > | ||||
| >JDK版本:jdk 1.8.0_20 | ||||
| > | ||||
| >Hadoop版本:hadoop-2.6.0-cdh5.15.2 | ||||
|  | ||||
|  | ||||
|  | ||||
| <nav> | ||||
| <a href="#一安装JDK">一、安装JDK</a><br/> | ||||
| <a href="#一前置条件">一、前置条件</a><br/> | ||||
| <a href="#二配置-SSH-免密登录">二、配置 SSH 免密登录</a><br/> | ||||
| <a href="#三HadoopHDFS环境搭建">三、Hadoop(HDFS)环境搭建</a><br/> | ||||
| <a href="#四HadoopYARN环境搭建">四、Hadoop(YARN)环境搭建</a><br/> | ||||
| @@ -19,17 +9,22 @@ | ||||
|  | ||||
|  | ||||
|  | ||||
| ## 一、安装JDK | ||||
|  | ||||
| Hadoop 需要在java环境下运行,所以需要先安装Jdk,安装步骤见[Linux下JDK的安装](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/JDK%E5%AE%89%E8%A3%85.md) | ||||
| ## 一、前置条件 | ||||
|  | ||||
| Hadoop的运行依赖JDK,需要预先安装,安装步骤见: | ||||
|  | ||||
| + [Linux下JDK的安装](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/JDK%E5%AE%89%E8%A3%85.md) | ||||
|  | ||||
|  | ||||
|  | ||||
| ## 二、配置 SSH 免密登录 | ||||
| ## 二、配置免密登录 | ||||
|  | ||||
| Hadoop 组件之间的各个节点需要进行通讯,所以需要配置SSH免密登录。 | ||||
| Hadoop组件之间需要基于SSH进行通讯。 | ||||
|  | ||||
| #### 2.1 配置ip地址和主机名映射,在配置文件末尾添加ip地址和主机名映射 | ||||
| #### 2.1 配置映射 | ||||
|  | ||||
| 配置ip地址和主机名映射: | ||||
|  | ||||
| ```shell | ||||
| vim /etc/hosts | ||||
| @@ -37,13 +32,17 @@ vim /etc/hosts | ||||
| 192.168.43.202  hadoop001 | ||||
| ``` | ||||
|  | ||||
| ####  2.2  执行下面命令行,一路回车,生成公匙和私匙 | ||||
| ### 2.2  生成公私钥 | ||||
|  | ||||
| 执行下面命令行生成公匙和私匙: | ||||
|  | ||||
| ``` | ||||
| ssh-keygen -t rsa | ||||
| ``` | ||||
|  | ||||
| #### 3.3 进入`~/.ssh`目录下,查看生成的公匙和私匙,并将公匙写入到授权文件 | ||||
| ### 3.3 授权 | ||||
|  | ||||
| 进入`~/.ssh`目录下,查看生成的公匙和私匙,并将公匙写入到授权文件: | ||||
|  | ||||
| ```shell | ||||
| [root@@hadoop001 sbin]#  cd ~/.ssh | ||||
| @@ -64,91 +63,93 @@ ssh-keygen -t rsa | ||||
|  | ||||
|  | ||||
|  | ||||
| #### 3.1 下载CDH 版本的Hadoop | ||||
| ### 3.1 下载并解压 | ||||
|  | ||||
| 从[CDH官方下载地址](http://archive.cloudera.com/cdh5/cdh/5/)下载所需版本的Hadoop(本用例下载的版本为hadoop-2.6.0-cdh5.15.2.tar.gz ),上传至服务器对应文件夹(这里我传至新建的/usr/app/ 目录); | ||||
|  | ||||
|  | ||||
|  | ||||
| #### 3.2 解压软件压缩包 | ||||
| 下载Hadoop安装包,这里我下载的是CDH版本的,下载地址为:http://archive.cloudera.com/cdh5/cdh/5/ | ||||
|  | ||||
| ```shell | ||||
| # tar -zvxf hadoop-2.6.0-cdh5.15.2.tar.gz  | ||||
| # 解压 | ||||
| tar -zvxf hadoop-2.6.0-cdh5.15.2.tar.gz  | ||||
| ``` | ||||
|  | ||||
|  | ||||
|  | ||||
| #### 3.3 把路径添加到环境变量 | ||||
| ### 3.2 配置环境变量 | ||||
|  | ||||
| ```shell | ||||
| # vi /etc/profile | ||||
| ``` | ||||
|  | ||||
| 配置环境变量: | ||||
|  | ||||
| ``` | ||||
| export HADOOP_HOME=/usr/app/hadoop-2.6.0-cdh5.15.2 | ||||
| export  PATH=${HADOOP_HOME}/bin:$PATH | ||||
| ``` | ||||
|  | ||||
| 执行`source`命令,使得配置的环境变量立即生效: | ||||
|  | ||||
| ```shell | ||||
| # 执行source命令,使得配置立即生效 | ||||
| # source /etc/profile | ||||
| ``` | ||||
|  | ||||
|  | ||||
|  | ||||
| #### 3.4 修改Hadoop相关配置文件 | ||||
| ### 3.3 修改Hadoop配置 | ||||
|  | ||||
| cd 到 安装目录的/etc/hadoop/ 文件夹下: | ||||
| 进入`${HADOOP_HOME}/etc/hadoop/ `目录下,修改以下配置: | ||||
|  | ||||
| #### 1. hadoop-env.sh | ||||
|  | ||||
| ```shell | ||||
| [root@hadoop001 hadoop-2.6.0-cdh5.15.2]# cd etc/hadoop | ||||
| ``` | ||||
|  | ||||
| 1. 修改 `hadoop-env.sh` , 指定jdk 安装路径 | ||||
|  | ||||
| ```shell | ||||
| # The java implementation to use. | ||||
| # JDK安装路径 | ||||
| export  JAVA_HOME=/usr/java/jdk1.8.0_201/ | ||||
| ``` | ||||
|  | ||||
| 2. 修改`core-site.xml`,添加如下配置,指定hdfs地址: | ||||
| #### 2. core-site.xml | ||||
|  | ||||
| ```xml | ||||
| <configuration> | ||||
|     <property> | ||||
|         <!--指定namenode的hdfs协议文件系统的通信地址--> | ||||
|         <name>fs.defaultFS</name> | ||||
|         <value>hdfs://hadoop001:8020</value> | ||||
|     </property> | ||||
|     <property> | ||||
|         <!--指定hadoop存储临时文件的目录--> | ||||
|         <name>hadoop.tmp.dir</name> | ||||
|         <value>/home/hadoop/tmp</value> | ||||
|     </property> | ||||
| </configuration> | ||||
| ``` | ||||
|  | ||||
| 3. 修改`hdfs-site.xml`添加如下配置,指定副本系数和临时文件存储位置,由于这里我们搭建是单机版本,所以指定dfs的副本系数为1。 | ||||
| #### 3. hdfs-site.xml | ||||
|  | ||||
| 指定副本系数和临时文件存储位置: | ||||
|  | ||||
| ```xml | ||||
| <configuration> | ||||
|     <property> | ||||
|         <!--由于我们这里搭建是单机版本,所以指定dfs的副本系数为1--> | ||||
|         <name>dfs.replication</name> | ||||
|         <value>1</value> | ||||
|     </property> | ||||
| </configuration> | ||||
| ``` | ||||
|  | ||||
| 4. 修改`slaves`文件,由于是单机版本,所以指定本机为从节点,修改后`slaves`文件内容如下: | ||||
| #### 4. slaves | ||||
|  | ||||
| 配置所有从属节点的主机名或IP地址,由于是单机版本,所以指定本机即可: | ||||
|  | ||||
| ```shell | ||||
| [root@hadoop001 hadoop]# cat slaves | ||||
| hadoop001 | ||||
| ``` | ||||
|  | ||||
|  | ||||
|  | ||||
| #### 3.5 关闭防火墙 | ||||
| ### 3.4 关闭防火墙 | ||||
|  | ||||
| 由于防火墙可能会影响节点间通讯,所以建议关闭,执行命令: | ||||
| 不关闭防火墙可能导致无法访问Hadoop的Web UI界面: | ||||
|  | ||||
| ```shell | ||||
| # 查看防火墙状态 | ||||
| @@ -159,15 +160,19 @@ sudo systemctl stop firewalld.service | ||||
|  | ||||
|  | ||||
|  | ||||
| #### 3.6 启动HDFS | ||||
| ### 3.5 初始化 | ||||
|  | ||||
| 1. 第一次执行的时候一定要格式化文件系统,执行以下命令格式化文件系统(hdfs命令位于安装目录的bin目录下)。 | ||||
| 第一次启动Hadoop时需要进行初始化,进入`${HADOOP_HOME}/bin/`目录下,执行以下命令: | ||||
|  | ||||
| ```shell | ||||
| [root@hadoop001 bin]# ./hdfs namenode -format | ||||
| ``` | ||||
|  | ||||
| 2. 执行sbin目录下的`start-dfs.sh`脚本,启动hdfs | ||||
|  | ||||
|  | ||||
| ### 3.6 启动HDFS | ||||
|  | ||||
| 进入`${HADOOP_HOME}/sbin/`目录下,启动HDFS: | ||||
|  | ||||
| ```shell | ||||
| [root@hadoop001 sbin]# ./start-dfs.sh | ||||
| @@ -175,9 +180,9 @@ sudo systemctl stop firewalld.service | ||||
|  | ||||
|  | ||||
|  | ||||
| #### 3.7 验证是否启动成功 | ||||
| ### 3.7 验证是否启动成功 | ||||
|  | ||||
| 方式一:执行jps 查看NameNode和DataNode的进程是否已经存在 | ||||
| 方式一:执行`jps`查看`NameNode`和`DataNode`服务是否已经启动: | ||||
|  | ||||
| ```shell | ||||
| [root@hadoop001 hadoop-2.6.0-cdh5.15.2]# jps | ||||
| @@ -188,7 +193,7 @@ sudo systemctl stop firewalld.service | ||||
|  | ||||
|  | ||||
|  | ||||
| 方式二:访问50070端口 http://ip地址:50070 。如果jps查看进程均以启动,但是无法访问页面,则需要关闭防火墙。 | ||||
| 方式二:查看Web UI界面,端口为`50070`: | ||||
|  | ||||
| <div align="center"> <img width="700px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/hadoop安装验证.png"/> </div> | ||||
|  | ||||
| @@ -196,9 +201,11 @@ sudo systemctl stop firewalld.service | ||||
|  | ||||
| ## 四、Hadoop(YARN)环境搭建 | ||||
|  | ||||
| #### 4.1 修改Hadoop配置文件,指明mapreduce运行在YARN上 | ||||
| ### 4.1 修改配置 | ||||
|  | ||||
| etc/hadoop/mapred-site.xml: | ||||
| 进入`${HADOOP_HOME}/etc/hadoop/ `目录下,修改以下配置: | ||||
|  | ||||
| #### 1. mapred-site.xml | ||||
|  | ||||
| ```shell | ||||
| # 如果没有mapred-site.xml,则拷贝一份样例文件后再修改 | ||||
| @@ -214,20 +221,23 @@ cp ./mapred-site.xml.template ./mapred-site.xml | ||||
| </configuration> | ||||
| ``` | ||||
|  | ||||
| etc/hadoop/yarn-site.xml: | ||||
| #### 2. yarn-site.xml | ||||
|  | ||||
| ```xml | ||||
| <configuration> | ||||
|     <property> | ||||
|         <!--配置NodeManager上运行的附属服务。需要配置成mapreduce_shuffle后才可以在Yarn上运行MapReduce程序。--> | ||||
|         <name>yarn.nodemanager.aux-services</name> | ||||
|         <value>mapreduce_shuffle</value> | ||||
|     </property> | ||||
| </configuration> | ||||
| ``` | ||||
|  | ||||
| `yarn.nodemanager.aux-services`用于配置NodeManager上运行的附属服务。需要配置成`mapreduce_shuffle`后才可以在Yarn上运行MapReduce程序。 | ||||
|  | ||||
| #### 4.2 在sbin目录下启动YARN | ||||
|  | ||||
| ### 4.2 启动服务 | ||||
|  | ||||
| 进入`${HADOOP_HOME}/sbin/`目录下,启动YARN: | ||||
|  | ||||
| ```shell | ||||
| ./start-yarn.sh | ||||
| @@ -237,7 +247,7 @@ etc/hadoop/yarn-site.xml: | ||||
|  | ||||
| #### 4.3 验证是否启动成功 | ||||
|  | ||||
| 方式一:执行jps查看NodeManager和ResourceManager的进程是否已经存在 | ||||
| 方式一:执行`jps`命令查看`NodeManager`和`ResourceManager`服务是否已经启动: | ||||
|  | ||||
| ```shell | ||||
| [root@hadoop001 hadoop-2.6.0-cdh5.15.2]# jps | ||||
| @@ -248,6 +258,6 @@ etc/hadoop/yarn-site.xml: | ||||
| 9390 SecondaryNameNode | ||||
| ``` | ||||
|  | ||||
| 方式二:访问8088端口 http://ip地址:8088 。如果jps查看进程均以启动,但是无法访问页面,则需要关闭防火墙。 | ||||
| 方式二:查看Web UI界面,端口号为`8088`: | ||||
|  | ||||
| <div align="center"> <img width="700px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/hadoop-yarn安装验证.png"/> </div> | ||||
|   | ||||
| @@ -1,10 +1,29 @@ | ||||
| # Hadoop集群环境搭建 | ||||
|  | ||||
| <nav> | ||||
| <a href="#一集群规划">一、集群规划</a><br/> | ||||
| <a href="#二前置条件">二、前置条件</a><br/> | ||||
| <a href="#三配置免密登录">三、配置免密登录</a><br/> | ||||
|         <a href="#31-生成密匙">3.1 生成密匙</a><br/> | ||||
|         <a href="#32-免密登录">3.2 免密登录</a><br/> | ||||
|         <a href="#33-验证免密登录">3.3 验证免密登录</a><br/> | ||||
| <a href="#四集群搭建">四、集群搭建</a><br/> | ||||
|         <a href="#31-下载并解压">3.1 下载并解压</a><br/> | ||||
|         <a href="#32-配置环境变量">3.2 配置环境变量</a><br/> | ||||
|         <a href="#33-修改配置">3.3 修改配置</a><br/> | ||||
|         <a href="#34-分发程序">3.4 分发程序</a><br/> | ||||
|         <a href="#35--初始化">3.5  初始化</a><br/> | ||||
|         <a href="#36-启动集群">3.6 启动集群</a><br/> | ||||
|         <a href="#37-查看集群">3.7 查看集群</a><br/> | ||||
| <a href="#五提交服务到集群">五、提交服务到集群</a><br/> | ||||
| </nav> | ||||
|  | ||||
|  | ||||
| ## 一、集群规划 | ||||
|  | ||||
| 这里搭建一个3节点的Hadoop集群,其中三台主机均部署`DataNode`和`NodeManager`服务,但只有hadoop001上部署`NameNode`和`ResourceManager`服务。 | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/hadoop集群规划.png"/> </div> | ||||
|  | ||||
| ## 二、前置条件 | ||||
|  | ||||
| @@ -18,7 +37,7 @@ Hadoop的运行依赖JDK,需要预先安装。其安装步骤单独整理至 | ||||
|  | ||||
| ### 3.1 生成密匙 | ||||
|  | ||||
| 在每台主机上使用ssh-keygen产生公钥私钥对: | ||||
| 在每台主机上使用`ssh-keygen`命令生成公钥私钥对: | ||||
|  | ||||
| ```shell | ||||
| ssh-keygen | ||||
| @@ -177,7 +196,7 @@ hadoop namenode -format | ||||
|  | ||||
| ### 3.6 启动集群 | ||||
|  | ||||
| 进入到`Hadoop001`的`${HADOOP_HOME}/sbin`目录下,启动Hadoop。此时`hadoop002`和`hadoop003`上的相关服务也会被启动。 | ||||
| 进入到`Hadoop001`的`${HADOOP_HOME}/sbin`目录下,启动Hadoop。此时`hadoop002`和`hadoop003`上的相关服务也会被启动: | ||||
|  | ||||
| ```shell | ||||
| # 启动dfs服务 | ||||
| @@ -190,15 +209,15 @@ start-yarn.sh | ||||
|  | ||||
| 在每台服务器上使用`jps`命令查看服务进程,或直接进入Web-UI界面进行查看,端口为`50070`。可以看到此时有三个可用的`Datanode`: | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/hadoop-集群环境搭建.png"/> </div> | ||||
|  | ||||
| 点击`Live Nodes`进入,可以看到每个`DataNode`的详细情况: | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/hadoop-集群搭建2.png"/> </div> | ||||
|  | ||||
| 接着可以查看Yarn集群的情况,端口号为`8088` : | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/hadoop-集群搭建3.png"/> </div> | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,10 +1,28 @@ | ||||
| # 基于ZooKeeper搭建Spark高可用集群 | ||||
|  | ||||
| <nav> | ||||
| <a href="#一集群规划">一、集群规划</a><br/> | ||||
| <a href="#二前置条件">二、前置条件</a><br/> | ||||
| <a href="#三Spark集群搭建">三、Spark集群搭建</a><br/> | ||||
|         <a href="#31-下载解压">3.1 下载解压</a><br/> | ||||
|         <a href="#32-配置环境变量">3.2 配置环境变量</a><br/> | ||||
|         <a href="#33-集群配置">3.3 集群配置</a><br/> | ||||
|         <a href="#34-安装包分发">3.4 安装包分发</a><br/> | ||||
| <a href="#四启动集群">四、启动集群</a><br/> | ||||
|         <a href="#41-启动ZooKeeper集群">4.1 启动ZooKeeper集群</a><br/> | ||||
|         <a href="#42-启动Hadoop集群">4.2 启动Hadoop集群</a><br/> | ||||
|         <a href="#43-启动Spark集群">4.3 启动Spark集群</a><br/> | ||||
|         <a href="#44-查看服务">4.4 查看服务</a><br/> | ||||
| <a href="#五验证集群高可用">五、验证集群高可用</a><br/> | ||||
| <a href="#六提交作业">六、提交作业</a><br/> | ||||
| </nav> | ||||
|  | ||||
|  | ||||
| ## 一、集群规划 | ||||
|  | ||||
| 这里搭建一个3节点的Spark集群,其中三台主机上均部署`Worker`服务。同时为了保证高可用,除了在hadoop001上部署主`Master`服务外,还在hadoop002和hadoop003上分别部署备用的`Master`服务,Master服务由Zookeeper集群进行协调管理,如果主`Master`不可用,则备用`Master`会成为新的主`Master`。 | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/spark集群规划.png"/> </div> | ||||
|  | ||||
| ## 二、前置条件 | ||||
|  | ||||
| @@ -133,27 +151,25 @@ start-master.sh | ||||
|  | ||||
| 查看Spark的Web-UI页面,端口为`8080`。此时可以看到hadoop001上的Master节点处于`ALIVE`状态,并有3个可用的`Worker`节点。 | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/spark-集群搭建1.png"/> </div> | ||||
|  | ||||
| 而hadoop002和hadoop003上的Master节点均处于`STANDBY`状态,没有可用的`Worker`节点。 | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/spark-集群搭建2.png"/> </div> | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/spark-集群搭建3.png"/> </div> | ||||
|  | ||||
|  | ||||
|  | ||||
| ## 五、验证集群高可用 | ||||
|  | ||||
| 此时可以使用`kill`命令杀死hadoop001上的`Master`进程,此时`备用Master`会中会有一个再次成为`主Master`,我这里是hadoop002,可以看到hadoop2上的`Master`经过`RECOVERING`后成为了新的`主Master`,并且获得了全部可以用的`Workers`。 | ||||
| 此时可以使用`kill`命令杀死hadoop001上的`Master`进程,此时`备用Master`会中会有一个再次成为`主Master`,我这里是hadoop002,可以看到hadoop2上的`Master`经过`RECOVERING`后成为了新的`主Master`,并且获得了全部可以用的`Workers`。此时如果你再在hadoop001上使用`start-master.sh`启动Master,那么其会作为`备用Master`存在。 | ||||
|  | ||||
| 此时如果你再在hadoop001上使用`start-master.sh`启动Master,那么其会作为`备用Master`存在。 | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/spark-集群搭建4.png"/> </div> | ||||
|  | ||||
| Hadoop002上的`Master`成为`主Master`,并获得了全部可以用的`Workers`。 | ||||
|  | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/spark-集群搭建5.png"/> </div> | ||||
|  | ||||
| ## 六、提交作业 | ||||
|  | ||||
|   | ||||
| @@ -3,15 +3,21 @@ | ||||
| <nav> | ||||
| <a href="#一集群规划">一、集群规划</a><br/> | ||||
| <a href="#二环境要求">二、环境要求</a><br/> | ||||
| <a href="#三安装步骤">三、安装步骤</a><br/> | ||||
| <a href="#三集群搭建">三、集群搭建</a><br/> | ||||
|         <a href="#1-下载并解压">1. 下载并解压</a><br/> | ||||
|         <a href="#2-配置环境变量">2. 配置环境变量</a><br/> | ||||
|         <a href="#3-集群配置">3. 集群配置</a><br/> | ||||
|         <a href="#4-启动服务">4. 启动服务</a><br/> | ||||
|         <a href="#5-查看进程">5. 查看进程</a><br/> | ||||
|         <a href="#6-查看Web-UI界面">6. 查看Web-UI界面</a><br/> | ||||
|         <a href="#4-安装包分发">4. 安装包分发</a><br/> | ||||
| <a href="#四-启动集群">四. 启动集群</a><br/> | ||||
|         <a href="#41-启动ZooKeeper集群">4.1 启动ZooKeeper集群</a><br/> | ||||
|         <a href="#42-启动Storm集群">4.2 启动Storm集群</a><br/> | ||||
|         <a href="#43-查看集群">4.3 查看集群</a><br/> | ||||
| </nav> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## 一、集群规划 | ||||
|  | ||||
| 这里我们采用三台服务器搭建一个Storm集群,集群由一个1个Nimbus和3个Supervisor组成,因为只有三台服务器,所以hadoop001上既为Nimbus节点,也为Supervisor节点。 | ||||
| @@ -29,25 +35,20 @@ Storm 运行依赖于Java 7+ 和 Python 2.6.6 +,所以需要预先安装这两 | ||||
|  | ||||
|  | ||||
|  | ||||
| ## 三、安装步骤 | ||||
| ## 三、集群搭建 | ||||
|  | ||||
| ### 1. 下载并解压 | ||||
|  | ||||
| 下载安装包,使用scp命令分发到三台服务器上,之后进行解压。官方下载地址:http://storm.apache.org/downloads.html  | ||||
| 下载安装包,之后进行解压。官方下载地址:http://storm.apache.org/downloads.html  | ||||
|  | ||||
| ```shell | ||||
| # 解压 | ||||
| tar -zxvf apache-storm-1.2.2.tar.gz | ||||
|  | ||||
| # 分发 | ||||
| scp -r /usr/app/apache-storm-1.2.2/ root@hadoop002:/usr/app/ | ||||
| scp -r /usr/app/apache-storm-1.2.2/ root@hadoop003:/usr/app/ | ||||
| ``` | ||||
|  | ||||
| ### 2. 配置环境变量 | ||||
|  | ||||
| 为了方便,三台服务器均配置一下环境变量: | ||||
|  | ||||
| ```shell | ||||
| # vim /etc/profile | ||||
| ``` | ||||
| @@ -67,7 +68,7 @@ export PATH=$STORM_HOME/bin:$PATH | ||||
|  | ||||
| ### 3. 集群配置 | ||||
|  | ||||
| 修改每台服务器上的`${STORM_HOME}/conf/storm.yaml`文件,配置均如下: | ||||
| 修改`${STORM_HOME}/conf/storm.yaml`文件,配置如下: | ||||
|  | ||||
| ```yaml | ||||
| # Zookeeper集群的主机列表 | ||||
| @@ -80,7 +81,7 @@ storm.zookeeper.servers: | ||||
| nimbus.seeds: ["hadoop001"] | ||||
|  | ||||
| # Nimbus和Supervisor需要使用本地磁盘上来存储少量状态(如jar包,配置文件等) | ||||
| storm.local.dir: "/usr/local/tmp/storm" | ||||
| storm.local.dir: "/home/storm" | ||||
|  | ||||
| # workers进程的端口,每个worker进程会使用一个端口来接收消息 | ||||
| supervisor.slots.ports: | ||||
| @@ -92,13 +93,34 @@ supervisor.slots.ports: | ||||
|  | ||||
| `supervisor.slots.ports`参数用来配置workers进程接收消息的端口,默认每个supervisor节点上会启动4个worker,当然你也可以按照自己的需要和服务器性能进行设置,假设只想启动2个worker的话,此处配置2个端口即可。 | ||||
|  | ||||
| ### 4. 启动服务 | ||||
| ### 4. 安装包分发 | ||||
|  | ||||
| 先启动Zookeeper集群,之后再启动Storm集群。因为要启动多个进程,所以统一采用后台进程的方式启动,进入到`${STORM_HOME}/bin`目录下,依次执行下面的命令: | ||||
| 将Storm的安装包分发到其他服务器,分发后建议在这两台服务器上也配置一下Storm的环境变量。 | ||||
|  | ||||
| ```shell | ||||
| scp -r /usr/app/apache-storm-1.2.2/ root@hadoop002:/usr/app/ | ||||
| scp -r /usr/app/apache-storm-1.2.2/ root@hadoop003:/usr/app/ | ||||
| ``` | ||||
|  | ||||
|  | ||||
|  | ||||
| ## 四. 启动集群 | ||||
|  | ||||
| ### 4.1 启动ZooKeeper集群 | ||||
|  | ||||
| 分别到三台服务器上启动ZooKeeper服务: | ||||
|  | ||||
| ```shell | ||||
|  zkServer.sh start | ||||
| ``` | ||||
|  | ||||
| ### 4.2 启动Storm集群 | ||||
|  | ||||
| 因为要启动多个进程,所以统一采用后台进程的方式启动。进入到`${STORM_HOME}/bin`目录下,执行下面的命令: | ||||
|  | ||||
| **hadoop001 :** | ||||
|  | ||||
| 因为hadoop001是nimbus节点,所以需要启动nimbus服务和ui服务;同时hadoop001也是supervisor节点,所以需要启动supervisor服务和logviewer服务: | ||||
| 因为hadoop001是`nimbus`节点,所以需要启动`nimbus`服务和`ui`服务;同时hadoop001也是`supervisor`节点,所以需要启动`supervisor`服务和`logviewer`服务: | ||||
|  | ||||
| ```shell | ||||
| # 启动主节点 nimbus | ||||
| @@ -113,7 +135,7 @@ nohup sh storm logviewer & | ||||
|  | ||||
| **hadoop002  &  hadoop003 :** | ||||
|  | ||||
| hadoop002和hadoop003都只需要启动supervisor服务和logviewer服务: | ||||
| hadoop002和hadoop003都只需要启动`supervisor`服务和`logviewer`服务: | ||||
|  | ||||
| ```shell | ||||
| # 启动从节点 supervisor  | ||||
| @@ -124,7 +146,7 @@ nohup sh storm logviewer & | ||||
|  | ||||
|  | ||||
|  | ||||
| ### 5. 查看进程 | ||||
| ### 4.3 查看集群 | ||||
|  | ||||
| 使用`jps`查看进程,三台服务器的进程应该分别如下: | ||||
|  | ||||
| @@ -132,8 +154,6 @@ nohup sh storm logviewer & | ||||
|  | ||||
|  | ||||
|  | ||||
| ### 6. 查看Web-UI界面 | ||||
|  | ||||
| 访问hadoop001的8080端口,界面应如下图,可以看到有1个Nimbus和3个Supervisor,并且每个Supervisor有四个slots,即四个可用的worker进程,此时代表集群已经搭建成功。 | ||||
| 访问hadoop001的`8080`端口,界面应如下图,可以看到有1个`Nimbus`和3个`Supervisor`,并且每个`Supervisor`有四个`slots`,即四个可用的`worker`进程,此时代表集群已经搭建成功。 | ||||
|  | ||||
| <div align="center"> <img  src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/storm集群.png"/> </div> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user