PHP中高级工程师面试重点讲解视频课程
Go快速入门浅显易懂视频教程-基础篇
Go快速入门浅显易懂视频教程-中级篇
spark分布式安装实战文档
原创杂文 / 时间:2016-04-10 13:08:55 / 阅读:1531 / 分享:0

欢迎大家关注利志分享微博 进行交流

安装spark分布式文档分享

1:安装软件:hadoop-2.6.0.tar.gz hadoop-native-64-2.6.0.tar jdk-8u45-linux-x64.rpm scala-2.11.8.tgz  spark-1.6.0-bin-hadoop2.6.tgz

2:系统:centos-6.5 64位

3:我这利用的是hadoop的hdfs 加上spark的分布式计算

需要说明:由于我在root权限下面的 有些配置文件没有做权限处理,但是总的实现效果是一样的


先解压所有安装包放到/usr/local下面然后配置全局信息

vim /etc/profile(如果不是考虑权限问题不配置这个,在对应的用户下面配置权限)

JAVA_HOME=/usr/java/latest/

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME PATH


export HADOOP_HOME=/usr/local/hadoop-2.6.0

export PATH=$HADOOP_HOME/bin:$PATH


export SCALA_HOME=/usr/local/scala-2.11.8

export PATH=$SCALA_HOME/bin:$PATH


export SPARK_HOME=/usr/local/spark-1.6.0-bin-hadoop2.6

export PATH=$SPARK_HOME/bin:$PATH



下面的所有的都是相对路径

覆盖hadoop的lib文件,由于本身带的不是64位系统的,会造成使用会报错

tar -x hadoop-native-64-2.4.0.tar -C  hadoop/lib/native/


一:准备三台机器:

192.168.47.128

192.168.47.129

192.168.47.130


所有的hosts文件配置如下:

#vim /etc/hosts

127.0.0.1 localhost

192.168.47.128 master

192.168.47.129 slave1

192.168.47.130 slave2


192.168.47.128

#vim /etc/sysconfig/network

master


192.168.47.129

#vim /etc/sysconfig/network

slave1


192.168.47.130

#vim /etc/sysconfig/network

slave2


rsa互相信任

命令如下:保证ssh master ssh localhost ssh slave1 ssh slave2都能够不用密码的访问

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

chmod 0600 ~/.ssh/authorized_keys





创建目录

mkdir -pv /data0/tmp/dfs/data /data0/tmp/dfs/name


vim etc/hadoop/core-site.xml

<property>

<name>hadoop.tmp.dir</name>

<value>file:/data0/tmp</value>

</property>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:8020</value>

</property>


vim etc/hadoop/hdfs-site.xml

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>master:50090</value>

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/data0/tmp/dfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/data0/tmp/dfs/data</value>

</property>


vim etc/hadoop/mapred-site.xml

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>


etc/hadoop/yarn-site.xml

<property>

<name>yarn.resourcemanager.hostname</name>

<value>master</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>


vim etc/hadoop/hadoop-env.sh 配置下JAVA_HOME

export JAVA_HOME=/usr/java/latest/

vim etc/hadoop/slaves

slave1

slave2


***所有的机器上面的配置文件都要一致


启动

sbin/start-dfs.sh

sbin/start-yarn.sh



spark配置文件处理

vim conf/spark-env.sh

export JAVA_HOME=/usr/java/latest/

export SCALA_HOME=/usr/local/scala-2.11.8

export SPARK_MASTER_IP=192.168.47.128

export SPARK_WORK_MEMORY=1g

export HADOOP_CONF_DIR=/usr/local/hadoop-2.6.0/etc/hadoop

vim conf/slaves

slave1

slave2


sbin/start-all.sh


如果正常的话可以执行

bin/spark-shell

出现Scala命令行


执行spark的wordCount方式如下:

先把需要计算的文件放到hdfs文件系统上面:

hadoop dfs -mkdir /hadoop

hadoop dfs -copyFromLocal README.md /hadoop


然后在scala命令行执行:

var file = sc.textFile("hdfs://master:50090/hadoop/README.md")

var sparks = file.filter(line => line.contains("Spark"))

sparks.count


到此结果就出来了




备注:当然整个流程可能会遇到很多问题,兼容或者端口问题。一切问题都看log吧。基本上能够解决,谁有兴趣可以加我一起交流。


关于作者
按时间分类