在本系列博客中。为了解析一些概念、解析一些架构、代码測试。搭建了一个实验平台。例如以下图所看到的:
本实验平台是在一台物理机上搭建的。物理机的配置是16G内存,4核8线程CPU。
平台的环境配置例如以下:
机器名 | 配置 | 角色 | 软件安装 |
hadoop1 | 2G内存。双核 | hadoop:NN/DN Spark:Master/worker | /app/hadoop/hadoop220
/app/hadoop/spark100
/app/scala2104
/usr/java/jdk1.7.0_21
|
hadoop2 | 2G内存。双核 | hadoop:DN Spark:worker | /app/hadoop/hadoop220
/app/hadoop/spark100
/app/scala2104
/usr/java/jdk1.7.0_21
|
hadoop3 | 2G内存。双核 | hadoop:DN Spark:worker | /app/hadoop/hadoop220
/app/hadoop/spark100
/app/scala2104
/usr/java/jdk1.7.0_21
|
wyy | 16G内存,四核 | client | /app/hadoop/hadoop220 |
以上hadoop和spark安装文件夹的用户属性都是hadoop(组别为hadoop)。其它的安装文件夹的用户属性是root:root。
实验平台搭建顺序
1:虚拟集群的搭建
A:hadoop2.2.0集群搭建
參见博客
hadoop2.2.0測试环境搭建
或者參看视频
http://pan.baidu.com/s/1qWqFY4c 提取password:xv4i
B:Spark1.0.0 Standalone集群搭建
2:开发端的搭建
client採用的Ubuntu操作系统。而Spark虚拟集群採用的是CentOS。默认的java安装文件夹两个操作系统是不一样的,所以在Ubuntu下安装java的时候特意将java的安装路径改成和CentOS一样。不然的话,每次scp了虚拟集群的配置文件之后,要改动hadoop-env.sh中的java配置。
clienthadoop2.2.0和Spark1.0.0是直接从虚拟集群中scp出来的。放置在同样的文件夹下,拥有同样的用户属性。
开发用的IDE採用IntelliJ IDEA。项目的搭建參见博客
使用IntelliJ IDEA开发Spark1.0.0应用程序。
应用程序的部署和调试參见博客
应用程序部署工具spark-submit 。
3:实验数据来源
实验用的数据来源于搜狗实验室下载地址为:
http://download.labs.sogou.com/resources.html?v=1
- 互联网语料库(SogouT)
- 网页搜索结果评价(SogouE)
- 链接关系库(SogouT-Link)
- SogouRank库(SogouT-Rank)
- 用户查询日志(SogouQ)
- 互联网词库(SogouW)
4:伪分布式实验平台搭建
上面的实验平台是将hadoop集群、Spark集群和开发环境分离,更接近生产系统;但非常多朋友的物理机配置可能偏低,那样的话能够採用伪分布式部署。但伪分布式会有一些缺陷:
- spark的数据本地性不易測试
- 对于并行性不易理解
- job调度不易理解
至于伪分布式的部署非常easy,步骤和虚拟集群搭建差点儿相同,仅仅要改动两个地方:
- ssh无password登陆仅仅须要ssh一下本机
- hadoop和spark的配置文件salves改动成本机机器名
5:调试工具
- 日志配置(尚未撰写博客。近期写完补上链接)
- history server配置
- job server配置(尚未撰写博客。近期写完补上链接)