zoukankan      html  css  js  c++  java
  • 【Spark】---- 在Linux集群上安装和配置Spark

    1 安装JDK
     
    1) 进入JDK官网
    2) 下载JDK安装包
    3)配置环境变量,在/etc/profile增加以下代码
    JAVA_HOME=/home/hadoop/jdk1.6.0_38
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar
    export JAVA_HOME PATH CLASSPATH
    4)使profile文件更新生效
    source /etc/profile
     
    2 安装Scala
    Scala 官网提供各个版本的Scala,用户需要根据Spark官方规定的Scala版本进行下载和安装。Scala官网地址为http://www.scala-lang.org/
    1) 下载Scala
    2)在目录下解压
    tar -zxvf scala-2.10.4.tgz
     
    3)配置环境变量,在/etc/profile中添加下面的内容
    export SCALA__HOME=/home/hadoop/scala-2.10.4/scala-2.10.4
    export PATH=${SCALA_HOME}/bin:$PATH
     
    4)使用profile文件更新生效
    source /etc/profile
     
    3 配置SSH免密码登录
    在集群管理和配置中有很多工具可以使用。例如,可以采用pssh等Linux工具在集群中分发与复制文件,用户也可以自己书写Shell、Python的脚步分发包。
    Spark的Master节点向Worker节点命令需要通过ssh进行发送,用户不希望Master每发送一次命令就输入一次密码,因此需要实现Master无密码登陆到所有Worker。
    Master作为客户端,要实现无密码公钥认证,连接服务端Worker。需要在Master上生成一个秘钥对,包括一个公钥和一个私钥,然后将公钥复制到Worker上。当Master通过ssh连接Worker
     
    1)在Master节点上,执行以下命令
    ssh-keygen-trsa
     
    2)打印日志执行以下命令
     
    如果是root用户,则在/root/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。
    把Master上的id_rsa.pub文件追加到Worker的authorized_keys内。
    3)复制Master的id_rsa.pub文件
    scp id_rsa.pub root@172.20.14.144:/home
    /*可使用pssh对全部节点分发*/
     
    4)登录worker节点,执行以下命令
    cat /home/id_rsa.pub >> /root/.ssh/authorized_keys
    /*可使用pssh对全部节点分发*/
     
    注意:配置完毕,如果Master仍然不能访问Worker,可以修改Worker的authorized_keys文件的权限,命令为 chmod 600 authorized_keys
     
    4安装Hadoop
    (1)下载hadoop-2.2.0
     
     1)选取一个Hadoop镜像网址,下载Hadoop
    wget http://www.trieuvan.com/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz
     
     2)解压tar包
    tar -vxzf hadoop-2.2.0.tar.gz -C /usr/local
    cd /usr/local
    mv hadoop-2.2.0 hadoop
    chown -R hduser:hadoop hadoop
     
    (2)配置Hadoop环境变量
     1)编辑profile文件
    vi /etc/profile
     
     2)在profile文件中增加以下内容
    export JAVA_HOME=/usr/lib/jvm/jdk/
    export HADOOP_INSTALL=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_INSTALL/bin
    export PATH=$PATH:$HADOOP_INSTALL/sbin
    export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
    export HADOOP_COMMON_HOME=$HADOOP_INSTALL
    export HADOOP_HDFS_HOME=$HADOOP_INSTALL
    export YARN_HOME=$HADOOP_INSTALL
     
    (3)编辑配置文件
     
     1)进入Hadoop所在目录
     2)配置hadoop-env.sh文件
    export JAVA_HOME=/usr/lib/jvm/jdk/
     
     3)配置core-site.xml文件
    <configuration>
    /*这里的值指的是默认的HDFS路径*/
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://Master:9000</value>
    </property>

    /*缓冲区大小: io.file.buffer.size默认是4KB*/
    <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
    </property>
    /*临时文件夹路径*/
    <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/tmp</value>
    <description> Abase for other temporary directories </description>
    </property>
    <property>
    <name>hadoop.proxyuser.hduser.hosts</name>
    <value>*</value>
    </property>
    <property>
    <name>hadoop.proxyuser.hduser.groups</name>
    <value>*</value>
    </property>
    </configuration>
     
     4) 配置yarn-site.xml文件
    <configuration>
    <property>
    <name>yarn.nodemanager.aux-services</value>
    <value>mapreduce_shuffle</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    /*resourceManager的地址*/
    <property>
    <name>yarn.resourcemanager.address</name>
    <value>Master:8030</value>
    </property>
    /*调度器的端口*/
    <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>Master1:8030</value>
    </property>
    /*resource-tracker端口*/
    <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>Master:8031</value>
    /*resourcemanager管理器端口*/
    <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>Master:8033</value>
    </property>
    /*ResourceManager 的Web端口、监控 job 的资源调度*/
    <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>Master:8088</value>
    </property>
    </configuration>
     
     5)配置mapred-site.xml文件
    <configuration>
    /*hadoop对map-reduce运行矿建一共提供了3种实现,在mapred-site.xml中通过“mapreduce.framework.name”这个属性来设置为"classic"."yarn"或者“local”*/
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    /*MapReduce JobHistory Server地址*/
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>Master:10020</value>
    </property>
    /*MapReduce JobHistory Server web UI 地址*/
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>Master:19888</value>
    </property>
    </configuration>
     
     
    (4)创建namenode和datanode目录,并配置其相应路径
      1)创建namenode和datanode目录,
    mkdir /hdfs/namenode
    mkdir /hdfs/datanode
     
      2)执行命令后,再次回到目录,配置hdfs-site.xml文件,在文件中添加如下内容
    <configuration>
    /*配置主节点名和端口*/
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>Master:9001</value>
    </property>
    /*配置从节点和端口号*/
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/hdfs/namenode</value>
    </property>
    /*配置datanode的数据存储目录*/
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/hdfs/datanode</value>
    </property>
    /*配置副本数*/
    <property>
    <name>dfs.replication</name>
    <value>3</value>
    </property>
    /*将dfs.webhdfs.enabled属性设置为true,否则就不能使用webhdfs的LISTSTATUS,LISTFILESTATUS等需要列出文件,文件夹状态的命令,因为这些信息都是由namenode保存的*/
    <proeprty>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
    </configuration>
     
     
    (5)配置Master和Slave文件
     1)Master文件负责配置主节点的主机名
    Master /*Master为主节点主机名*/
     
     
     2)配置Slaves文件添加从节点主机名
    /*Slave为从节点主机名*/
    Slave1
    Slave2
    Slave3
    Slave4
    Slave5
     
     
    (6)将Hadoop所有文件通过pssh发送到各个节点
    ./pssh -h hosts.txt -r /hadoop /
     
     
    (7)格式化Namenode(在Hadoop根目录下)
      ./bin/hadoop namenode -format
     
    (8)启动Hadoop
    ./sbin/start-all.sh
     
     
    (9)查看是否配置和启动成功
    jps
    DataNode
    ResourceManager
    Jps
    NodeManager
    NameNode
    SecondaryNameNode
     
    ps-aux|grep *DataNode* /*查看DataNode进程*/
     
    5 安装Spark
     
    1)下载spark
    2)解压
    3)配置
     
    编辑conf/Spark-env.sh文件,加入下面的配置参数
    export SCALA_HOME=/paht/to/scala-2.10.4
    export SPARK_WORKER_MEMORY=7g
    export SPARK_MASTER_IP=172.16.0.140
    export MASTER=spark://172.16.0.140:7077
     
    4)配置slaves文件
    编辑conf/slaves文件,以5个Worker节点为例,将节点的主机名加入slaves文件中
    Slave1
    Slave2
    Slave3
    Slave4
    Slave5
     
    6 启动集群
     
    (1)Spark启动与关闭
      1)在Spark根目录启动Spark
    ./sbin/start-all.sh
    2)关闭Spark
    ./sbin/stop-all.sh
     
    (2)Hadoop的启动与关闭
      1)在Hadoop根目录启动Hadoop
      2)关闭Hadoop
     
    (3)检测是否安装成功
     1)正常状态下的Master节点如下。
     2)利用ssh登录Worker节点
  • 相关阅读:
    推荐一款在IntelliJ IDEA中使用微信/QQ的插件
    springboot整合easyexcel实现Excel导入导出
    Spring Boot 跨域访问
    springboot整合mybatis-plus逆向工程
    给你自己的博客加个 Markdown
    Spring Boot实战:拦截器与过滤器
    CentOS软件的安装,更新与卸载命令
    Springboot整合pagehelper分页
    ajax请求成功回调函数没有执行问题
    ubuntu git生成ssh key (公钥私钥)配置github或者码云
  • 原文地址:https://www.cnblogs.com/sunwubin/p/4255109.html
Copyright © 2011-2022 走看看