1.项目背景
公司目前已经部署了分布式文件存储和计算平台(已经上线hadoop,spark,hbase等),业务数据已经以文件的形式存储在hdfs中,业务部门经常提出各种数据需求,因此需要基于spark计算平台开发各种计算任务。公司目前的分布式平台只有一套线上环境,为了避免在学习、测试spark开发的过程中对线上环境造成污染,经过运维同事的规划,提供一台配置较高的pc用于搭建单机(standalone模式)的hadoop + spark测试环境,希望通过该环境 了解和熟悉 hadoop,spark的运行模块,机制,流程以及常用操作命令;通过ide开发spark的经典例子WordCount向spark平台提交计算和查看结果。(个人qq:498676231欢迎同仁交流和指正下面博客内容中的问题和错误)
2.主要技术和工具清单 ref-software-list.1
os:Linux-centos-6.5
maven:ver-3.1.0
jvm:ver-jdk-1.7.0_79(不要使用1.8.x,会导致编译失败)
scala:ver-2.10.5
hadoop:ver-2.6.0-cdh5.12.0
spark:ver-1.6.0
idea:ver-2016.3
3.hadoop + spark 环境搭建简单说明
安装过程中的工具清单见 ref-software-list.1,maven,jdk,scala的安装过程比较简单,去各自官网下载对应版本的软件然后解压并配置环境变量即可正常使用了。下面简单介绍一下hadoop,spark的standalone模式的安装(安装在单台主机,伪集群模式),安装方式一般有两种:
1.去官网下载编译好的对应版本的软件,解压到指定目录下,配置环境变量和各自的配置文件,然后启动相应的服务即可。
2.通过linux自带的安装助手工具安装,以本次centos中的实际操作为例,通过
yum install softname1 softname2 ... -y #如果不是root用户sudo yum install softname1 softname2 ... -y
安装相关的平台组件,详细的帖子可以参考
(1)
使用CDH5安装Hadoop集群
(3)
Spark安装和使用
这里补充几个问题点:
q1. yum install 命令安装软件时,命令行中没有显示指定软件版本, ref-software-list.1中我们要安装指定版本的hadoop和yarm该如何控制版本信息呢
a1.
通过配置yum源指定hadoop的版本为cdh5, yum install 命令会根据配置的baseurl自动去适配hadoop的版本,因spark的安装依赖hadoop,hadoop安装完成(版本确定),安装spark时会根据已有的hadoop适配其自身的版本。
本次安装hadoop yum源配置如下,在/etc/yum.repos.d/cdh5.repo (如果没有对应的文件或者目录需要自己创建)添加如下内容:
# Packages for Cloudera's Distribution for Hadoop, Version 5, on RedHat or CentOS 6 x86_64
name=Cloudera's Distribution for Hadoop, Version 5
gpgcheck = 1
q2. 本次单机模式安装的组件
a2.
hadoop-hdfs hadoop-client hadoop-hdfs-namenode hadoop-hdfs-datanode spark-master spark-worker spark-history-server
安装命令如下:
hadoop-hdfs 相关安装命令
yum install hadoop hadoop-hdfs hadoop-client hadoop-doc hadoop-debuginfo hadoop-hdfs-namenode
yum install hadoop-hdfs-datanode -y
spark 相关安装命令
q3. 需要修改的相关配置文件
a3.
/etc/hosts 中追加 172.168.xx.xx cdh1