Spark环境搭建

       Spark也有一段时间了,简单总结一下spark集群的配置信息,网上有许多参考教程,但是每个似乎配出来都有点小问题,这里总结一下我的配置:

       spark大数据计算框架,不具备数据存储功能,因此一般sparkHadoop是搭配使用的,想要搭建spark环境需要先搭建hadoop的环境,首先我们配置一下节点信息,在/etc/hosts中配置节点ip地址与名称,我这里用了两个节点:

本机ip地址可以使用ifconfig命令查看,配置好节点好可以ping一下看看能否ping通,之后我们要配置主节点能够无需密码直接ssh到各个从节点上,我这里引用http://www.powerxing.com/install-hadoop-cluster/进行说明:

首先生成 Master 节点的公匙,在 Master 节点的终端中执行(因为改过主机名,所以还需要删掉原有的再重新生成一次):

  1. cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
  2. rm ./id_rsa* # 删除之前生成的公匙(如果有)
  3. ssh-keygen -t rsa # 一直按回车就可以

让 Master 节点需能无密码 SSH 本机,在 Master 节点上执行:

  1. cat ./id_rsa.pub >> ./authorized_keys

完成后可执行 ssh Master 验证一下(可能需要输入 yes,成功后执行 exit 返回原来的终端)。接着在 Master 节点将上公匙传输到 Slave1 节点:

  1. scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/

scp 是 secure copy 的简写,用于在 Linux 下进行远程拷贝文件,类似于 cp 命令,不过 cp 只能在本机中拷贝。执行 scp 时会要求输入 Slave1 上 hadoop 用户的密码(hadoop),输入完成后会提示传输完毕,如下图所示:

通过scp向远程主机拷贝文件

接着在 Slave1 节点上,将 ssh 公匙加入授权:

  1. mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在则忽略
  2. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
  3. rm ~/id_rsa.pub # 用完就可以删掉了

如果有其他 Slave 节点,也要执行将 Master 公匙传输到 Slave 节点、在 Slave 节点上加入授权这两步。

这样,在 Master 节点上就可以无密码 SSH 到各个 Slave 节点了,可在 Master 节点上执行如下命令进行检验,如下图所示:

  1. ssh Slave1

配置环境变量:我们一般情况下需要4个环境变量:JavahadoopScalaspark,在各个官网上下载并放到目录中,可以参考如下配置:

配置好环境变量后,我们先进行hadoop的环境配置,需要修改hadoop目录下的etc/hadoop下的五个配置文件:

1slaves

根据配置的节点名称进行配置

 

 

2、core-site.xml

 

 

 

 

 

3hdfs-site.xml

 

 

 

 

 

 

 

dfs.replication代表hdfs上存储数据的拷贝数,默认是3,可以自行设置。

 

4mapred-site.xml(默认文件名后带.template后缀,需要重命名)

 

 

 

 

 

 

 

 

5yarn-site.xml yarn是一种资源管理器,spark一般采用yarn作为资源管理器

 

 

 

 

 

 

 

 

配置好后,将 Master 上的 /usr/local/Hadoop 文件夹复制到各个节点上。因为之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。在 Master 节点上执行:

  1. cd /usr/local
  2. sudo rm -r ./hadoop/tmp # 删除 Hadoop 临时文件
  3. sudo rm -r ./hadoop/logs/* # 删除日志文件
  4. tar -zcf ~/hadoop.master.tar.gz ./hadoop # 先压缩再复制
  5. cd ~
  6. scp ./hadoop.master.tar.gz Slave1:/home/hadoop

在 Slave1 节点上执行:

  1. sudo rm -r /usr/local/hadoop # 删掉旧的(如果存在)
  2. sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
  3. sudo chown -R hadoop /usr/local/hadoop

同样,如果有其他 Slave 节点,也要执行将 hadoop.master.tar.gz 传输到 Slave 节点、在 Slave 节点解压文件的操作。

首次启动需要先在 Master 节点执行 NameNode 的格式化:

  1. hdfs namenode -format # 首次运行需要执行初始化

初始化完成后就可以启动hadoop了:

启动后如果出现namenodesecondarynamenode说明配置成功,(如果在slaves中将主节点也作为slave还会出现datanode),接着启动yarn

./sbin/start-yarn.sh,最后查看jps应该是这样的:

 

 

 

 

 

 

 

 

spark的配置要比hadoop简单一些,spark的配置文件在spark/conf目录下(注意下面的一些配置文件默认是带.template后缀的,需要修改):

1slaves hadoopslaves配置完全一样

2spark-env.sh

 

 

配置完成后spark目录下使用./sbin/start-all.sh启动,启动成功后如下:

 

 

 

 

 

 

 

 

 

启动了master即启动成功,woker的话需要在slaves上把主节点也加入进来,可以在web页面上查看配置信息:

 

 










  可以输入../bin/spark-shell来进行本地spark程序测试:

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值