应用场景
搭建部署了hadoop环境后,使用MapReduce来进行计算,速度非常慢,因为MapReduce只是分布式批量计算,用于跑批的场景,并不追求速率,因为它需要频繁读写HDFS,并不能实时反馈结果,这种跑批的场景用的还是比较少的。一般客户最想看到的是输入后立马有结果反馈。那此时我们就需要在Hadoop伪分布式集群上部署Spark环境了!因为Spark是内存计算,它把计算的中间结果存到了内存中,不用频繁读取HDFS,做了极大的优化,当然Spark也是今后的潮流,慢慢将取代Hadoop的很多组件,Spark还有一个优势就是,它是天然与Hadoop完美结合的!
操作步骤
1. 下载Scala和Spark
SCALA2.10.4下载地址
spark1.6.1下载地址
2. 解压并配置环境变量
下载解压scala,添加配置环境变量:
export SCALA_HOME=/opt/scala-2.10.4
export PATH=$JAVA_HOME/bin$HADOOP_HOME/bin:$HIVE_HOME/bin:$SCALA_HOME/bin:$PATH
下载解压spark,添加配置环境变量:
export SPARK_HOME=/opt/spark-1.6.1
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$HIVE_HOME/bin:$PATH
3. 修改spark-env.sh
进入Spark的配置文件路径,
# cd $SPARK_HOME/conf
在spark-env.sh文件中添加如下配置:
export JAVA_HOME=/opt/jdk1.7.0_79
export SCALA_HOME=/opt/scala-2.10.4
export HADOOP_CONF_DIR=/opt/hadoop-2.6.0/etc/hadoop
4. 启动spark:
# cd /opt/spark-1.6.1
# ./sbin/start-all.sh
5. 验证
启动完毕,命令行输入jps,如果有master,worker那么就是启动成功
# ./bin/spark-shell
浏览器访问:http://192.168.208.110:4040
访问spark-shell页面
# ./bin/spark-sql
通过spark-sql连接hive,访问hive中的数据
# ./sbin/start-thriftserver.sh
# ./bin/beeline
重要,启动后,可以直接使用hive的程序,即HQL执行时默认用spark来进行内存计算