Spark集群搭建
百度文库链接:http://wenku.baidu.com/view/26ba843d941ea76e59fa040d
1安装系统
安装Ubuntu14.04 server版64位系统。
注意:主机名,即hostname分别为:master,worker1,worker2,worker3……,用户名都一样,例如ubuntu,密码为1,这样做的目的是,安装软件的时候可以复制,不用改很多配置文件。
注意过程:
地区为Asian,China.
网络自动配置。
用所有硬盘并设置LVM。
安装OpenSSH。
2配置网络
配置网络教程:
1. 编辑interfaces文件,该文件位于/etc/network/下,执行如下命令:
vim/etc/network/interfaces,回车,如图:
2. 添加:
#interfaces(5) file used by ifup(8) and ifdown(8)auto loiface lo inet loopback这以下的是为添加上去该文件上的内容:# The primary network interfaceauto eth0iface eth0 inetstaticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1
如图:
3.
添加完毕后,保存退出,接下来就是配置DNS解析了,DNS解析文件再/etc/resolv.conf。执行:vim /etc/resolv.conf,如下图:
4. 再该文件下添加:
nameserver192.168.1.1
nameserver220.170.64.68
如图:
5. 改完上面,如果重启的话,还是会变为原来的样子,所以要让其永久改变,因此,执行: vim /etc/resolvconf/resolv.conf.d/base,如图:
6. 在里面添加
nameserver192.168.1.1nameserver 220.170.64.68
如图:
7. 然后保存退出,到这里基本就是完成了,然后如果还是不能连上网,要将/etc/NetworkManager/目录下的system-connections删除,或者移动到其他目录下。
8. 最后执行/etc/NetworkManager/就可以连上网了。
3配置SSH免密码登录
配置ssh
输入命令获取密钥
在/home/ubuntu下进入.ssh目录可以看到
(如果要产生known_hosts 只要ssh localhost 即可自动生成)
将公钥添加到authorized_keys里
进入到/etc/ssh/sshd_config里第三行和下一截图里显示的注释去掉使其有效
继续回到.ssh目录中
将id_dsa.pub复制到slave1,slave2中,然后在slave1,slave2中将master_dsa.pub加入到authorized_keys中
回到master中即可免密码登陆到slave1,slave2
(P.S:如果要相互通信,在slave1,slave2中做同样操作即可)
配置不用写IP登录
在linux下,要远程连接另外一台linux服务器,可以使用ssh,具体类似下面的命令:
$ ssh michael@192.168.0.222
但是,如果登陆linux服务器是每天的都要做的事情,那么这样每天输入用户名和IP地址是稍微有些麻烦的。使用下面的方法,你就可以避免这种麻烦。
在用户根目录下的.ssh文件内创建config文件,如下:
$
vi ~/.ssh/config
在其中以类似如下的格式输入要登陆的服务器的相关信息:
Host servername
User username
Hostname serverIP
其中的servername是服务器的别名,username是用户名,serverIP就是这台服务器的IP。比如最前面的那个登陆命令,就可以写成下面的形式:
Host ubuntu
User michael
Hostname 192.168.0.222
如果有多台服务器,可以空一行,然后以同样的格式写在这个文件中。
然后,你就可以直接使用类似下面的命令连接服务器了:
$ ssh ubuntu
4安装JDK
JDK安装
tar.gz为解压后就可使用的版本,这里我们将jdk-7u3-linux-i586.tar.gz解压到/usr/local/下。
1、解压
解压到当前目录:$ tar -zxvf/opt/setup/jdk-7-ea-bin-b145-linux-i586-07_jun_2011.tar.gz
2、环境配置
① $sudo vi/etc/profile
② 在末尾行添加
#set java environment
JAVA_HOME=/usr/local/jdk1.7.0
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出
③$ source/etc/profile 使更改的配置立即生效
④$ java-version 查看JDK版本信息,如果显示出1.7.0证明成功
⑤使JDK在所有用户中使用
$ Vi/etc/profile.d/java.sh 新建一个java.sh执行文件,填入JDK相关环境配置信息,如下图:
$ chmod 755/etc/profile.d/java.sh 给java.sh分配权限
5安装Hadoop-2.6.0
将hadoop安装在 /home/Ubuntu/hadoop2.6
1、 修改/etc/profile
|
2、
修改/hadoop2.6/etc/hadoop/hadoop-env.sh
3、
修改/hadoop2.6/etc/hadoop/yarn-env.sh
4、
修改/hadoop2.6/etc/hadoop/core-site.xml
|
1)fs.defaultFS是NameNode的URL。hdfs://主机名:端口/
2)hadoop.tmp.dir :Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过 如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。
5、
修改/hadoop2.6/etc/hadoop/hdfs-site.xml
|
1) dfs.namenode.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
2) dfs.datanode.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。
3)dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。
注意:此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。
6、
修改/hadoop2.6/etc/hadoop/mapred-site.xml
|
7、 修改/hadoop2.6/etc/hadoop/yarn-site.xml
|
格式化命令:bin/hadoop namenode -format
启动: sbin/start-dfs.sh
sbin/start-yarn.sh
我们也可以通过网页来看是否正常安装与配置,地址如下:http://master:50070/
6安装Scala2.10.4
scala-2.10.4.tgz解压缩即可。我解压缩到目录/usr/local/scala,之后配置~/.bash_profile或/etc/profile环境变量。
#scala
exportSCALA_HOME=/usr/local/scala
exportPATH=$SCALA_HOME/bin:$PATH
使用source~/.bash_profile生效。
或source/etc/profile
验证scala安装是否成功:
输入scala –version
输出:
[root@master scala]# scala -version
Scala code runner version 2.10.4 -- Copyright 2002-2013, LAMP/EPFL
表示成功!
7安装Spark1.4.0
1、解压缩spark-1.4.0-bin-hadoop2.6.tgz到/home/ubuntu/spark目录,之后配置/etc/profle环境变量。
#spark
exportSPARK_HOME=/home/vm/tools/spark
exportPATH=$SPARK_HOME/bin:$PATH
2、修改$SPARK_HOME/conf/spark-env.sh
如果没有,则cp spark-env.sh.template spark-env.sh
exportSPARK_HOME=/home/ubuntu/spark
exportSCALA_HOME=/home/ubuntu/scala
exportJAVA_HOME=/home/ubuntu/jdk
exportSPARK_MASTER_IP=192.168.100.130
exportSPARK_WORKER_MEMORY=2g
exportHADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.5.2/etc/hadoop
3、修改$SPARK_HOME/conf/spark-defaults.conf
spark.masterspark://192.168.100.130:7077
spark.serializerorg.apache.spark.serializer.KryoSerializer
修改$SPARK_HOME/conf/spark-defaults.conf
4、修改slaves文件,
[root@masterconf]# cat slaves
# ASpark Worker will be started on each of the machines listed below.
worker1
worker2
worker3
5、保存退出,这样master中spark就安装完成了,slave节点和maser一样的设置,用scp拷贝就行
测试:
启动spark
cd/home/vm/tools/spark/sbin
shstart-all.sh
测试Spark是否安装成功
cd$SPARK_HOME/bin/
./run-exampleSparkPi
在浏览器中打开地址http://192.168.100.130:8080可以查看spark集群和任务基本情况:
到bin里运行spark-shell
参考资料
1、Hadoop2.6.0 &Spark1.3.0分布式搭建
http://blog.sina.com.cn/s/blog_49cd89710102vc7r.html
2、Ubuntu14.04安装配置Hadoop2.6.0(完全分布式)与wordcount实例运行
http://www.linuxidc.com/Linux/2015-01/112029.htm
3、在Win7虚拟机下搭建Hadoop2.6.0+Spark1.4.0单机环境
http://www.linuxidc.com/Linux/2015-08/120945.htm
4、搭建hadoop/spark集群环境
http://www.open-open.com/lib/view/open1419490748562.html
5、SSH Automatic Login(免密码)
http://liluo.org/blog/2011/05/ssh-automatic-login/
6、Spark教程
http://book.51cto.com/art/201408/448456.htm
7、 jdk安装
8、 Ubuntu14.04下如何配置固定IP
http://jingyan.baidu.com/article/e5c39bf5bbe0e739d7603396.html
Congratulations