Spark 安装配置实验

安装前准备
hadoop 2.7.2 安装,参考

http://blog.csdn.net/wzy0623/article/details/50681554

hive 2.0.0 安装,参考

http://blog.csdn.net/wzy0623/article/details/50685966

注:hive 2.0.0初始化需要执行下面的命令:
$HIVE_HOME/bin/schematool -initSchema -dbType mysql -userName=root -passowrd=new_password
否则执行hive会报错:
Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)

安装spark

1. 下载spark安装包,地址:http://spark.apache.org/downloads.html
下载页面如图1所示


图1

注:如果要用sparksql查询hive的数据,一定要注意spark和hive的版本兼容性问题,在hive源码包的pom.xml文件中可以找到匹配的spark版本。

2. 解压缩
tar -zxvf spark-1.6.0-bin-hadoop2.6.tgz

3. 建立软连接
ln -s spark-1.6.0-bin-hadoop2.6 spark

4. 配置环境变量
vi /etc/profile.d/spark.sh
# 增加如下两行
export SPARK_HOME=/home/grid/spark-1.6.0-bin-hadoop2.6
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

5. 建立spark-env.sh
cd /home/grid/spark/conf/
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
# 增加如下配置
export JAVA_HOME=/home/grid/jdk1.7.0_75
export HADOOP_HOME=/home/grid/hadoop-2.7.2
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_HOME=/home/grid/spark-1.6.0-bin-hadoop2.6
SPARK_MASTER_IP=master
SPARK_LOCAL_DIRS=/home/grid/spark
SPARK_DRIVER_MEMORY=1G

6. 配置slaves
cd /home/grid/spark/conf/
vi slaves
# 增加如下两行
slave1
slave2

7. 将配置好的spark-1.6.0-bin-hadoop2.6文件远程拷贝到相对应的从机中:
scp -r spark-1.6.0-bin-hadoop2.6 slave1:/home/grid/
scp -r spark-1.6.0-bin-hadoop2.6 slave2:/home/grid/

8. 配置yarn

vi /home/grid/hadoop-2.7.2/etc/hadoop/yarn-site.xml
# 修改如下属性
<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>2048</value>
</property>

9. 启动集群
# 启动dfs
start-dfs.sh
# 启动yarn
start-yarn.sh
# 启动spark
$SPARK_HOME/sbin/start-all.sh

10. 启动完成后,查看主从机的进程和spark的UI,分别如图2、图3、图4所示
jps查看主机进程


图2

jps查看主从机进程


图3

http://192.168.17.210:8080/


图4

11. 测试
# 把一个本地文本文件放到hdfs,命名为input
hadoop fs -put /home/grid/hadoop-2.7.2/README.txt input
# 登录spark的Master节点,进入sparkshell
cd $SPARK_HOME/bin
./spark-shell 
# 运行wordcount
val file=sc.textFile("hdfs://master:9000/user/grid/input") 
val count=file.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_)
count.collect()    

上面三条命令的执行分别如图5、图6、图7所示


图5


图6


图7

测试SparkSQL:

在$SPARK_HOME/conf目录下创建hive-site.xml文件,然后在该配置文件中,添加hive.metastore.uris属性,具体如下:
<configuration> 
  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://master:9083</value>
    <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
  </property>
</configuration>

# 启动hive metastore服务

hive --service metastore > /tmp/grid/hive_metastore.log 2>&1 &

# 启动SparkSQL CLI
spark-sql --master spark://master:7077 --executor-memory 1g

# 这时就可以使用HQL语句对Hive数据进行查询

show databases;
create table test;
use test;
create table t1 (name string);
load data local inpath '/home/grid/a.txt' into table t1;
select * from t1;
select count(*) from t1;
drop table t1;

SQL执行如图8所示


图8

做了一个简单的对比测试,300G数据时,sparksql比hive快近三倍,3T数据时,sparksql比hive快7.5倍

参考:

http://spark.apache.org/docs/latest/running-on-yarn.html

http://blog.csdn.net/u014039577/article/details/50829910

http://www.cnblogs.com/shishanyuan/p/4723604.html
http://www.cnblogs.com/shishanyuan/p/4723713.html

展开阅读全文

大规模数据处理计算引擎Spark2.x教程(含资料)

02-03
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。 Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。 Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。 尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。 本部分内容全面涵盖了Spark生态系统的概述及其编程模型,深入内核的研究,Spark on Yarn,Spark RDD、Spark Streaming流式计算原理与实践,Spark SQL,Spark的多语言编程以及SparkR的原理和运行。本套Spark教程不仅面向项目开发人员,甚至对于研究Spark的在校学员,都是非常值得学习的。
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值