• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
⁰¹.₂₂梁℘࿐的博客
博客园    首页    新随笔    联系   管理    订阅  订阅

spark集群安装部署

 

修改master主机名字

[root@master]# hostname master

修改hosts文件

[root@master ~]# vim /etc/hosts
192.168.112.135 master
192.168.112.136 slave1
192.168.112.137 slave2

修改完成后保存执行如下命令

[root@master ~]# source /etc/hosts

配置master无密码登录所有Salve

  在master节点上生成密码对

[root@master ~]# ssh-keygen -t rsa -P ''

  把id_rsa.pub追加到授权的key里面去

[root@master ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

修改ssh配置文件"/etc/ssh/sshd_config"

[root@master ~]# vim /etc/ssh/sshd_config
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式

重启ssh服务

[root@master ~]# systemctl restart ssh

验证无密码登录本机是否成功

[root@master ~]# ssh master

将公钥复制到所有的Slave机器上

[root@master ~]# scp /root/.ssh/id_rsa.pub root@slave1:/root/
[root@master ~]# scp /root/.ssh/id_rsa.pub root@slave2:/root/

接着配置slave节点,以下是在slave1、slave2节点的配置操作

  在"/root/"下创建".ssh"文件夹

[root@slave1 ~]# mkdir /root/.ssh

将master的公钥追加到slave1、slave2的授权文件"authorized_keys"中

[root@slave1 ~]# cat /root/id_rsa.pub >> /root/.ssh/authorized_keys

修改"/etc/ssh/sshd_config"

[root@master ~]# vim /etc/ssh/sshd_config
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式

重启ssh服务

[root@slave1 ~]# systemctl restart ssh

创建"slave1、slave2"自己的公钥和私钥,并把自己的公钥追加到"authorized_keys"文件中

[root@slave1 ~]# ssh-keygen -t rsa -P ''
[root@slave1 ~]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

将slave1、slave2节点的公钥"id_rsa.pub"复制到Master节点的"/root/"目录下

[root@slave1 ~]# scp /root/.ssh/id_rsa.pub root@Master:/root/

以下是在master节点的配置操作

将slave1、slave2的公钥追加到Master的授权文件"authorized_keys"中去。
[root@master ~]# cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

删除slave1复制过来的"id_rsa.pub"文件

[root@master ~]# rm –r /root/id_rsa.pub

Java1.8.0_121环境搭建

上传并解压jdk     # master,slave1,slave2

jdk-8u121-linux-x64.tar.gz
[root@master ~]# tar -zxvf jdk-8u121-linux-x64.tar.gz

添加Java环境变量,在/etc/profile中添加

[root@master ~]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/rt.jar
export JAVA_HOME PATH CLASSPATH

保存后刷新配置

[root@master ~]# source /etc/profile

Scala2.10.4环境搭建

上传并解压Scala

scala-2.10.4.rpm
[root@master ~]# rpm -ivh scala-2.10.4.rpm

添加Scala环境变量,在/etc/profile中添加

[root@master ~]# vim /etc/profile
export SCALA_HOME=/usr/share/scala
export PATH=$SCALA_HOME/bin:$PATH

保存后刷新配置

[root@master ~]# source /etc/profile

Hadoop2.7.2完全分布式搭建

上传并解压Hadoop

hadoop-3.3.0.tar.gz
[root@master ~]# tar -zxvf hadoop-2.7.2.tar.gz
[root@master ~]# mv hadoop-2.7.2 /opt/

修改/etc/profile

export HADOOP_HOME=/opt/hadoop-2.7.2/
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_ROOT_LOGGER=INFO,console
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

保存后刷新配置

[root@master ~]# source /etc/profile

修改JAVA_HOME 如下

[root@master hadoop-2.7.2]# vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_121
[root@master hadoop-2.7.2]# vim $HADOOP_HOME/etc/hadoop/yarn-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_121
[root@master hadoop-2.7.2]# vim $HADOOP_HOME/etc/hadoop/mapred-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_121

/etc/hadoop/slaves,将原来的localhost删除,改成如下内容

[root@master ~]# vim $HADOOP_HOME/etc/hadoop/slaves
slave1
Slave2

修改/opt/hadoop-2.7.2/etc/hadoop/core-site.xml

[root@master ~]# vim $HADOOP_HOME/etc/hadoop/core-site.xml
<configuration>
     <property>
          <name>fs.defaultFS</name>
          <value>hdfs://master:9000</value>
     </property>
     <property>
          <name>io.file.buffer.size</name>
          <value>131072</value>
     </property>
     <property>
          <name>hadoop.tmp.dir</name>
          <value>/opt/hadoop-2.7.2/tmp</value>
     </property>
</configuration>

修改/opt/hadoop-2.7.2/etc/hadoop/hdfs-site.xml

[root@master ~]# vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
     <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>Master:50090</value>
     </property>
     <property>
          <name>dfs.replication</name>
          <value>2</value>
     </property>
     <property>
          <name>dfs.namenode.name.dir</name>
          <value>file:/opt/hadoop-2.7.2/hdfs/name</value>
     </property>
     <property>
          <name>dfs.datanode.data.dir</name>
          <value>file:/opt/hadoop-2.7.2/hdfs/data</value>
     </property>
</configuration>

修改/opt/hadoop-2.7.2/etc/hadoop/mapred-site.xml

[root@master ~]# cp mapred-site.xml.template mapred-site.xml
[root@master ~]# vim $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
     <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
     </property>
     <property>
          <name>mapreduce.jobhistory.address</name>
          <value>master:10020</value>
     </property>
     <property>
          <name>mapreduce.jobhistory.address</name>
          <value>master:19888</value>
     </property>
</configuration>

修改/opt/hadoop-2.7.2/etc/hadoop/yarn-site.xml

[root@master ~]# vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
<configuration>
     <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
     </property>
     <property>
          <name>yarn.resourcemanager.address</name>
          <value>master:8032</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.admin.address</name>
          <value>master:8033</value>
     </property>
     <property>
          <name>yarn.resourcemanager.webapp.address</name>
          <value>master:8088</value>
     </property>
</configuration>

复制master节点的hadoop文件夹到Slave1和Slave2上

[root@master ~]# scp -r /opt/hadoop-2.7.2 root@slave1:/opt
[root@master ~]# scp -r /opt/hadoop-2.7.2 root@slave2:/opt

在dlave1和dlave2上分别修改/etc/profile,过程同Master一样

在master节点启动集群,启动之前格式化一下namenode

[root@master ~]# hadoop namenode -format

启动

[root@master ~]# /opt/hadoop-2.7.2/sbin/start-all.sh

启动成功

This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
20/12/02 05:20:25 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [master]
master: namenode running as process 21607. Stop it first.
slave2: datanode running as process 2472. Stop it first.
slave1: datanode running as process 2322. Stop it first.
Starting secondary namenodes [Master]
Master: secondarynamenode running as process 21846. Stop it first.
20/12/02 05:20:29 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
starting yarn daemons
resourcemanager running as process 22027. Stop it first.
slave2: nodemanager running as process 2559. Stop it first.
slave1: nodemanager running as process 2410. Stop it first.

报错

Starting namenodes on [master]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
/opt/hadoop-3.3.0//libexec/hadoop-functions.sh: line 1776: /usr/local/jdk-15.0.1/bin/java: cannot execute binary file
/opt/hadoop-3.3.0//libexec/hadoop-functions.sh: line 1776: /usr/local/jdk-15.0.1/bin/java: Success

查看集群是否启动成功

[root@master ~]# jps
35441 Jps
21846 SecondaryNameNode
21607 NameNode
22027 ResourceManager

Spark2.1.0完全分布式环境搭建

 

上传压缩包并解压

spark-2.1.0-bin-hadoop2.7.tgz
[root@master ~]# spark-2.1.0-bin-hadoop2.7.tgz
[root@master ~]# mv park-2.1.0-bin-hadoop2.7 /opt

添加以下内容到/etc/profile

[root@master ~]# vim /etc/profile
export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7/
export PATH=$PATH:$SPARK_HOME/bin

保存后刷新配置

[root@master ~]# source /etc/profile

复制spark-env.sh.template成spark-env.sh

[root@master ~]# cd /opt/spark-2.1.0-bin-hadoop2.7/conf
[root@master conf]# vim $SPARK_HOME/conf/spark-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_121
export SCALA_HOME=/usr/share/scala
export HADOOP_HOME=/opt/hadoop-2.7.2
export HADOOP_CONF_DIR=/opt/hadoop-2.7.2/etc/hadoop
export SPARK_MASTER_IP= masterIP地址
export SPARK_MASTER_HOST= masterIP地址
export SPARK_LOCAL_IP= masterIP地址
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=2
export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7
export SPARK_DIST_CLASSPATH=$(/opt/hadoop-2.7.2/bin/hadoop classpath)

复制slaves.template成slaves,并添加以下内容

[root@master conf]# cp slaves.template slaves
[root@master conf]# vim $SPARK_HOME/conf/slaves
master
slave1
slave2

将配置好的spark文件复制到Slave1和Slave2节点

[root@master ~]# scp /opt/spark-2.1.0-bin-hadoop2.7 root@slave1:/opt
[root@master ~]# scp /opt/spark-2.1.0-bin-hadoop2.7 root@slave2:/opt

修改slave1和slave2配置

在slave1和slave2上分别修改/etc/profile,增加Spark的配置,过程同Master一样。

在slave1和slave2修改$SPARK_HOME/conf/spark-env.sh,将export SPARK_LOCAL_IP=xxxxx改成slave1和slave2对应节点的IP

export JAVA_HOME=/usr/local/jdk1.8.0_121
export SCALA_HOME=/usr/share/scala
export HADOOP_HOME=/opt/hadoop-2.7.2
export HADOOP_CONF_DIR=/opt/hadoop-2.7.2/etc/hadoop
export SPARK_MASTER_IP=masterIP地址
export SPARK_MASTER_HOST= masterIP地址
export SPARK_LOCAL_IP=slaveIP地址
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=2
export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7
export SPARK_DIST_CLASSPATH=$(/opt/hadoop-2.7.2/bin/hadoop classpath)
[root@master conf]# /opt/spark-2.1.0-bin-hadoop2.7/sbin/start-all.sh

启动成功

starting org.apache.spark.deploy.master.Master, logging to /opt/spark-2.1.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-master.out
master: starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark-2.1.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-master.out
slave1: starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark-2.1.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave1.out
slave2: starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark-2.1.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave2.out

查看集群是否启动成功

[root@master ~]# jps
50704 Master
50837 Worker
50933 Jps
21846 SecondaryNameNode
21607 NameNode
22027 ResourceManager

 

posted @ 2020-12-03 13:04  ⁰¹.₂₂梁℘࿐  阅读(29)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3