Spark是一个高效的分布式计算系统,相比Hadoop,它在性能上比Hadoop号称要高 100倍。Spark提供比Hadoop更 上层的API,同样的算法在Spark中实现往往只有Hadoop的1/10或者1/100的长度。Spark团队发布了0.8.1版本,支持YARN2.2。这个小更新版本,依然基于 Scala 2.9。
Spark依赖Java,Scala,同时有必要配备一个HDFS。
关于Java,HDFS的安装内容,在有关Hadoop安装文档中可见。
Scala安装配置
1.下载scala-2.9.3 一个scala-2.9.3.tgz文件(使用更高scala-2.10.3版本会出现问题)
2.解压scala-2.9.3.tgz文件
3.修改.bashrc文件和/etc/profile文件,写入
export SCALA_HOME=scala解压后文件夹所在的位置
export PATH=$SCALA_HOME/bin:$PATH
Spark安装配置
1.下载spark-0.8.1-incubating-bin-hadoop1.tgz 下载地址:
https://spark.incubator.apache.org/downloads.html
2.解压spark-0.8.1-incubating-bin-hadoop1.tgz 解压的文件夹为
spark-0.8.1-incubating-bin-hadoop1
3.进入spark-0.8.1-incubating-bin-hadoop1/conf目录
4.复制spark-env.sh.template 命名为spark-env.sh
5.修改spark-env.sh文件
export SCALA_HOME=scala解压后文件夹所在的位置
export JAVA_HOME=java安装位置
export SPARK_HOME=spark安装位置
export SPARK_MASTER=分布式安装spark的master IP
export SPARK_MASTER_WEBUI_PORT=8080
export SPARK_WORKER_WEBUI_PORT=8000
6.在slaves中添加slave节点
添加主机名或者IP地址
7.将配置好的spark-0.8.1-incubating-bin-hadoop1文件夹发布到所有的slave节点中(路径要相同)
8.启动spark
在spark/bin目录下执行./start-all.sh
9.测试
Jps查看 master节点master进程是否启动 slave节点worker进程是否启动
网页查看 masterIP:8080查看master slaveIP:8000查看slave
Spark运行
1. ./run-example org.apache.spark.examples.SparkPi local 本地启动spark
2. ./run-example org.apache.spark.examples.SparkPi spark://master:7077 集群启动spark
3.从HDFS读取文件并运行WordCount
$ cd ~/spark-0.8.0
$ hadoop fs -put README.md .
$ MASTER=spark://master:7077 ./spark-shell
scala> val file = sc.textFile("hdfs://master:9000/user/dev/README.md")
scala> val count = file.flatMap(line => line.split(" ")).map(word => (word,
1)).reduceByKey(_+_)
scala> count.collect()
Spark集群停止
bin/stop-all.sh
Shark即Hive on Spark,本质上是通过Hive的HQL解析,把HQL翻译成Spark上的RDD操作,然后通过Hive的metadata获取数据库里的表信息,实际HDFS上的数据和文件,会由Shark获取并放到Spark上运算。Shark的特点就是快,完全兼容Hive,且可以在shell模式下使用rdd2sql()这样的API,把HQL得到的结果集,继续在scala环境下运算,支持自己编写简单的机器学习或简单分析处理函数,对HQL结果进一步分析计算。
Shark依赖Java,Scala,Spark,Hive以及HDFS。
Spark安装配置
1.下载shark-0.8.1-bin-hadoop1.tgz 下载地址:
https://github.com/amplab/shark/releases
2.解压shark-0.8.1-bin-hadoop1.tgz 解压的文件夹为
shark-0.8.1-bin-hadoop1
3.进入shark-0.8.1-bin-hadoop1/conf目录
4.复制shark-env.sh.template 命名为shark-env.sh
5.修改spark-env.sh文件
export SCALA_HOME=scala解压后文件夹所在的位置
export HIVE_HOME=hive安装位置
export SPARK_HOME=spark安装位置
export HADOOP_HOME=hadoop安装位置
export MASTER=spark masterURL
6.将配置好的shark-0.8.1-bin-hadoop1文件夹发布到所有的slave节点中(路径要相同)
7.启动shark
bin/shark-withinfo
8可以用sql测试Shark是否可用。
CREATE TABLE src(key INT, value STRING);
LOAD DATA LOCAL INPATH '${env:HIVE_HOME}/examples/files/kv1.txt' INTO TABLE src;
SELECT COUNT(1) FROM src;
CREATE TABLE src_cached AS SELECT * FROM src;
SELECT COUNT(1) FROM src_cached;