spark1.4的集群搭建

来源:互联网 发布:网络离婚证在线制作 编辑:程序博客网 时间:2024/05/16 09:26
使用的版本:
scala 2.11.7 
hadoop 2.6.0 
spark 1.4.0

一. 搭建hadoop

1.下载三个软件包
2. 将软件包上传到master和slave结点上(Xshell传输,点->按钮向右传输) 
3. 修改hosts文件(根目录的/etc/hosts),将三个机器的机器名称及IP地址都写入里面
4. 关闭防火墙 service iptables stop(如果不关防火墙,则有可能造成无法登陆本身的结点)

5. .ssh无秘钥配置(这里很重要),最后要能连上自己,也能无密码登陆slave结点,命令是

  ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
  cat id_dsa.pub >> authorized_keys(三个结点上分别都要执行)

  scp root@master:~/.ssh/id_dsa.pub ./master_dsa.pub(这两句分别是在两个slave 结点上执行)
  cat master_dsa.pub >> authorized_keys
 
 这样master结点就可以连接slave结点了
6. 配置hadoop中的core-site.xml、hdfs-site.xml、mapred-site.xml.template、yarn-site.xml
7. 配置yarn-env.sh, hadoop-env.sh,export JAVA_HOME    注意: echo $JAVA_HOME 可以查看jdk安装位置
8. namenode格式化  ./bin/hdfs namenode -format
9. 启动hdfs和yarn,./sbin/start-dfs.sh  ./sbin/start-yarn.sh(一定要加sbin,不然找不到结点)
master:50070查看HDFS集群      
master:8088 查看yarn
master:4040 spark查看job
master:19888 查看jobhistory

发现slave结点上datanode没有启动,这时发现是slaves文件里面没有修改,将两个slave结点的名称写进去,则datanode被启动
在传送jdk时,使用scp命令,如果不加-r,则会出现jdk is not a regular file这样的错误
将namenode格式化前,然后将dfs文件夹删掉,重新建一个dfs文件夹,然后再进行格式化。
注意目录要写正确
启动hadoop时,提示中有奇怪的路径。经察看,发现是jdk安装路径的问题。
发现无法启动datanode,发现是slave文件忘记写。

二. 安装scala(所有节点都安装)

1. 在官网上下载scala
2. 解压和安装 tar -xvf scala-2.11.7.tgz
3. 增加SCALA_HOME环境变量配置
    在/etc/profile下增加:
    export JAVA_HOME=/home/spark/opt/java/jdk1.8.0_05
    export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
    export SCALA_HOME=/home/spark/opt/scala-2.11.7
    export HADOOP_HOME=/home/spark/opt/hadoop-2.6.0
    PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:${SCALA_HOME}/bin
    然后source /etc/profile生效
4. 验证scala: scala -version

三. 搭建spark

1. 下载spark(先确定使用hadoop版本,然后再确定spark版本,可直接使用prebuild版本,不需再编译)
2. master主机配置:
    在/etc/profile中增加SPARK_HOME:
     export JAVA_HOME=/home/spark/opt/java/jdk1.8.0_05
    export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
    export SCALA_HOME=/home/spark/opt/scala-2.11.7
    export HADOOP_HOME=/home/spark/opt/hadoop-2.6.0
   export SPARK_HOME=/home/spark/opt/spark-1.2.0-bin-hadoop2.4
    PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:
${HADOOP_HOME}/bin
   然后source /etc/profile生效
3. 修改conf/slaves文件,在其中增加两个节点的名称
4. 配置spark-env.sh:
    export JAVA_HOME=usr/intern/java/jdk1.8.0_05
    export SCALA_HOME=/usr/intern/scala-2.11.7
    export SPARK_MASTER_IP=10.10.108.202:8085(这里可以不写端口号,这样就是默认8080)
    export SPARK_WORKER_MEMORY=2g
    export HADOOP_CONF_DIR=/root/spark_install/hadoop-2.6.0/etc/hadoop
5.  worker节点配置
    完成配置后,将spark目录copy slave机器 scp -r ~/spark_install/spark-1.4.0 root@10.10.108.slave2:~/spark_install/  再用相同的命令发送到slave节点
6. 启动spark 
    ./sbin/start-all.sh  master:8085察看spark集群,注意要看看datanode是不是全
   ./sbin/stop-all.sh
    在启动spark后,进入bin目录,可以spark-shell启动一个Application,然后再运行命令,运行spark里面的example master:4040 可以察看job


PATH后增加:${SCALA_HOME}/bin
注意:PATH如果不包含vim安装位置时,会找不到vim命令
PATH的书写方法:export PATH=$PATH:${SCALA_HOME}/bin或将$PATH加在最后,但要在前面加:
netstat -ano | grep 8080 查看8080端口是否被占用
出现问题:只启动了Master结点上的worker,没有启动slave结点上的worker,后发现是没有配slaves这个文件
出现问题:端口8080被tomcat占用,因而无法启动worker,察看logs下的日志,发现是端口占用的问题。因而在sbin/start-master.sh将端口改为8085,spark的web页面就可以登上了.

去掉安全模式 bin/hadoop dfsadmin -safemode leave

查看jdk安装位置 java -version一定要确定jdk正确
每次将namenode格式化前,要将每个节点(包括master和slave)都删除掉dfs和tmp文件夹,再新建这两个文件夹,在dfs文件夹中新建data和name两个文件夹。
0 0