• spark-2.4.5 安装记录


     参考 https://data-flair.training/blogs/install-apache-spark-multi-node-cluster/

    下载 spark 地址为 

     http://spark.apache.org/downloads.html

    准备三个节点

    192.168.1.1 [hostname] master
    192.168.1.2 [hostname] slave1
    192.168.1.3 [hostname] slave2

    将以上配置 append 到 三个节点机器上的  /etc/hosts  中。由于我这里三台机器的 domain 均不同,所以设置了 [hostname],例如 master 节点的为

    192.168.1.1 xxx.localdomain master

    查看主机名方法为,

    $ hostname

    如果最后启动spark 报错 unknown hostname,一般就是指主机名未设置,此时通过 

    $ hostname -i

    发现会报同样的错误。

    安装步骤:

    一、设置 ssh 免密登录

    如果没有安装 ssh,则需要安装

    sudo apt install openssh-server

    三台机器上均执行

    ssh-keygen -t rsa

    一路回车,使用默认设置(密钥文件路径和文件名)

    将 slave1 slave2 上面的  ~/.ssh/id_rsa.pub 文件 拷贝到 master 节点上,

    scp ~/.ssh/id_rsa.pub xxx@master:~/.ssh/id_rsa.pub.slave1
    scp ~/.ssh/id_rsa.pub xxx@master:~/.ssh/id_rsa.pub.slave2

    注意,xxx 表示用户名,这三台机器上最好使用相同的用户名,如需要,可创建用户

    adduser xxx # 创建新用户 xxx
    passwd xxx  # 给 xxx 设置密码

    在 master 上执行

    cat ~/.ssh/id_rsa.pub* >> ~/.ssh/authorized_keys
    scp ~/.ssh/authorized_keys xxx@slave1:~/.ssh/authorized_keys
    scp ~/.ssh/authorized_keys xxx@slave2:~/.ssh/authorized_keys

    在 master 上验证无密码登录

    ssh slave1
    ssh slave2

    在 slave1/slave2 上也可以无密码登录其他两个节点。

    注意:.ssh 文件夹的权限必须为 700, authorized_keys 文件权限必须为 600(其他权限值可能均不奏效),修改权限使用

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

    二、安装jdk ,scala,spark

    省略,spark 的安装仅仅是将上面下载的文件解压即可。注意配置环境变量 

    export JAVA_HOME=...
    export SCALA_HOME=...
    export SPARK_HOME=...
    export PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$PATH

    在 master 节点上,进入 SPARK_HOME 下的 conf 目录,

    cd conf
    cp spark-env.sh.template spark-env.sh
    cp slaves.template slaves

    编辑 slaves 文件

    # localhost
    slave1
    slave2

    编辑 spark-env.sh 文件

    export JAVA_HOME=...
    export SPARK_WORKER_CORES=8

    在 slave1 和 slave2 上,执行同样的操作。

    注意:spark 目录最好在三台节点上保持相同,即 环境变量 SPARK_HOME 相同

    三、启动集群

    在 master 节点上执行

    sbin/start-all.sh

    关闭集群则执行

    sbin/stop-all.sh

    启动后,可以在 master 或 slave1/slave2 上执行  jps  以查看 java 进程。查看 web 界面,地址为

    http://MASTER-IP:8080/

     如果发现 worker 节点连接不是 master,报错如下

    Caused by: java.io.IOException: Connecting to :7077 timed out (120000 ms)
    ...
    org.apache.spark.deploy.worker.Worker$$anonfun$org$apache$spark$deploy$worker$Worker$$tryRegisterAllMasters$1$$anon$1.run
    ...

    那么需要在 三台机器上的 $SPARK_HOME/conf/spark-env.sh 添加

    export SPARK_MASTER_HOST=<master ip>

    然后重新执行 

    sbin/start-all.sh

     最终web 管理界面为

    点击 worker id 下的某个worker,跳转至 worker web 页面,如果此时出现连接失败,请检查 防火墙是否开通,执行如下

    sudo firewall-cmd --query-port=8081/tcp # 返回yes or no,表示是否开放
    sudo firewall-cmd --zone=public --add-port=80/tcp --permanent # 添加白名单
    sudo firewall-cmd --reload # 重新装置规则
    sudo firewall-cmd --query-port=8081/tcp

    如果检查 8081 端口已经开放,仍然打不开 worker web 界面,则执行

    sudo iptables -F
  • 相关阅读:
    jquery学习整理2 管理jQuery包装集
    _#结构还是内容
    【兼容】透明背景
    ☀【CSS3】文本阴影 textshadow
    ☀【CSS3】文本描边 textstroke / 文本填充色 textfillcolor
    ☀【zindex】
    _#【布局】block 与 inline 都有哪些元素
    【兼容】下划线跑出来啦
    【js】document.selection.createRange().text
    _#【语义】推荐使用的元素
  • 原文地址:https://www.cnblogs.com/sjjsxl/p/12606062.html
Copyright © 2020-2023  润新知