您的位置:首页 > 其它

Spark入门及安装部署

2016-11-18 18:47 204 查看
声明:此博客由本人经过实验楼的实验整理得来。

1. Spark概念

Spark是UC Berkeley AMP lab开发的一个集群计算的框架,类似于Hadoop,但有很多的区别(详细见3.4)。最大的优化是让计算任务的中间结果可以存储在内存中,不需要每次都写入HDFS,更适用于需要迭代的MapReduce算法场景中,可以获得更好的性能提升。例如一次排序测试中,对100TB数据进行排序,Spark比Hadoop快三倍,并且只需要十分之一的机器。

2. 关于Spark的文章

2.1 大数据技术生态圈

2.2 Spark与Hadoop的对比

3.安装

下面记录一下自己的安装过程和在安装时出现的一下问题,这里说一下自己用的是
CentOS6.5
的linux系统。

3.1 安装前的准备

java环境,一般linux中都有

python环境,一般linux中会默认安装

scala环境,需要下载

spark 软件,需要下载

安装JAVA

//检查java的版本,满足安装spark要求
//如果版本不足,或者没有可自行安装
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)


安装Scala

安装过程非常的简单,如下:

wget http://labfile.oss.aliyuncs.com/courses/456/scala-2.11.7.tgz tar zxvf scala-2.11.7.tgz
sudo mv scala-2.11.7 /opt/


安装Python

可以看到已经有了,如果没有请自行安装,很简单可以通过
yum
源进行安装。

[yqtao@yqtao ~]$ python
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2


安装Spark

Spark官方下载链接:http://spark.apache.org/downloads.html

按照下图进行选择,并选择下载
tgz
类型的文件。



接下来我用
secureCRT
将下载好的压缩文件传到我的linux中。

//解压并将其转移到/opt/目录下
tar zxvf spark-1.6.1-bin-hadoop2.6.tgz
sudo mv spark-1.6.1-bin-hadoop2.6 /opt/


3.2 配置路径与日志

为了避免每次都输入
/opt/spark-1.6.1-bin-hadoop2.6
这一串前缀,我们将必要的路径放到
PATH
环境变量中。

# 添加配置到bshrc
# 这里要注意的是大小写别写错
# 练习一下书写
echo "export PATH=$PATH:/opt/spark-1.6.1-bin-hadoop2.6/bin" >> ~/.bashrc

# 使bashrc起作用
source ~/.bashrc

# 测试下spark-shell的位置是否可以找到
[yqtao@yqtao ~]$ which spark-shell
/opt/spark-1.6.1-bin-hadoop2.6/bin/spark-shell


进入到spark的配置目录
/opt/spark-1.6.1-bin-hadoop2.6/conf
进行配置:

# 进入配置目录
cd /opt/spark-1.6.1-bin-hadoop2.6/conf

# 基于模板创建日志配置文件
cp log4j.properties.template log4j.properties

# 使用vim编辑文件log4j.properties
# 修改log4j.rootCategory为WARN, console,可避免测试中输出太多信息
log4j.rootCategory=WARN, console

# 基于模板创建配置文件
sudo cp spark-env.sh.template spark-env.sh

# 使用vim编辑文件spark-env.sh
# 添加以下内容设置spark的环境变量
export SPARK_HOME=/opt/spark-1.6.1-bin-hadoop2.6
export SCALA_HOME=/opt/scala-2.11.7


到此,安装基本结束,非常的简单,下面进行简单的测试。

4. 测试

这里仅仅对python版本的spark进行测试,不对scala进行测试。

用命令
pyspark
即可启动spark

[yqtao@yqtao ~]$ pyspark
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
16/11/18 23:16:47 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/11/18 23:16:47 WARN Utils: Your hostname, yqtao resolves to a loopback address: 127.0.0.1; using 192.168.202.128 instead (on interface eth0)
16/11/18 23:16:47 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address
Welcome to
____              __
/ __/__  ___ _____/ /__
_\ \/ _ \/ _ `/ __/  '_/
/__ / .__/\_,_/_/ /_/\_\   version 1.6.1
/_/

Using Python version 2.6.6 (r266:84292, Aug 18 2016 15:13:37)
SparkContext available as sc, HiveContext available as sqlContext.
>>>


这里可能会出现一个错误:java.net.UnknownHostException: XXXX Name or service not known

[yqtao@yqtao ~]$ hostname
yqtao
#在这里进行ping主机的时候会出现错误
#当然这里已经更改过了
[yqtao@yqtao ~]$ ping yqtao
PING yqtao (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.267 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.037 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.108 ms


方法如下:

vim /etc/hosts
#在文件的最后加上
#这里要换成自己的主机名
127.0.0.1 hostname


下面实现一些简单的功能:

首先打开
pyspark
,可以看到一行提示:

SparkContext available as sc, HiveContext available as sqlContext.


告诉我们可以用sc访问上下文。

>>> file=sc.textFile("/etc/protocols")
# 获得行数
>>> file.count()
160
# 获得第一行的内容
>>> file.first()
u'# /etc/protocols:'


5. 启动Spark服务

启动主节点:

# 进入到spark目录
cd /opt/spark-1.6.1-bin-hadoop2.6
# 启动主节点
# 这里要有root权限
./sbin/start-master.sh


在浏览器中打开:

http://localhost:8080
这里是在linux中的系统中。

如下图所示:
spark://localhost.localdomain:7070
是启动从节点的参数。



启动slave节点:

[root@yqtao spark-1.6.1-bin-hadoop2.6]# ./sbin/start-slave.sh spark://localhost.localdomain:7070


使用pyspark连接master再次进行上述的文件行数测试

MASTER=spark://localhost.localdomain:7070 pyspark


刷新master的web页面,可以看到新的
Running Applications
,如下图所示:



终止服务:
./sbin/stop-all.sh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bigData spark