全网最详细的大数据架构搭建配置及说明文档

news2024/12/23 19:36:32

版本兼容

JDK1.8.0_211
ZooKeeper3.4.14
Hadoop3.2.1
Hive3.1.2
HBase2.2.1
Scala2.13.1
Spark2.4.4
MySQL5.7.28

基本配置

修改ip和主机名

主机名IP地址JavaZookeeperHadoopHiveHBaseSparkMySQL
hadoop192.168.137.201
slave1192.168.137.202
slave2192.168.137.203

修改主机名
hostnamectl set-hostname hadoop
hostnamectl set-hostname slave1
hostnamectl set-hostname slave2
修改静态IP
/etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
NETMASK=255.255.255.0
DNS1=192.168.137.1
GATEWAY=192.168.137.1

hadoop IPADDR=192.168.137.201
slave1 IPADDR=192.168.137.202
slave2 IPADDR=192.168.137.203

修改域名/etc/hosts
192.168.137.201 hadoop
192.168.137.202 slave1
192.168.137.203 slave2
测试三台
ping hadoop -c 2;ping slave1 -c 2; ping slave2 -c 2

集群互信

在hadoop上
ssh-keygen 生成密钥
实现互信三台同时执行
ssh-copy-id hadoop
ssh-copy-id slave1
ssh-copy-id slave2
拷贝到节点
scp id_rsa.pub slave1:/root/.ssh/authorized_keys
scp id_rsa.pub slave2:/root/.ssh/authorized_keys
测试
ssh hadoop
ssh slave1
ssh slave2

同步时间

安装工具
yum -y install ntp ntpdate
修改时区
timedatectl set-timezone Asia/Shanghai
同步时间
ntpdate ntp1.aliyun.com
查看时间
timedatectl
定时同步
每天0点执行同步,并写入硬件(防止重启时间改变)
0 0 * * * ntpdate ntp1.aliyun.com;hwclock -w

安装Java

解压
tar zxvf jdk-8u211-linux-x64.tar.gz -C /usr/local
链接
ln -s /usr/local/jdk1.8.0_211 /usr/local/jdk
配置环境变量
/etc/profile
export JAVA_HOME=/usr/local/jdk
export PATH=.: J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
source /etc/profile
测试
java -version
javac -version

Zookeeper集群

下载
http://mirror.bit.edu.cn/apache/zookeeper/
安装
tar zxvf zookeeper-3.4.14 -C /usr/local
ln -s /usr/local/zookeeper-3.4.14 /usr/local/zookeeper
配置环境变量
/etc/profile
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=.: Z O O K E E P E R H O M E / b i n : ZOOKEEPER_HOME/bin: ZOOKEEPERHOME/bin:PATH
source /etc/profile
创建数据、日志目录
cd /usr/local/zookeeper
mkdir -p data
mkdir -p logs
配置文件
cp conf/zoo_sample.cfg conf/zoo.cfg
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
server.1=hadoop:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
注 server.A=B:C:D
A服务器编号,与每个myid里的数字保持一致
B服务器域名或IP地址
C Leader选举的端口
D Zookeeper之间通信端口
分发
scp -r zookeeper/ slave1:/usr/local/
scp -r zookeeper/ slave2:/usr/local/
编辑myid
hadoop echo 1 > data/myid
slave1 echo 2 > data/myid
slave2 echo 3 > data/myid
启动三台服务器
关闭防火墙
systemctl stop firewalld
sudo iptables -F
启动服务
zkServer.sh start
查看状态
zkServer.sh status
出现下面信息表示正常
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/…/conf/zoo.cfg
Mode: leader
验证 jps
QuorumPeerMain

Hadoop HA集群

主机名IP地址namenodedatanodejournalnoderesourcemanager
hadoop192.168.137.201
slave1192.168.137.202
slave2192.168.137.203

在架构中每个namenode是一台独立的服务器,在任何时刻,只有一个namenode处于active状态,另一个处于standby状态,active态的namenode负责所有客户端的操作和请求,standby态的namenode处于从属,维护数据状态,随时准备切换。两个namenode为了同步数据,会通过一组journalnodes的进程进行通信,当active态的namenode有修改时,会告知大部分的journalnodes进程,standby态的namenode能读取journalnodes中的变更信息,并监控edit log的变化,同步信息。journalnodes能保证同一时刻集群中只有一个处于active态的namenode,2.x中只能配置两个namenode,3.x中可以配置多个。
下载
https://hadoop.apache.org/releases.html
安装
tar zxvf hadoop-3.2.1.tar.gz -C /usr/local
ln -s /usr/local/hadoop-3.2.1 /usr/local/hadoop
配置环境变量
/etc/profile
export HADOOP_HOME=/usr/local/hadoop
export PATH=.: H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:PATH
source /etc/profile
配置
/usr/local/hadoop/etc/hadoop见附件
启动
journalnode服务三台都启动
sbin/hadoop-daemon.sh start journalnode
验证 jps
JournalNode
格式化namenode,在namenode上(重新格式化需要删除原来journaldata里的数据,主节点NameNode产生新的clusterID、namespaceID,于是导致主节点的clusterID、namespaceID与各个子节点DataNode不一致)
hdfs namenode -format
tmp 目录下会出现dfs目录
启动namenode,在hadoop上
hadoop-daemon.sh start namenode
验证 jps
NameNode

namenode同步元数据信息,在slave1上
hdfs namenode -bootstrapStandby
复制hadoop上tmp 目录下dfs目录
再启动namenode
hadoop-daemon.sh start namenode
验证 jps
NameNode
启动datanode,在三台上(重启需要删除原来tmp下临时文件)
hadoop-daemon.sh start datanode
验证 jps
DataNode
浏览器查看
Namenode1 http://192.168.137.201:9870
Namenode2 http://192.168.137.202:9870 两台都处于standby状态

启动dfs
hadoop上执行 sbin/start-dfs.sh
http://192.168.137.201:9870 变为active态
启动yarn
hadoop上执行 sbin/start-yarn.sh
http://192.168.137.202:8088/cluster 查看
测试
创建目录
hadoop fs -mkdir /input-test
上传文件
hadoop fs -put /root/test /input-test
下载文件
hadoop fs -get /input-test/test
测试程序
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount /input-test /output-test
执行完后可以在web端看结果

MySQL安装

检查旧版本
rpm -qa | grep mariadb
rpm -qa | grep mysql
卸载
rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps
下载
https://dev.mysql.com/downloads/mysql/
选择
系统 Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)
版本 mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
安装
tar xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm–force --nodeps
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm --force --nodeps
初始化
mysqld --initialize --user=mysql
查看密码cat /var/log/mysqld.log
[Note] A temporary password is generated for root@localhost: +zip+r:yM8Ci
修改密码
mysql -u root -p
ALTER USER ‘root’@‘%’ IDENTIFIED BY ‘123456’;
flush privileges;
设置开机自启
systemctl enable mysqld

Hive搭建(采用远程元存储)

主机名IP地址MySQLHive服务端Hive客户端
hadoop192.168.137.201
slave1192.168.137.202
slave2192.168.137.203

下载(3.x运行在hadoop3.x上)
https://mirrors.tuna.tsinghua.edu.cn/apache/hive/
安装
tar zxvf apache-hive-2.3.6-bin.tar.gz -C /usr/local
ln -s /usr/local/apache-hive-2.3.6-bin /usr/local/hive
配置环境变量
/etc/profile
export HIVE_HOME=/usr/local/hive
export PATH=.: H I V E H O M E / b i n : HIVE_HOME/bin: HIVEHOME/bin:PATH
source /etc/profile
配置
hive/conf
cp hive-env.sh.template hive-env.sh
hive-env.sh修改
HADOOP_HOME=/usr/local/hadoop
HIVE_CONF_DIR=/usr/local/hive/conf
cp hive-log4j2.properties.template hive-log4j2.properties
hive-log4j2.properties 修改
property.hive.log.dir=/usr/local/hive/logs
mysql添加hive用户
CREATE DATABASE hive;
USE hive;
CREATE USER ‘hive’@‘localhost’ IDENTIFIED BY ‘123456’;
GRANT ALL ON hive.* TO ‘hive’@‘localhost’ IDENTIFIED BY ‘123456’;
GRANT ALL ON hive.* TO ‘hive’@‘%’ IDENTIFIED BY ‘123456’;
FLUSH PRIVILEGES;
连接器
下载
http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.48/
配置
拷贝MySQL连接器
cp mysql-connector-java-5.1.48.jar /usr/local/hive/lib/
检查hadoop安装目录下share/hadoop/common/lib 和 hive安装目录下lib的guava.jar版本,如果不一致删除低版本,拷贝高版本。
否则会报错 Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V

初始化(slave1上)
schematool -dbType mysql -initSchema hive 123456
启动metastore服务
hive --service metastore
查看端口验证
netstat -nptl | grep 9083
启动客户端(在slave2上)
hive
测试
创建文件hive-test
1,李晨,女,22,IS
2,李国华,女,21,IS
3,王笑笑,女,22,IS
4,张山,男,21,CS
5,胡佳,女,18,CS
6,周来,男,23,IS
7,刘莉,女,21,IS
创建数据库
create database hivetest;
use hivetest;
创建表
create table userprofile(id int, name string, sex string, age int, department string) row format delimited fields terminated by “,”;
加载数据
load data local inpath “/root/hive-test” into table userprofile;
查询
select * from userprofile;

HBase集群搭建

主机名IP地址HRegionServerHMaster
hadoop192.168.137.201
slave1192.168.137.202
slave2192.168.137.203

下载
https://www.apache.org/dyn/closer.lua/hbase/2.2.1/hbase-2.2.1-bin.tar.gz
安装
tar zxvf hbase-2.2.1-bin.tar.gz -C /usr/local
ln -s /usr/local/hbase-2.2.1 hbase
配置环境变量
/etc/profile
export HBASE_HOME=/usr/local/hive
export PATH=.: H B A S E H O M E / b i n : HBASE_HOME/bin: HBASEHOME/bin:PATH
source /etc/profile
配置文件见附件
链接Hadoop hdfs配置
ln -s /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hbase/conf/
分发到节点
scp -r /usr/local/hbase slave1:/usr/local
scp -r /usr/local/hbase slave2:/usr/local
启动
start-hbase.sh
验证jps
HMaster hadoop slave1
HRegionServer hadoop slave1 slave2
访问页面
Master http://hadoop:16010/master-status
Backup Master http://slave1:16010/master-status

Spark集群搭建

下载
http://spark.apache.org/downloads.html
安装
tar zxvf spark-2.4.4-bin-hadoop2.7.tgz -C /usr/local
ln -s /usr/local/spark-2.4.4-bin-hadoop2.7 spark
配置环境变量
/etc/profile
export SPARK_HOME=/usr/local/hive
export PATH=.: S P A R K H O M E / b i n : SPARK_HOME/bin: SPARKHOME/bin:PATH
source /etc/profile
配置见附件
分发到节点
scp -r /usr/local/spark slave1:/usr/local
scp -r /usr/local/spark slave2:/usr/local
修改 slave1上SPARK_MASTER_IP=slave1
启动
启动master节点:sbin/start-master.sh
启动worker节点:sbin/start-slaves.sh

Sqoop安装

下载
https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/
安装
tar zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/local/
ln -s /usr/local/sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop
配置
cp sqoop-env-template.sh sqoop-env.sh
export HADOOP_COMMON_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=/usr/local/hadoop
export HBASE_HOME=/usr/local/hbase
export HIVE_HOME=/usr/local/hive
export ZOOCFGDIR=/usr/local/zookeeper/conf
配置环境变量
/etc/profile
export SQOOP_HOME=/usr/local/hive
export PATH=.: S Q O O P H O M E / b i n : SQOOP_HOME/bin: SQOOPHOME/bin:PATH
source /etc/profile
拷贝mysql链接器
cp mysql-connector-java-5.1.47.jar /usr/local/sqoop/lib/
如果报错Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils 下载http://mirrors.tuna.tsinghua.edu.cn/apache//commons/lang/binaries/commons-lang-2.6-bin.zip 解压后拷贝到/usr/local/sqoop/lib
测试连接
sqoop list-databases --connect jdbc:mysql://hadoop:3306 --username root -P


Hadoop配置说明

sbin/
hadoop-env.sh 添加JDK安装路径
    export  JAVA_HOME=/usr/local/jdk/
添加用户
start-dfs.sh
stop-dfs.sh
start-yarn.sh
stop-yarn.sh
    HDFS_DATANODE_USER=root
    HDFS_DATANODE_SECURE_USER=root
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root
    HDFS_JOURNALNODE_USER=root
    HDFS_ZKFC_USER=root

etc/hadoop
core-site.xml
    <configuration>
        <property>
            <!--指定 namenode 的 hdfs 协议文件系统的通信地,这里使用集群地址-->
            <name>fs.defaultFS</name>
            <value>hdfs://mycluster</value>
        </property>
        <property>
            <!--指定 hadoop 存储临时文件的目录-->
            <name>hadoop.tmp.dir</name>
            <value>file:/usr/local/hadoop/tmp</value>
        </property>
        <property>
            <!--在读写文件时使用的缓存大小-->
            <name>io.file.buffer.size</name>
            <value>4096</value>
        </property>
        <property>
        <!-- 指定ZKFC故障自动切换转移 -->
            <name>ha.zookeeper.quorum</name>
            <value>hadoop:2181,slave1:2181,slave2:2181</value>
        </property>
    </configuration>

hdfs-site.xml
    <configuration>
        <property>
            <!--指定DataNode存储block的副本数量,不大于DataNode的个数就行,默认为3-->
        <name>dfs.replication</name>
        <value>3</value>
      </property>
        <property>
            <name>dfs.permissions.enabled</name>
            <value>false</value>
        </property>
        <property>
            <!-- 完全分布式集群名称, 对应core-site中fs.defaultFS-->
            <name>dfs.nameservices</name>
            <value>mycluster</value>
        </property>
        <property>
            <!-- mycluster下面有两个NameNode,分别是node1, node2 -->
            <name>dfs.ha.namenodes.mycluster</name>
            <value>node1,node2</value>
        </property>
        <!-- namenode RPC通信地址 -->
        <property>
            <name>dfs.namenode.rpc-address.mycluster.node1</name>
            <value>hadoop:8020</value>
        </property>
        <property>
            <name>dfs.namenode.rpc-address.mycluster.node2</name>
            <value>slave1:8020</value>
        </property>
        <!-- namenode http通信地址 -->
        <property>
            <name>dfs.namenode.http-address.mycluster.node1</name>
            <value>hadoop:9870</value>
        </property>
        <property>
            <name>dfs.namenode.http-address.mycluster.node2</name>
            <value>slave1:9870</value>
        </property>
        <!-- 指定NameNode的edits元数据在JournalNode上的存放位置 -->
        <property>
            <name>dfs.namenode.shared.edits.dir</name>
            <value>qjournal://hadoop:8485;slave1:8485;slave2:8485/mycluster</value>
        </property>
        <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
        <property>
            <name>dfs.journalnode.edits.dir</name>
            <value>/usr/local/hadoop/journaldata</value>
        </property>
        <!-- 开启NameNode失败自动切换 -->
        <property>
            <name>dfs.ha.automatic-failover.enabled</name>
            <value>true</value>
        </property>
        <!-- 配置失败自动切换实现方式 -->
        <property>
            <name>dfs.client.failover.proxy.provider.mycluster</name>
            <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        </property> 
        <!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
        <property>
            <name>dfs.ha.fencing.methods</name>
            <value>sshfence</value>
        </property>
        <!-- 使用sshfence隔离机制时需要ssh免登陆 -->
        <property>
            <name>dfs.ha.fencing.ssh.private-key-files</name>
            <value>/root/.ssh/id_rsa</value>
        </property>
        <!-- 配置sshfence隔离机制超时时间 -->
        <property>
            <name>dfs.ha.fencing.ssh.connect-timeout</name>
            <value>30000</value>
        </property>
    </configuration>
    
mapred-site.xml
    <configuration>
        <property>
            <!-- 运行在yarn上 -->
            <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
        <property>
            <name>mapreduce.application.classpath</name>
            <value>
                /usr/local/hadoop/etc/hadoop,
                /usr/local/hadoop/share/hadoop/common/*,
                /usr/local/hadoop/share/hadoop/common/lib/*,
                /usr/local/hadoop/share/hadoop/hdfs/*,
                /usr/local/hadoop/share/hadoop/hdfs/lib/*,
                /usr/local/hadoop/share/hadoop/mapreduce/*,
                /usr/local/hadoop/share/hadoop/mapreduce/lib/*,
                /usr/local/hadoop/share/hadoop/yarn/*,
                /usr/local/hadoop/share/hadoop/yarn/lib/*
            </value>
        </property>
      <property>
            <!--MapReduce JobHistory Server地址-->
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop:10020</value>
      </property>
      <property>
            <!--MapReduce JobHistory Server Web界面地址-->
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop:19888</value>
      </property>
        <property>
            <name>mapreduce.jobhistory.joblist.cache.size</name>
            <value>15000</value>
        </property>
    </configuration>

yarn-site.xml   
    <configuration>
        <!-- 开启RM高可用 -->
        <property>
            <name>yarn.resourcemanager.ha.enabled</name>
            <value>true</value>
        </property>
        <!-- 指定RM的cluster id -->
        <property>
            <name>yarn.resourcemanager.cluster-id</name>
            <value>yrc</value>
        </property>
        <!-- 指定RM的名字 -->
        <property>
            <name>yarn.resourcemanager.ha.rm-ids</name>
            <value>rm1,rm2</value>
        </property>
        <!-- 分别指定RM的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname.rm1</name>
            <value>slave1</value>
        </property>
        <property>
            <name>yarn.resourcemanager.hostname.rm2</name>
            <value>slave2</value>
        </property>
        <property>
            <name>yarn.resourcemanager.webapp.address.rm1</name>
            <value>slave1:8088</value>
        </property>
        <property>
            <name>yarn.resourcemanager.webapp.address.rm2</name>
            <value>slave2:8088</value>
        </property>
        <!-- 指定zk集群地址 -->
        <property>
            <name>yarn.resourcemanager.zk-address</name>
            <value>hadoop:2181,slave1:2181,slave2:2181</value>
        </property>

        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.log-aggregation-enable</name>
            <value>true</value>
        </property>
        <property>
            <name>yarn.log-aggregation.retain-seconds</name>
            <value>106800</value>
        </property>
        <!--启用自动恢复,当任务进行一半,rm坏掉,就要启动自动恢复,默认是false--> 
        <property>
            <name>yarn.resourcemanager.recovery.enabled</name>
            <value>true</value>
        </property>
    
        <!--指定resourcemanager的状态信息存储在zookeeper集群,默认是存放在FileSystem里面。--> 
        <property>
            <name>yarn.resourcemanager.store.class</name>
            <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
        </property>
    </configuration>

workers 配置所有从属节点的主机名或 IP 地址,每行一个。所有从属节点上的 DataNode 服务和 NodeManager 服务都会被启动
    hadoop
    slave2
    slave3  

Hbase配置说明

hbase-site.xml
	<configuration>
		<property>
			<name>hbase.unsafe.stream.capability.enforce</name>
			<value>false</value>
		</property>
		<property>
			<name>hbase.rootdir</name>
			<value>hdfs://mycluster/hbase</value>
		</property>
		<property>
			<name>hbase.cluster.distributed</name>
			<value>true</value>
		</property>
		<property>
			<name>hbase.master.maxclockskew</name>
			<value>180000</value>
	    </property>
		<property>
			<name>hbase.zookeeper.quorum</name>
			<value>hadoop,slave1,slave2</value>
		</property>
		<property>
			<name>hbase.zookeeper.property.dataDir</name>
			<value>/usr/local/zookeeper/data</value>
		</property>
	</configuration>
hbase-env.sh
	export JAVA_HOME=/usr/local/jdk
	export HBASE_MANAGES_ZK=false
regionservers
	hadoop
	slave1
	slave2
新建backup-masters
	slave1

Hive配置说明

服务端
<configuration>
    <property>
        <name>system:user.name</name>
        <value>${user.name}</value>
    </property>
    <!--hdfs上hive元数据存放位置 -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/local/hive/warehouse</value>
    </property>
    <property>
        <name>hive.metastore.db.type</name>
        <value>mysql</value>
    </property>
    <!--连接数据库地址,名称 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop:3306/hive</value>
    </property>
    <!--连接数据库驱动 -->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <!--连接数据库用户名称 -->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>hive</value>
    </property>
    <!--连接数据库用户密码 -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>
    <!--客户端显示当前查询表的头信息 -->
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
    </property>
    <!--客户端显示当前数据库名称信息 -->
    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>
</configuration>

spark配置说明

spark-env.sh
	#指定默认master的ip或主机名
	export SPARK_MASTER_HOST=hadoop  
	#指定maaster提交任务的默认端口为7077    
	export SPARK_MASTER_PORT=7077 
	#指定masster节点的webui端口       
	export SPARK_MASTER_WEBUI_PORT=8080 
	#每个worker从节点能够支配的内存数 
	export SPARK_WORKER_MEMORY=1g        
	#允许Spark应用程序在计算机上使用的核心总数(默认值:所有可用核心)
	export SPARK_WORKER_CORES=1    
	#每个worker从节点的实例(可选配置) 
	export SPARK_WORKER_INSTANCES=1   
	#指向包含Hadoop集群的(客户端)配置文件的目录,运行在Yarn上配置此项   
	export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
	#指定整个集群状态是通过zookeeper来维护的,包括集群恢复
	export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/spark"
	
slaves
	hadoop
	slave1
	slave2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1145247.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在《倩女幽魂》游戏中使用搭建工具

如何在《倩女幽魂》游戏中使用搭建工具 S5 一键搭建脚本 进行 游戏礼包销售。 首先&#xff0c;定义在《倩女幽魂》游戏中使用搭建工具 S5 一键搭建脚本 进行 游戏礼包销售&#xff0c;需要完成以下几个步骤&#xff1a; 准备工作&#xff1a;确保您已经安装了华科云商软件&am…

Vite+Vue3项目全局引入scss文件

前言 Sass 是世界上最成熟、最稳定、最强大的专业级CSS扩展语言&#xff01;在日常项目开发过程中使用非常广泛&#xff0c;今天主要讲一下 ViteVue3 项目中该如何全局引入 scss 文件&#xff0c;引入混合 mixin 文件的不同配置。捎带说一下 Vue2 中的引入方式做一下简单的对比…

力扣:143. 重排链表(Python3)

题目&#xff1a; 给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为&#xff1a; L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … 不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的进…

8通道模数转换AD7091驱动代码SPI接口ADC,verilog

名称&#xff1a;8通道模数转换AD7091驱动代码 软件&#xff1a;QuartusII 语言&#xff1a;Verilog 代码功能&#xff1a; 使用verilog代码设计AD7091R-8驱动代码 控制接口为SPI接口&#xff0c;实现8通道模数转换&#xff0c;输出8通道数字信号。 FPGA代码Verilog/VHDL代码…

JS问题:如何实现文本一键复制和长按复制功能?

前端功能问题系列文章&#xff0c;点击上方合集↑ 序言 大家好&#xff0c;我是大澈&#xff01; 本文约2000字&#xff0c;整篇阅读大约需要4分钟。 本文主要内容分三部分&#xff0c;第一部分是需求分析&#xff0c;第二部分是实现步骤&#xff0c;第三部分是问题详解。 …

学习视觉CV Transformer (2)--Transformer原理及代码分析

下面结合代码和原理进行深入分析Transformer原理。 2 Transformer深入分析 对于CV初学者来说&#xff0c;其实只需要理解Q K V 的含义和注意力机制的三个计算步骤&#xff1a; Q 和所有 K 计算相似性&#xff1b;对相似性采用 Softmax 转化为概率分布&#xff1b;将概率分布…

DCL 单例模式设计为什么需要 volatile 修饰实例对象

DCL 问题&#xff0c;是在基于双重检查锁设计下的单例模式中&#xff0c;存在不 完整对象的问题。而这个不完整对象的本质&#xff0c;是因为指令重排序导致的。 public class DCLExample {private static DCLExample instance;public static DCLExample getInstance(){if (ins…

2021年06月 Python(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试&#xff08;1~6级&#xff09;全部真题・点这里 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 第1题 执行下列代码后&#xff0c;运行结果是&#xff1f; seq[hello,good,morning] s*.join(seq) print(s)A: hello*good*m…

解决cloudflare pages部署静态页面发生404错误的问题

cloudflare pages是一个非常方便的部署静态页面的sass工具。 但是很多人部署上去以后&#xff0c;访问服务会报404错误。什么原因&#xff1f; 原因如下图所示&#xff1a; 注意这个Build output directory, 这个是部署的关键&#xff01; 这个Build output directory目录的…

“节省内存、提升性能:享元模式的神奇之处“

概念 享元模式的本质是缓存共享对象&#xff0c;降低内存消耗。 是对象池的的一种实现&#xff0c;一句话用到了缓存了对方和池化技术的地方绝大多是享元模式的体现。 例如线程池&#xff0c;数据库连接池&#xff0c;字符串常量池 应用示例 String中的享元模式 public c…

lesson2(补充)关于const成员函数

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 前言&#xff1a; 将const 修饰的 “ 成员函数 ” 称之为 const 成员函数 &#xff0c; const 修饰类成员函数&#xff0c;实际修饰该成员函数 隐含的 this 指针 &#xff0c;表明在该成员函数中不能对类的任何成员进行修改…

【IO面试题 五】、 Serializable接口为什么需要定义serialVersionUID变量?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a; Serializable接口为什么…

【Python】用Python生成图像特效

1. 引用 本文重点介绍如何使用python进行图像处理&#xff0c;生成各式各样的图像特效。闲话少说&#xff0c;我们直接开始吧&#xff01; 2. 读入图像 首先我们来读取我们的样例图像&#xff0c;并尝试打印图像中相应元素的像素值。为了实现这一点&#xff0c;我们使用Pyth…

泛积木-低代码 使用攻略

文档首发于 泛积木-低代码 使用攻略 我们以大纲的方式&#xff08;总体把握&#xff09;讲述如何高效、便捷使用 泛积木-低代码。 权限 首先说下权限&#xff0c;在 系统设置 / 权限设置 菜单内&#xff0c;我们可以新增调整项目内的权限&#xff0c;默认拥有管理员和成员两…

【TI毫米波雷达】LP87702/LP87524电源PMIC芯片的BUCK供电配置

【TI毫米波雷达】LP87702/LP87524电源PMIC芯片的BUCK供电配置 文章目录 上电时序LP87702/LP87524电源芯片配置流程LP87702/LP87524开始运行LP87702/LP87524 首次启动&#xff1a;LP87702/LP87524 非首次启动&#xff1a; LP87702初始化LP87524初始化代码例程 附录&#xff1a;…

【jenkins】centos7在线安装jenkins

一、系统要求 最低推荐配置 256MB可用内存 1GB可用磁盘空间(作为一个Docker容器运行jenkins的话推荐10GB) 软件配置 Java 8—​无论是Java运行时环境&#xff08;JRE&#xff09;还是Java开发工具包&#xff08;JDK&#xff09;都可以 二、安装jenkins 准备一台安装有ce…

听GPT 讲Rust源代码--library/std(8)

题图来自Why is Rust programming language so popular?[1] File: rust/library/std/src/sys/sgx/abi/reloc.rs 在Rust源代码中&#xff0c;sgx/abi/reloc.rs文件的作用是定义了针对Intel Software Guard Extensions (SGX)的重定位相关结构和函数。 该文件中的Rela 结构定义了…

AJAX原理及介绍

文章目录 AJAX&#xff08;Asynchronous Javascript And Xml&#xff09;传统请求及缺点AJAX概述XMLHttpRequest对象AJAX GET请求AJAX GET请求的缓存问题AJAX POST请求基于JSON的数据交换基于XML的数据交换AJAX乱码问题AJAX的异步与同步AJAX代码封装AJAX实现省市联动AJAX跨域问…

水性杨花:揭秘CSS响应式界面设计,让内容灵活自如,犹如水之变幻

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一、是…

Spring Boot进阶(94):从入门到精通:Spring Boot和Prometheus监控系统的完美结合

&#x1f4e3;前言 随着云原生技术的发展&#xff0c;监控和度量也成为了不可或缺的一部分。Prometheus 是一款最近比较流行的开源时间序列数据库&#xff0c;同时也是一种监控方案。它具有极其灵活的查询语言、自身的数据采集和存储机制以及易于集成的特点。而 Spring Boot 是…