在RaspberryPi上运行ApacheSpark

首先。

“先决条件”

我正在使用Raspberry Pi 3。
请确保Raspberry Pi已连接到互联网。(使用静态IP)
我正在使用Raspbian作为Raspberry Pi 3的操作系统。
请参阅关于如何在Raspberry Pi 3上进行无线局域网设置的文章,从安装Raspbian操作系统到无线局域网设置。

集群构成

我准备了四台树莓派,其中一台作为主机,其余三台作为从机。

将Spark安装到Raspberry Pi上

需要在每个RasberryPi上进行此设置。
RasberryPi用户一直在使用标准的pi帐户。如果您想要使用其他用户,请先在每个RasberryPi上创建用户,然后切换并进行操作。

安装Java8到Raspberry Pi。

如果已经安装了Java,请忽略这一步骤。

$ apt-cache search oracle jdk
$ sudo apt-get update
$ sudo apt-get install oracle-java8-jdk

主机名的设置在/etc/hostname目录下。

请设置各个Raspberry Pi的主机名,以便通过主机名而不是IP地址进行管理。请为每个Raspberry Pi指定一个容易理解的名称。

$ sudo vi /etc/hostname

/etc/hosts的配置

为了方便与每个Raspberry Pi进行通信,进行以下设置。
请在/etc/hostname配置文件中列出为每台Raspberry Pi设置的主机名和其对应的IP地址。

$ sudo vi /etc/hosts

我只需要一个选项,所以我将以本地中文进行释义。

作为例子,我将其提供以供参考。

##### ↓のlocalhostやipv6はコメントアウトしています。
#127.0.0.1      localhost
#::1            localhost ip6-localhost ip6-loopback
#ff02::1                ip6-allnodes
#ff02::2                ip6-allrouters
#127.0.1.1      raspberrypi

##### ↓が各RasberryPiのホスト名(今回追記分)
192.168.11.10 green01
192.168.11.11 blue01
192.168.11.12 pink01
192.168.11.13 clear01

重启Raspberry Pi

$ sudo reboot

为了在从主服务器(master) SSH登录到从服务器(slave)时不需要密码,请配置密钥。

这个任务只需使用主机上的Rasberry Pi 即可完成。

$ ssh-keygen
$ ssh-copy-id pi@green01
$ ssh-copy-id pi@blue01
$ ssh-copy-id pi@pink01
$ ssh-copy-id pi@clear01

下载Spark

正在下载截至2016年11月28日最新的版本2.0.2。

$ wget http://d3kbcqa49mib13.cloudfront.net/spark-2.0.2-bin-hadoop2.7.tgz
$ tar xzvf spark-2.0.2-bin-hadoop2.7.tgz

Spark配置

需要修正的文件有以下两个。

    • conf/slaves

 

    conf/spark-env.sh

只需要在conf/slaves中设置master,但是对于conf/spark-env.sh文件,也需要在slave上配置相同的文件。例如,将hostname为green01的RaspberryPi设为master。

paraphrase the following natively in Chinese, only need one option :

conf/slaves的设置

$ cd spark-2.0.2-bin-hadoop2.7/
$ cp conf/slaves.template conf/slaves
$ vi conf/slaves

请将slave的主机名添加到conf/slaves的末尾。
例如,只是作为参考,附在下面。

blue01
pink01
clear01

conf/spark-env.sh的配置

$ cd spark-2.0.2-bin-hadoop2.7/
$ cp conf/spark-env.sh.template conf/spark-env.sh
$ vi conf/spark-env.sh

请在conf/spark-env.sh文件的末尾添加。
以下是一个参考示例。
您可以自由设置参数值。

SPARK_MASTER_IP=green01
SPARK_EXECUTOR_MEMORY=512m
SPARK_DRIVER_MEMORY=512m
SPARK_EXECUTOR_INSTANCES=3

※ 这个conf/spark-env.sh文件需要放置在slave的相同路径下。

运行Spark

终于来到这里了。
请在这里的工作中使用主要技能。

启动Spark集群

$ cd spark-2.0.2-bin-hadoop2.7/
$ ./sbin/start-all.sh

请启动并访问Web以进行确认。
“http://(master的IP地址):8080”
如果一切顺利,我认为“Workers”会列出从属服务器。
如果没有,请重新检查设置。

运行Spark

请将以下命令中的「–master spark://(master的IP地址):7077」替换为各自的值。

$ bin/spark-submit --class org.apache.spark.examples.GroupByTest --master spark://(masterのIPアドレス):7077 examples/jars/spark-examples_2.11-2.0.2.jar 30

停止SparkCluster。

$ cd spark-2.0.2-bin-hadoop2.7/
$ ./sbin/stop-all.sh

请参考

我想要用两台树莓派2试验Apache Spark的并行分布处理。

最后

太久了…
终于成功将RaspberryPi转变成工人了。
接下来想尝试安装Cassandra。

广告
将在 10 秒后关闭
bannerAds