您的位置:首页 > 其它

Spark集群搭建与测试

2016-05-05 18:13 357 查看
1.虚拟机与Linux

Spark+Tachyon+HDFS(HDFS擅长迭代运算,Tachyon基于内存分布式系统)

Spark是一个计算框架,需要相应的存储框架。目前是基于下面三种存储:

1.Hadoop的HDFS

2.S3,也就是云存储

3.Tychyon(业界在越来越多使用)

Spark+Tachyon+HDFS,将来是黄金组合

Tychyon是基于内存的分布式存储(分布式内存文件系统),也是来自berckly大学的AIM实验室。通过Tychyon可以把不同来源的数据合并起来。是用Java写的

数据不动代码动

Hadoop是Java开发的,可以运行在JVM中

Scala运行在JVM中

Spark是用Scala写的,所以也可以在JVM中

开发环境:

Windows系统,建议用win7

CPU,i7最好

内存,至少8G,建议金士顿8G * 2

VMware,11

Linux,首选CentOS,可以Ubuntu(ubuntukylin-14.04.2-desktop-amd64.iso)

镜像,8核8G,网络使用NAT模式

2.Hadoop集群的搭建和配置

Hadoop,2.6.0,目前最稳定版本,经过业界证实

安装路径:

cd /usr/local/jdk

cd /usr/local/hadoop

cd /usr/local/spark

生产环境里,可以自己编写自动化安装集群脚本,主要是基于CM(Cloudera Manager)和CDH进行集群安装

【Hadoop】

hadoop-2.6.0/etc/hadoop里是配置文件,主要的配置文件有:

core-site.xml

hdfs-site.xml

HDFS的block默认128M

多份副本,默认是3个副本

namenode,管理所有节点,数据的元数据在namenode里,而且也容易发生故障。所以有一个secondary namenode

mapred-site.xml

配置map/reduce运行在什么框架上,也就是yarn

yarn-site.xml

hadoop-env.sh

配置环境变量

~/.bashrc

配置bash的环境变量

slaves

包含datanode

$ bin/hdfs namenode -format

格式化磁盘为HDFS格式

配置了ssh信任互访之后就可以把hadoop文件夹,拷贝到其他机器中

scp -r ./hadoop-2.6.0 root@Worker1:/usr/local/hadoop/

scp /etc/hosts root@Worker1:/etc/hosts

jps,查看Hadoop的进程

tar -zxvf -c 指定目录 aaaa.tgz

3.Spark集群的搭建和配置

【Spark】

conf/spark-env.sh

用template copy一份,做修改

worker_cores,限制了并行处理的worker的数量

slaves,配置worker

配置~/.bashrc里环境变量

source ~/.bashrc,使其生效

然后同步环境变量文件到其他机器上

spark-defaults.conf

粗粒度,程序初始化时一次性分配资源,计算时不需要再申请资源

细粒度,程序计算时分配资源,计算结束后回收资源

yarn是粗粒度

Mesos既支持粗粒度,又支持细粒度

http://master:8088/cluster

spark web UI:4040端口

Hadoop web UI:50070端口

SparkPi程序

object SparkPi {

def main(args: Array[String]) {

val conf = new SparkConf().setAppName("Spark Pi")

val spark = new SparkContext(conf)

val slices = if (args.length > 0) args(0).toInt else 2

val n = math.min(100000L * slices, Int.MaxValue).toInt // avoid overflow

val count = spark.parallelize(1 until n, slices).map { i =>

val x = random * 2 - 1

val y = random * 2 - 1

if (x*x + y*y < 1) 1 else 0

}.reduce(_ + _)

println("Pi is roughly " + 4.0 * count /


每一个广告点击的总次数

点击排名(倒排)

SortBykey(false,1),其中1表示并行度

sc.textFile("/library/wordcount/input/Data").flatMap(_.split(" ")).map(word => (word, 1)).reduceByKey(_+_).map(pair => (pair._2, pair._1)).sortByKey(false,1).map(pair => (pair._2, pair._1)).saveAsTextFile("/library/wordcount/output/dt_spark_clicked3")


CDH



Spark



HDFS



HBase

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: