打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Spark on YARN分布式部署文档 | mak

环境:Ubuntu 12.04 LTS Desktop 64bit
提示:这里只用了一台机器同时做master节点和slave节点,如果想要分布式部署,即多个slave节点,准备环境部分一样,然后配置文档做一些修改增加slave节点就行,看完这份文档就知道怎么修改了

0.准备环境

我这里全程都是不用root模式的。

0.1 设置用户名
我这里设成master

0.2 配置hosts文档
vi /etc/hosts

10.1.1.107      master10.1.1.108      slave110.1.1.109      slave2

配置之后ping一下用户名看是否生效

ping master

0.3 关闭防火墙

sudo ufw disable

0.4 安装JAVA
提示:最好建一个目录,把需要用到的东西都装在这一个目录里面,这样比较方便,我用的是~/work,从官网下载最新版JAVA就可以,Spark官方说明JAVA只要是6以上的版本都可以,我下的是jdk-7u75-linux-x64.gz
在~/work这目录下直接解压

tar xvzf jdk-7u75-linux-x64.gz

修改环境变量
vi /etc/profile
添加下列内容:

export JAVA_HOME=/home/administrator/work/jdk1.7.0_75export JRE_HOME=/home/administrator/work/jdk1.7.0_75/jreexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHexport CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

使环境变量生效

source /etc/profile

验证一下JAVA是否成功安装

java -version

如果打印出版本信息,说明安装成功

0.5 安装配置Scala
Spark官方说明Scala要求为2.10.x版本,注意不要下错版本,我这里下了2.10.3
同样放在/usr/java目录下然后解压

tar xvzf scala-2.10.3.tgz

修改环境变量
vi /etc/profile
添加下列内容:

export SCALA_HOME=/usr/java/scala-2.10.3export PATH=$PATH:$SCALA_HOME/bin

使环境变量生效

source /etc/profile

验证Scala是否安装成功

scala -version

如果打印出来版本信息,说明安装成功

0.6 配置SSH无密码通信
安装Openssh server

apt-get install openssh-server

我这里没联网,所以就在http://www.openssl.org/source/openssl-1.0.1e.tar.gz下安装包编译。

tar xvzf openssl-1.0.1e.tar.gzcd openssl-1.0.1e./config shared --prefix=/usr/localmake && make install

在所有机器上都生成私钥和公钥

ssh-keygen -t rsa (然后一直按回车)

如果要机器间都能相互访问,要把所有机器都公钥都拷到authorized_keys,传输公钥可以用scp来传输。

scp .ssh/id_rsa.pub administrator@slave1:/home/administrator/.ssh/id_rsa_master.pub

注意提示的密钥所在的目录,然后切换到那个目录里面,然后把所有的公钥都添加进authorized_keys

cat .ssh/id_rsa.pub >> .ssh/authorized_keys

验证SSH无密码通信

ssh masterssh slave1ssh slave2

1.hadoop YARN安装

1.1 安装hadoop
从官网下载hadoop2.6.0版本
解压

tar xvzf hadoop-2.6.0.tar.gz

hadoop-2.6.0不应该解压到/usr/java,因为/usr/java需要root权限才能访问,最好不要用到root权限。
解压之后会在~/work目录下,看到hadoop的文档:hadoop-2.6.0

1.2 配置hadoop
在hadoop-2.6.0/etc/hadoop/hadoop-env.sh中,添加JAVA安装目录

export JAVA_HOME=//home/administrator/work/jdk1.7.0_75

在hadoop-2.6.0/etc/hadoop下,将mapred-site.xml.templat重命名成mapred-site.xml,并添加以下内容:

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>

在hadoop-2.6.0/etc/hadoop/中,修改core-site.xml

<configuration><property><name>fs.default.name</name><value>hdfs://master:8020</value><final>true</final></property></configuration>

在hadoop-2.6.0/etc/hadoop/中,修改yarn-site.xml:

<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>master:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>master:8031</value></property><property><name>yarn.resourcemanager.address</name><value>master:8032</value></property><property><name>yarn.resourcemanager.admin.address</name><value>master:8033</value></property></configuration>

注:之前从网上看到的配置文档都是mapreduce.shuffle,然后起yarn的时候yarn就一直没起起来,运行jps命令,可以看到yarn起起来,而且有进程号,但是其实已经挂了,去看log文档发现有错,具体错误忘记截图留念了
修改hdfs-site.xml

<configuration><property><name>dfs.namenode.name.dir</name><value>/home/administrator/work/mnt/disk1/yarn/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>/home/administrator/work/mnt/disk1/yarn/dfs/data</value></property><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.permissions</name><value>false</value></property></configuration>

在hadoop-2.6.0/etc/hadoop/slaves文件中添加你的节点ip或者host:

slave1slave2

修改bashrc文件
vi /home/administrator/.bashrc
添加以下内容:

export HADOOP_COMMON_LIB_NATIVE_DIR=/home/administrator/work/hadoop-2.6.0/lib/nativeexport HADOOP_OPTS="-Djava.library.path=/home/administrator/work/hadoop-2.6.0/lib"export HADOOP_ROOT_LOGGER=DEBUG,console//开启debug调试
source /home/administrator/.bashrc

通常编译好的hadoop库是在lib中,如果你不想编译,可以用lib/native里面的预编译库,然后把native的库移动到lib文件夹中。

cp hadoop-2.6.0/lib/native/* hadoop-2.6.0/lib/

1.3 验证hadoop是否安装成功
启动HDFS
首次启动集群时,做如下操作【主名字节点上执行】

bin/hadoop namenode -format

进入hadoop所在目录

sbin/start-dfs.sh

启动YARN

sbin/start-yarn.sh

打开浏览器,输入http://master:8088

这里有一个大坑,如果运行上面的format命令时,会问要不要清空原来的文件,如果清空的话,第二次启动是datanode死活都启动不起来,因为那时候slave节点的文件id是从master节点复制过来的,要保持一致才能打开datanode节点,如果format之后,master节点的文件id就回重新生成,所以这时候要不就不清空文件;如果清空文件就要把datanode的文件也顺便手动删除一下。

1.4 在YARN下尝试运行MapReduce例子程序
搭好hadoop之后,想尝试跑一下例子程序,发现遇到8020端口连接失败错误
网上各种方法都尝试了,包括更改core_site.xml里面的端口为8020,检查防火墙,网络配置都没有问题
后来一个一个log看,发现是/mnt/disk1/yarn/dfs/name 文件有问题
把hdfs格式化久可以了

bin/hadoop namenode -format

运行pi例子程序

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar pi 20 10

命令里的20 10分别指20个map10个reduce

2.Spark安装

2.1 安装Spark
从官网下载最新版Spark
我下的是spark-1.2.1-bin-hadoop2.4.tgz
解压
tar xvzf spark-1.2.1-bin-hadoop2.4.tgz

2.2 配置Spark
vi conf/spark-env.sh
添加一下内容

export SPARK_LOCAL_IP=根据实际情况填写export SCALA_HOME=/home/administrator/work/scala-2.10.3export JAVA_HOME=/home/administrator/work/jdk1.7.0_75export HADOOP_HOME=/home/administrator/work/hadoop-2.6.0export SPARK_LOCAL_DIR=/home/administrator/work/spark-1.2.1-bin-hadoop2.4export SPARK_JAVA_OPTS="-Dspark.storage.blockManagerHeartBeatMs=60000 -Dspark.local.dir=$SPARK_LOCAL_DIR -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:$SPARK_HOME/logs/gc.log -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=60 -Xms256m -Xmx256m -XX:MaxPermSize=128m"export SPARK_MASTER_IP=masterexport SPARK_MASTER_PORT=7077export SPARK_WORKER_CORES=1export SPARK_WORKER_MEMORY=2gexport SPARK_WORKER_PORT=9090export SPARK_WORKER_WEBUI_PORT=9099export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

在slave文件下填上slave主机名:

slave1slave2

2.3 启动Spark

sbin/start-all.sh

2.4 验证Spark
输入命令jps,可以看到打出的JVM程序

8566 SecondaryNameNode8955 NodeManager8082 NameNode17022 Jps8733 ResourceManager8296 DataNode

进入Spark的Web管理页面:

master:8080

运行命令

#本地模式两线程运行./bin/run-example SparkPi 10 --master local[2]# Run application locally on 8 cores./bin/spark-submit   --class org.apache.spark.examples.SparkPi   --master local[6]   lib/spark-examples-1.2.1-hadoop2.4.0.jar   100# Run on a Spark Standalone cluster in client deploy mode./bin/spark-submit   --class org.apache.spark.examples.SparkPi   --master spark://master:7077   --executor-memory 8G   --total-executor-cores 4   lib/spark-examples-1.2.1-hadoop2.4.0.jar   100# Run on a Spark Standalone cluster in cluster deploy mode with supervise./bin/spark-submit   --class org.apache.spark.examples.SparkPi   --master spark://master:7077   --deploy-mode cluster   --supervise   --executor-memory 8G   --total-executor-cores 8   lib/spark-examples-1.2.1-hadoop2.4.0.jar   100# Run on a YARN cluster./bin/spark-submit   --class org.apache.spark.examples.SparkPi   --master yarn-cluster \  # can also be `yarn-client` for client mode  --executor-memory 8G   --num-executors 8   /path/to/examples.jar   100
更多                   
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
建哥手把手系列之大数据环境搭建
Apache Spark源码走读之12
Spark1.5.0 Hadoop2.7.1整合
spark入门教程及经验总结
Hadoop2.7.3+Hbase
Spark集群搭建
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服