Linux:Hadoop完全分布式集群安装(连续更新)

      所需文件:

        Windos10系统 (建议工作站与工作组,激活Win)

        VMware16.2.4 Pro版

        CentOS 7 (我用的1810)

        hadoop-3.2.2

        zookeeper-3.7.1

        hbase-2.3.5-bin.tar.gz

目录

    前期准备

        Windos10 激活  连接工作站  升为专业工作站版

        安装并激活 VMware16.2.4 Pro版

        VMware虚拟机最小化安装 CentOS 7系统

        CentOS 7 需要工具安装与 静态地址配置

        虚拟机快照的创建 (很重要)

        java环境的配置

        克隆CentOS 7并修改 静态IP地址

        修改主机名 与 SSH免密登录

        利用脚本传输/更新文件

  开始搭建Hadoop集群
        注意事项

        zookeeper配置安装

        hadoop配置安装

        hbase配置安装

        spark配置安装 



Java环境的配置

        我是使用的虚拟机自带的yum源来进行安装与配置的.

yum list | grep java-1.8.0-openjdk*

        我们就下载 java 1.8版本

yum install -y  java-1.8.0-openjdk*

        查看java下载的版本

java -version

        查看java安装的位置

whereis java

         我们可以看到 这里有一个 /usr/lib目录 而/usr/lib 存放常用的动态链接库和软件包的配置文件

        我们利用这里面的 路径来配置 java环境变量

        进入 /etc/profile 来配置环境变量

vim /etc/profile

         在 /etc/profile 中添加下面的代码

# # #JAVA

export JAVA_HOME=/usr/lib/jvm/java-1.8.0
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

source /etc/profile

        保存现阶段配置的环境变量   

        export 的就是让系统去后面这个路径去找 bin sbin等用于系统命令的运行 与 Win下的环境变量一致

        查看 java环境配置情况  查看你的 java配置路径

echo $JAVA_HOME

        进入 java环境配置目录

cd $JAVA_HOME


 修改主机名 与 SSH免密登录 

        修改主机名

        master   slave1  slave2  slave3 ....

hostnamectl set-hostname master
hostnamectl set-hostname slave1

         在/etc/hosts 文件中添加 集群的静态IP(每个机子都要有)


         SSH免密登录

        注意每台虚拟机都要进行 这个操作

         进入 root的家目录 利用下列命令获取 密钥与公钥(与git获取命令相同)  并回车三次

ssh-keygen -t rsa

         每台虚拟机都有了 密钥后 进入 .ssh目录  将这个虚拟机的公钥拷给 集群中的其他机子

# -a 查看隐藏文件
ll -a 

cd .ssh

#拷贝master公钥到 slave1 slave2 slave3 slave4中保存
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id slave3
ssh-copy-id slave4

ssh-copy-id master

        利用脚本传输/更新文件

        进入 root的家目录  并创建一个 bin/bash (脚本运行)目录

#进入家目录
cd ~

mkdir -p bin/bash
cd bin/bash

        创建一个名为xsync 的脚本 并修改其的权限

touch xsync

#修改权限
chmod 777 xsync
vim xsync
#!/bin/bash

#1.判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2.遍历集群所有机器
for host in master slave1 slave2 slave3 slave4
do
    echo ==================== $host ===================
    #3.遍历所有目录,挨个发送

    for file in $@
    do
        #4.判断文件是否存在
        if [ -e $file ]
            then
                #5.获取父目录
                pdir=$(cd -P $(dirname $file); pwd)

                #6.获取当前文件名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

        这时我们就可以用这个脚本来进行 文件的同步与更新了

/root/bin/bash/xsync /opt/zookeeper


  1.  注意事项

   1. 版本对应

        我们再进行安装的时候会看到有许多的版本, 这时我们就要看我们安装的软件的版本是不是对应上的, 如果不是对应的就会出现许多的问题, 为了使我们搭建的集群 稳定运行一定要看清楚版本是否对应.

   2. 所使用的版本

        java-1.8.0-openjdk

        zookeeper-3.7.1

https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz

        hadoop-3.2.2

https://dlcdn.apache.org/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz
     

        hbase-2.3.5-bin.tar.gz

http://archive.apache.org/dist/hbase/2.3.5/hbase-2.3.5-bin.tar.gz

大数据环境搭建(1)- HBase,Hadoop,Zookeeper对应关关系_XiaHeShun的博客-CSDN博客_zookeeper和hadoop版本对应


zookeeper配置安装

        下载

    zookeeper-3.7.1

https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz

        将安装包放在 /opt/software 目录中

      这里直接用 Xshell 来较为方便 (直接拖入就行)

        opt 目录  某些可选软件安装后放入此目 安装额外软件所用的目录

        software 目录 我用来存放 一些 压缩文件的

cd /opt/software
#没有 software 就创建一个

cd /opt
mkdir software

        用Xshell 将下载的 apache-zookeeper-3.7.1-bin.tar.gz拖入这个目录中

        解压在 /opt/zookeeper 目录下

cd /opt
mkdir zookeeper

#回去/opt/software目录方便解压
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /opt/software


        配置文件

        进入apache-zookeeper-3.7.1-bin/conf文件

        将zoo_sample.cfg 复制一份命名为 zoo.cfg

#在/opt/zookeeper目录下
#进入apache-zookeeper-3.7.1-bin
cd a*

#查看里面的文件
ll

         创建 logs目录用来存日志    data目录用来存数据与数据持久化

        数据持久化用一个形象的比喻就是 玩游戏保存你的游戏进度

mkdir logs
mkdir data

#进入配置文件中
cd conf

#查看里面的配置文件
ll

#复制一份zoo.cfg用与配置
cp zoo_sample.cfg zoo.cfg

         进入 zoo.cfg文件中配置

vim zoo.cfg
#存放数据  +数据持久化路径
dataDir=/opt/zookeeper/apache-zookeeper-3.7.1-bin/data

#存放日志
dataLogDir=/opt/zookeeper/apache-zookeeper-3.7.1-bin/logs

#客户端端口
clientPort=2181

# 保留多少个快照
autopurge.snapRetainCount=3

# 日志多少小事清理一次
autopurge.purgeInterval=1

initLimit=10

syncLimit=5

#通信心跳数,Zookeeper服务器与客户端心跳时间
tickTime=2000

globalOutstandingLimit=200

# 集群中服务器地址
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
server.4=slave3:2888:3888
server.5=slave4:2888:3888

        保存退出后 进入刚刚新建的 data目录 创建一个myid文件 并在其中写入编号 给zookeeper用于 选举leader

#放回上一级
cd ..
cd data

#在myid中写入编号  利用了重定向
echo "1" > myid

        后面在进入 /opt目录中 将zookeeper这个文件所有的内容传递给 其他的几个集群中的机子中

/root/bin/bash/xsync ./zookeeper

        后修改 刚刚data目录下myid文件的 数字编码

cd /opt/z*/a*/data
echo "2" > myid

echo "3" > myid

        后面配置/etc/profile中的zookeeper环境变量

export ZOOKEEPER_HOME=/opt/zookeeper/apache-zookeeper-3.7.1-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin

         更新集群中的每一个环境变量

/root/bin/bash/xsync /etc/profile

#记住 保存
source /etc/profile

        最后就可以运行zookeeper了

        当然第一次 可以进入 zookeeper中的bin目录下来开启

cd /opt/z*/a*/bin

#运行zookeeper
sh ./zkServer.sh start

        注意zookeeper 每一个机子都要打开(使用如下的命令)

zkServer.sh start

        查看 zookeeper运行情况  leader 与 follower

zkServer.sh status

         jps查看zookeeper的进程运行是否成功


 hadoop-3.2.2 配置安装

        下载

  hadoop-3.2.2

https://dlcdn.apache.org/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz

        将安装包 放到 /opt/software中 解压放到 /opt/module中

# 创建 module目录 用存放hadoop-3.2.2
mkdir /opt/module

# 解压放到/opt/module
tar -zxvf hadoop-3.2.2.tar.gz -C /opt/module

        进入/opt/module/hadoop-3.2.2/etc/hadoop中修改配置文件

core-site.xml

# 修改core-site.xml配置文件

<configuration>

<!--HDFS 临时路径-->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/module/hadoop-3.3.2/tmp</value>
</property>
<!--HDFS 的默认地址、端口 访问地址-->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
</property>

</configuration>

        创建 /opt/module/hadoop-3.3.2/tmp目录

mkdir /opt/module/hadoop-3.3.2/tmp


hdfs-site.xml

<configuration>

<!--hdfs web的地址-->
<property>
    <name>dfs.namenode.http-address</name>
    <value>master:50070</value>
</property>
<!--副本数-->
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>
<!--是否启用HDFS权限,当值为false时,代表关闭-->
<property>
    <name>dfs.permissions.enabled</name>
    <value>false</value>
</property>
<!--块大小,默认字节128MB-->
<property>
    <name>dfs.blocksize</name>
    <!--128m-->
    <value>134217728</value>
</property>



</configuration>


mapred-site.xml

<configuration>

<!--local表示本地运行,classic表示经典mapreduce框架,yarn表示新的框架-->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

<!--如果map和reduce任务访问本地库(压缩等),则必须保留原始值
     当此值为空时,设置执行环境的命令将取决于操作系统-->
<property>
    <name>mapreduce.admin.user.env</name>
    <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.2</value>
</property>

<!--可以设置AM【AppMaster】端的环境变量-->
<property>
    <name>yarn.app.mapreduce.an.env</name>
    <value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.3.2</value>

</property>

</configuration>

        注意这里的是3.3.2版本通用的没有问题 后面在module目录下 会出现一个 hadoop-3.3.2


yarn-site.xml

<!--集群master-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
</property>

<!--NodeManager上运行的附属服务-->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!--容器可能会覆盖的环境变量,而不是使用NodeManager的默认值-->
<property>
  <name>yarn.nodemanager.env-whitelist</name>
  <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ</value>
</property>

<!--关闭内存检测,在虚拟机环境中不做配置会报错-->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>


 workers

        修改workers文件

vim workers

slave1
slave2
slave3
slave4

        这里配置我是查看的下面这篇文章【初学大数据】CentOS7安装hadoop3.3.2完全分布式详细流程_栗子叔叔的博客-CSDN博客

         后面就是配置 hadoop的环境变量

vim /etc/profile

# # #HADOOP

export HADOOP_HOME=/opt/module/hadoop-3.2.2
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin

         同步module文件 与 /etc/profile文件

/root/bin/bash/xsync /etc/profile

/root/bin/bash/xsymc /opt/mudole

        在每个机子上 保存环境变量

source /etc/profile

        分配好了后就基本上安装好了,后面就是

        初始化/格式化 Hadoop集群

hadoop namenode -format

         再打开集群

        注意:是在 master的主机下打开集群

# 打开集群
start-all.sh

# 关闭集群
stop-all.sh

         使用 jps查看 hadoop集群是否运行

        在监控端口中查看   Web网页中输入

192.168.88.130:50070


安装hadoop中的一些问题

        在关闭hadoop集群的时候在进行修改

         第一个是 datanode启动成功了 但是jps没有显示datanodehadoop中datanode启动成功了,但jps没有的问题_Knight_AL的博客-CSDN博客_datanode启动成功jps不显示

        问题产生:  data与name中的VERSION中的UUID不一致

cd /opt/module/hadoop-3.3.2/tmp/dfs

         data与name中的 VERSION  有UUID

         在这里建议大家不要经常 格式化集群会导致 name中的UUID与data中的UUID不一致

        这个时候就要去将name中的UUID复制给data中的UUID


        第二个问题是 启动了hadoop集群结果 jps看到每个节点都有 datanode但是在web监控见面下去查看datanode只有 一个 刷新网页的时候还会出现 master与slave(1~4)相互出现

        问题产生: 在用xsync 更新的时候 将VERSION中的UUID一起发过去了,导致在集群查找datanode的地址的时候就只有 一个地址可用,

        在这里你要删除之前配置静态网络中的UUID这个物理地址(mac)

        然后直接就 初始化 就行了

hadoop namenode -format

         后面可能会出现上述 问题一不过没有关系 跟这上述以问题改就行


        第三个问题: 因为我们上面做的是 完全分布式 配置,master主节点也会保存 hdfs的数(datanode) 在后面存的多了,会导致master效率的下降,现在我们想要关闭/禁用master中的datanode

        在/opt/module/hadoop-3.2.2/etc/hadoop目录中创建 excludes文件 写入你要禁用的master节点(每个节点都要有)

cd /opt/module/hadoop-3.2.2/etc/hadoop

touch excludes

/root/bin/bash/xsync ./excludes

        hdfs-site.xml 中添加


<property>
    <name>dfs.hosts.exclude</name>
    <value>/opt/module/hadoop-3.2.2/etc/hadoop/excludes</value>
</property>

        刷新节点使用
        刷新Hadoop集群节点

#在master节点下

hdfs dfsadmin -refreshNodes
start-balancer.sh

        最后我们在尝试一哈 hdfs能不能使用

hdfs dfs -ls -R /

        当然如果还有什么问题可以去搜一哈 看看其他的文章是怎么弄的 搜问题也行


 hbase-2.3.5配置安装

http://archive.apache.org/dist/hbase/2.3.5/hbase-2.3.5-bin.tar.gz

        将安装包放在 /opt/software 目录中

        解压安装包到/opt目录下

tar -zxvf hbase-2.3.5-bin.tar.gz -C /opt

 修改配置文件

        进入/opt/hbase-2.3.5

        添加要使用的一些目录
        data 放数据  logs 放日志 pids 文件

mkdir data pids logs

         进入conf目录 修改配置文件


hbase-env.sh

vim hbase-env.sh

#1、设置java安装路径
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
#2、设置hbase的日志地址
export HBASE_LOG_DIR=${HBASE_HOME}/logs
#3、设置是否使用hbase管理zookeeper(因使用zookeeper管理的方式,故此参数设置为false)
export HBASE_MANAGES_ZK=false
#4、设置hbase的pid文件存放路径
export HBASE_PID_DIR=/opt/hbase-2.3.5/pids


hbase-site.xml 

<configuration>
<!--    Cluster -->
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://master:9000/hbase</value>
                <description>region server的共享目录,用来持久化HBase</description>
        </property>

        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
                <description>HBase的运行模式。false是单机模式,true是分布式模式</description>
        </property>

        <property>
                <name>hbase.tmp.dir</name>
                <value>/opt/hbase-2.3.5/data</value>
                <description>本地文件系统的临时文件夹。</description>
        </property>

        <property>
                <name>hfile.block.cache.size</name>
                <value>0.39</value>
                <description>storefile的读缓存占用Heap的大小百分比,当然是越大越好,如果读比写多,开到0.4-0.5也没问题。如果读写较均衡,0.3左右。如果写比读多,果断默认吧。</description>
        </property>

        <property>
                <name>hbase.rpc.timeout</name>
                <value>900000</value>
                <description>hbase client中的rpc请求超时时间</description>
        </property>
        <!--    Master  -->
        <property>
                <name>hbase.master</name>
                <value>master:9000</value>
        </property>

        <property>
                <name>hbase.master.info.port</name>
                <value>60010</value>
                <description>HBase Master web 界面端口. 设置为-1 意味着你不想让他运行。</description>
        </property>
        <!--    regionserver    -->
        <property>
                <name>hbase.regionserver.port</name>
                <value>60020</value>
                <description>HBase RegionServer绑定的端口</description>
        </property>

        <property>
                <name>hbase.regionserver.info.port</name>
                <value>60030</value>
                <description>HBase RegionServer web 界面绑定的端口 设置为 -1 意味这你不想与运行 RegionServer 界面</description>
        </property>

        <property>
                <name>hbase.regionserver.lease.period</name>
                <value>180000</value>
                <description>客户端租用HRegion server 期限,即超时阀值。单位是毫秒。默认情况下,客户端必须在这个时间内发一条信息,否则视为死掉。</description>
        </property>

        <property>
                <name>hbase.regionserver.restart.on.zk.expire</name>
                <value>true</value>
                <description>遇到ZooKeeper session expired(过期), regionserver将选择 restart 而不是 abort(终止)</description>
        </property>

        <property>
                <name>hbase.regionserver.handler.count</name>
                <value>100</value>
                <description>RegionServers处理远程请求的线程数,如果注重TPS(每秒事务数),可以调大,默认10。
                1)值设得越大,意味着内存开销变大;
                2)对于提高write的速度,如果瓶颈在做flush、compact、split的速度,磁盘io跟不上,提高线程数,意义不大。</description>
        </property>

        <property>
                <name>hbase.regionserver.codecs</name>
                <value>snappy,gz</value>
                <description></description>
        </property>

        <property>
                <name>hbase.hregion.memstore.block.multiplier</name>
                <value>2</value>
                <description>regionserver在写入时会检查每个region对应的memstore的总大小是否超过了memstore默认大小的2倍(hbase.hregion.memstore.block.multiplier决定),如果超过了则锁住memstore不让新写请求进来并触发flush,避免产生OOM。</description>
        </property>

        <property>
                <name>hbase.hregion.max.filesize</name>
                <value>134217728</value>
                <description>在当前ReigonServer上单个Reigon的最大存储空间,单个Region超过该值时,这个Region会被自动split成更小的region。</description>
        </property>
        <!--    Client参数      -->
        <property>
                <name>hbase.client.scanner.caching</name>
                <value>10000</value>
                <description>客户端参数,HBase scanner一次从服务端抓取的数据条数</description>
        </property>

        <property>
                <name>hbase.client.scanner.timeout.period</name>
                <value>900000</value>
                <description>scanner过期时间</description>
        </property>

        <!--    Zookeeper       -->
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>master:2181,slave1:2181,slave2:2181,slave3:2181,slave4:2181</value>
        </property>

        <property>
                <name>zookeeper.session.timeout</name>
                <value>1200000</value>
        <description>RegionServer与Zookeeper间的连接超时时间。当超时时间到后,ReigonServer会被Zookeeper从RS集群清单中移除,HMaster收到移除通知后,会对这台server负责的regions重新balance,让其他存活的RegionServer接管</description>
        </property>

        <property>
                <name>hbase.zookeeper.property.dataDir</name>
                <value>/data</value>
                <description>ZooKeeper的zoo.conf中的配置。 快照的存储位置</description>
        </property>
</configuration>

        这里我主要看的是下面的文章来进行配置的,当然我对其中的一些配置 进行了更改最后才成功了。

从零开始搭建个人大数据集群(5)——HBASE 2.3.5安装 - 忘尘客栈


 regionservers

slave1
slave2
slave3
slave4

         将hadoop配置文件中的core-site.xml hdfs-site.xml 复制过来

cp /opt/module/had*/etc/h*/core-site.xml core-site.xml
cp /opt/module/had*/etc/h*/hdfs-site.xml hdfs-site.xml

 

移动包到lib中

cd /opt/hbase*/lib
mkdir native
cd native
ln -s /opt/module/h*/lib/native Linux-amd64

配置环境变量 与 分发

# # #hbase-2.3.5

export HBASE_HOME=/opt/hbase-2.3.5
export PATH=$PATH:$HBASE_HOME/bin:/$HBASE_HOME/sbin
export PATH=$PATH:$HBASE_HOME/bin/hbase shell
export HBASE_LIBRARY_PATH=${HBASE_HOME}/lib/native/Linux-amd64

/root/bin/bash/xsync /etc/profile

/root/bin/bash/xsync /opt/hbase-2.3.5

source /etc/profile

         最后就是打开看看了 先开zookeeper 后 hadoop 最后 hbase

zkServer.sh start

start-all.sh

# 第一次打开hbase
cd /opt/h*/bin

# . 这里是运行的意思
. start-hbase.sh

. hbase shell

# 后面就可以不用进入 bin目录里了
start-hbase.sh

hase shell

        jps查看 进程

        进入 Web网页查看 监控

19.168.88.130:60010

        在master主节点下 打开hbase shell

hbase shell

         使用 status 查看hbase 的状态 出现下面的状态才算成功

status

         退出

exit
stop-hbase.sh

        都是在 master主节点下完成的 


hbase配置的时候出现的一些问题  (关闭所有hadoop运行进程)

        第一个问题关闭hbase的时候会出现 no hbase master found 但是 HMaster和HRegionServer都存在

 这个问题应该不会出现 它就是 tmp目录 与 pids目录 路径有没有问题

        但是还有一种情况是也是no hbase master found 这种情况是zookeeper中没有保存/连接有关的hbase数据 或者是 保存了以前的hbase的数据

        打开zookeeper (zkServer.sh) 进入zookeeper命令界面看看

zkCli.sh

#查看有没有hbase目录(数据)
ls /

         有就删除

        注意: 删除的时候一定要小心使用这个命令

                在没有出现这个问题的时候一定不要删除

rmr /hbase

        没有就说明 上面的配置文件不对,就要重新看看了

       退出 zookeeper

quit

        第二个问题:  如果发现修改了配置文件并重新启动的时候 总是会报一长串的错误,这个时候你可以删除hbase-2.3.5目录与 和它有关的目录/文件,重新开始进行配置了


spark-3.1.3-bin-hadoop3.2的完全分布式安装

        去除master中的worker使其自做master资源控制 减少master的负载均衡

        先安装scala

scala-2.12.17

https://downloads.lightbend.com/scala/2.12.17/scala-2.12.17.tgz

        spark 的运行环境是 scala

spark-3.1.3-bin-hadoop3.2

https://dlcdn.apache.org/spark/spark-3.1.3/spark-3.1.3-bin-hadoop3.2.tgz

  将安装包放在 /opt/software 目录中

        解压安装包到/opt目录下

cd /opt/software

tar -zxvf scala-2* -C /opt
tar -zxvf spark-3* -C /opt

        修改环境变量

vim /etc/profile

# # #scala

export SCALA_HOME=/opt/scala-2.12.17
export PATH=$PATH:$SCALA_HOME/bin


# # #spark

export SPARK_HOME=/opt/spark-3.1.3-bin-hadoop3.2
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

 

 


        修改配置spark中的配置文件

cd /opt/spark-3.1.3-bin-hadoop3.2/conf

cp spark-defaults.conf.template  spark-defaults.conf    修改配置文件
cp workers.template  workers     指定workers
cp spark-env.sh.template  spark-env.sh    配置环境变量

cp /opt/module/hadoop-3.2.2/etc/hadoop/yarn-site.xml yarn-site.xml    配置yarn框架
cp /opt/module/hadoop-3.2.2/etc/hadoop/hdfs-site.xml hdfs-site.xml    配置hdfs底层

 


 

         spark-env.sh

vim spark-env.sh


# 指定java环境
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
# 指定 master(资源控制者)
export SPARK_MASTER_HOST=master
# 指定 master的监控端口
export SPARK_MASTER_PORT=7077

# spark改成集群模式
# 指定 hadoop的环境配置文件
export HADOOP_CONF_DIR=/opt/module/hadoop-3.2.2/etc/hadoop
# 指定 yarn框架的配置文件
export YARN_CONF_DIR=/opt/module/hadoop-3.2.2/etc/hadoop

 


         workers

 

vim workers

slave1
slave2
slave3
slave4


 

         spark-defaults.conf

vim spark-defaults.conf

#使用yarn模式
spark.master yarn

 

        将文件发配给每一个子机

/root/bin/bash/xsync /opt/spark*

/root/bin/bash/xsync /opt/scala*

/root/bin/bash/xsync /etc/profile

        最后更新环境变量

source /etc/profile

         开启zk hadoop集群

zkServer.sh start

start-all.sh

        开启spark中的master与worker节点 

start-master.sh

start-workers.sh

 

# 进入spark shell命令行

spark-shell

 

         如果上面的命令 不能打开那就

cd /opt/spark-3.1.3-bin-hadoop3.2/sbin

sh start-master.sh

sh start-workers.sh

sh stop-master.sh

sh stop-workers.sh

         查看监控端口

192.168.88.130:8080
或者是
192.168.88.130:8081

        成功 

后续更新

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你这个年纪你是怎么睡得着的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值