今天一个小伙伴找我搞spark,搞了一个中午都没搭建好。心里痒痒的。索性自己重来了一遍。
本来很简单的事情,被这小子搞的老复杂了。究其原因,有以下几点:
下载的软件不对,我用的是这两个软件
spark-1.5.1-bin-hadoop2.6.tgz
hadoop-2.6.0.tar.gz
当然还需要基础的java和scala
这个我就不仔细讲了。
hadoop的搭建我前面的博客已经写过了。这里只讲一点,就是新搭建Hadoop环境后腰hadoop namenode -format
并且保证主从节点的clusterID一致。这个值在data文件夹的VERSION文件里面。
下面将spark 的搭建。
spark 的搭建首要的一点是,软件必须是跟hadoop版本配套的。不配套真麻烦。我看了一个中午的里面的shell脚本。嵌套调用我看的也很晕。
所以还是搞配套的版本好
然后就是配置一下变量了
在conf下面有两个文件要改:
一个时spark-env.sh
添加了这么几行:
export SCALA_HOME = /root/scala-2.11.4
export SPARK_HOME=/root/spark-1.5.1-bin-hadoop2.6
export JAVA_HOME=/jdk1.7.0.55
export SPARK_MASTER_IP=master
export SPARK_WORK_MEMORY=1000m
另一个文件是slaves
修改成这样
slave1
slave2
这个文件是指定work的节点情况。前一个文件就是指定一些语言和路径的情况。
简单吧,然后启动就OK了。
最后主节点增加一个Master进程,
两个slave节点增加了work进程。
要想如何测试集群是否OK
这样测试:在bin目录下跑spark-shell。然后进入了交互式的界面。执行这个语句。
val textc=sc.textFile("/test.txt").filter(line=>line.contains("Spark")).count()
其中test.txt文件是先前放到hdfs上去的。
hadoop dfs -put test.txt /
这个测试语句的作用是统计test.txt里面有多少个spark单词