Hadoop学习笔记1

news2024/11/16 17:40:46

hadoop节点规划

服务器集群规划,6台服务器:

一个主节点

两个从节点

三个工作节点

集群服务器用的都是centos7.9.2009的镜像

一、基础环境

 1.1配置阿里云yum源

1.下载repo文件

wget http://mirrors.aliyun.com/repo/Centos-7.repo

2.备份并替换系统的repo文件

cp Centos-7.repo /etc/yum.repos.d/
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv Centos-7.repo CentOS-Base.repo

3.执行yum源更新命令

yum clear all
yum makecache
yum update -y

安装sz rz工具,用于服务器和windows之间上传、下载文件 

yum install -y lrzsz

安装完直接执行rz命令就能进行上传任务的工作 

安装常用软件

yum install -y openssh-server vim gcc gcc-c++ glibc-headers bzip2-devel lzo-devel curl wget openssh-clients zlib-devel autoconf automake cmake libtool openssl-devel fuse-devel snappy-devel telnet unzip zip net-tools.x86_64 firewalld systemd ntp unrar bzip2

 1.2安装JDK

Hadoop是用java写的,并且使用Hadoop作分布式计算的时候有的进程要启动到jvm中,需要jdk的支持,所以Hadoop集群中所有服务器都要安装jdk并进行相关配置

1.jdk下载

下载 jdk-8u144-linux-x64.rpm 到/public/software/java/

2.安装jdk

rpm -ivh /public/software/java/jdk-8u144-linux-x64.rpm

3.配置java系统的环境变量

进入/etc/profile文件中

export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH

让配置文件生效并检查

source /etc/profile

echo $PATH

或者使用批量命令

echo 'export JAVA_HOME=/usr/java/jdk1.8.0_144' >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile

 1.3修改主机名配置hosts映射

1.修改主机名

# 六台服务器分别进入/etc/hostname文件中,分别修改主机名为nn1、nn2、nn3、s1、s2、s3

# 查看当前主机名

hostname

2.配置hosts映射

# 配置hosts文件,添加主机名和ip地址映射

vim /etc/hosts

# 修改完第一台机器的ip映射后,然后分发到各个不同的机器上 xxx代表目标服务器的主机名

scp /etc/hosts root@xxx:/etc/

hosts文件配置前

127.0.0.1       localhost
11.26.164.142   linux-81580
11.94.204.169   linux-27782
11.26.164.150   op-68863
11.26.164.148   linux-89059
11.26.164.183   linux-29220
11.94.204.182   linux-47527
11.94.204.168   linux-84035

 hosts文件配置后

127.0.0.1       localhost
11.26.164.150   op-68863
11.94.204.168    nn1
11.26.164.142    nn2
11.26.164.183    nn3
11.26.164.148    s1
11.94.204.182    s2
11.94.204.169    s3

 1.4.配置hadoop用户免密切换root 

1.设置hadoop用户并配置密码

# 添加hadoop用户

useradd hadoop

# 检查hadoop用户是否被添加

id hadoop

# 设置hadoop用户的密码

echo "12345678"| passwd hadoop --stdin

或 passwd hadoop

2.配置hadoop用户免密切换root用户

2.1修改/etc/pam.d/su配置

 sed -i 's/#auth\t\trequired\tpam_wheel.so/auth\t\trequired\tpam_wheel.so/g' '/etc/pam.d/su'

 sed -i 's/#auth\t\tsufficient\tpam_wheel.so/auth\t\tsufficient\tpam_wheel.so/g' '/etc/pam.d/su'

 2.2修改/etc/login.defs文件 只有wheel组可以su到root

# 先备份一个

cp /etc/login.defs /etc/login.defs_back

# 把“SU_WHEEL_ONLY yes”字符串追加到/etc/login.defs文件底部

 echo "SU_WHEEL_ONLY yes" >> /etc/login.defs

 tail命令查看/etc/login.defs文件最后10行

tail /etc/login.defs 

2.3 添加hadoop用户到wheel组

# 添加hadoop用户到wheel组 

gpasswd -a hadoop wheel

# 查看wheel组是否有hadoop用户

cat /etc/group | grep wheel

 1.5配置集群的hadoop用户之间可以通过ssh免密连接登入

1.在集群任意一台服务器生成公私钥 

# nn1生成公私钥 

ssh-keygen

 2.其它服务器注册nn1生成的公钥

# 在nn1分别给其它服务器注册公钥

ssh-copy-id nn2

ssh-copy-id nn3

ssh-copy-id s1

ssh-copy-id s2

ssh-copy-id s3

此时nn1可以免密连接到其它服务器,但是其它服务器不能免密连接到nn1,包括其它服务器之间也不能免密连接

如果想要实现各个服务器之间都能免密连接,那么就要把nn1的私钥都给其它服务器copy一份,并且nn1自己还要再注册一份公钥

# nn1自己注册一份公钥

ssh-copy-id nn1

 # nn1的私钥给其它服务器分别copy一份

scp ~/.ssh/id_rsa hadoop@nn2:/home/hadoop/.ssh/

scp ~/.ssh/id_rsa hadoop@nn3:/home/hadoop/.ssh/

scp ~/.ssh/id_rsa hadoop@s1:/home/hadoop/.ssh/

scp ~/.ssh/id_rsa hadoop@s2:/home/hadoop/.ssh/

scp ~/.ssh/id_rsa hadoop@s3:/home/hadoop/.ssh/

 1.6集群常用脚本编写 

获取脚本位置并输出

#! /bin/bash

# 获取脚本当前位置

cd `dirname $0`

# 输出脚本位置

echo `pwd`

scp命令

scp 文件名 登陆用户名@目标机器ip或者主机名:目标目录

ssh命令

ssh 登陆用户名@目标ip或主机名

eval命令

可以把字符串的内容作为一个命令执行

name=hadoop

cmd="echo hi $name"

echo $cmd   #  echo hi hadoop

eval $cmd    # hi hadoop

1.批量脚本说明及使用

1)ips:用于存放要操作的主机列表,用回车或空格隔开

2)scp_all.sh:在hadoop用户下copy当前机器的文件到其它操作机(多机分发脚本)

3)ssh_all.sh:在hadoop用户下登陆其它操作机执行相应操作(多机操作脚本)

4)ssh_root.sh:与ssh_all.sh功能相同,不过该脚本是以root用户的身份执行相应操作(带root的多机操作脚本)

2.定义ips

首先在/home/hadoop目录下创建一个bin目录,然后进入bin目录创建ips文件并添加如下内容

nn1
nn2
nn3
s1
s2
s3

 3.ssh_all.sh

在/home/hadoop/bin目录下创建ssh_all.sh文件

#!/bin/bash
# 进入当前脚本所在的目录
cd "$(dirname "$0")"
# 获取当前脚本所在的目录
dir_path="$(pwd)"
# 读取ips文件获得要批量操作的主机名
ip_arr=($(cat "$dir_path/ips"))
# 遍历数组依次操作每一台主机
for ip in "${ip_arr[@]}"
do
        # 拼接ssh命令
        cmd="ssh hadoop@$ip \"$@\""
        echo "$cmd"
        # 通过eval命令,执行拼接的ssh命令
        if ssh hadoop@$ip "$@"; then
                echo "OK"
        else
                echo "FAIL"
        fi
done

4.scp_all.sh

在/home/hadoop/bin目录下创建scp_all.sh文件

#!/bin/bash
# 进入当前脚本所在的目录
cd "$(dirname "$0")"
# 获取当前脚本所在的目录 
dir_path="$(pwd)"
# 读取ips文件获得要批量操作的主机名
ip_arr=($(cat "$dir_path/ips"))
# 源
source=$1
# 目标
target=$2
# 遍历数组依次操作每一台主机
for ip in "${ip_arr[@]}"
do
        # 拼接ssh命令
        cmd="scp -r ${source} hadoop@${ip}:${target}"
        echo "$cmd"
        # 通过eval命令,执行拼接的ssh命令
        if eval ${cmd} ; then
                echo "OK"
        else
                echo "FAIL"
        fi
done

5.ssh_root.sh

在/home/hadoop/bin目录下创建ssh_root.sh文件,批量执行ssh_all.sh脚本没有权限执行的命令

5.1 exe.sh

执行su命令,与ssh_root.sh配合使用

# 切换到root用户执行cmd命令
cmd=$*
su - << EOF
$cmd
EOF

 exe.sh脚本需要在每台服务器的/home/hadoop/bin目录下都copy一份

5.2 ssh_root.sh

#!/bin/bash
# 进入当前脚本所在的目录
cd "$(dirname "$0")"
# 获取当前脚本所在的目录
dir_path="$(pwd)"
# 读取ips文件获得要批量操作的主机名
ip_arr=($(cat "$dir_path/ips"))
# 遍历数组依次操作每一台主机
for ip in "${ip_arr[@]}"
do
        # 拼接ssh命令
        cmd="ssh hadoop@$ip ~/bin/exe.sh \"$@\""
        echo "$cmd"
        # 通过eval命令,执行拼接的ssh命令
        if ssh hadoop@$ip ~/bin/exe.sh "$@"; then
                echo "OK"
        else
                echo "FAIL"
        fi
done

注意:在写sh脚本的时候,层级之间不能使用空格,必须要使用Tab键,不然报错!

二、zookeeper

2.1zookeeper简介

zookeeper是用来管理hadoop集群的

提供了统一配置、统一命名、分布式锁的功能

2.2zookeeper节点规划及多机分发脚本设计

1.zookeeper节点规划

nn1 nn2 nn3

一个leader,两个follower

2.多机分发脚本设计

cp ips ips_zookeeper

cp scp_all.sh scp_all_zookeeper.sh

cp ssh_all.sh ssh_all_zookeeper.sh

cp ssh_root.sh ssh_root_zookeeper.sh

然后修改ips_zookeeper删除s1 s2 s3

修改scp_all_zookeeper.sh、ssh_all_zookeeper.sh、ssh_root_zookeeper.sh中的ips改为ips_zookeeper

2.3zookeeper安装、启动

1.zookeeper安装

# 安装zookeeper安装包

/public/software/bigdata/zookeeper-3.4.8.tar.gz

# 在zookeeper集群所有机器上把zookeeper的tar包解压到/usr/local目录下

ssh_root_zookeeper.sh tar -zxf /public/software/bigdata/zookeeper-3.4.8.tar.gz -C /usr/local/

# 查看解压的zookeeper

ssh_all_zookeeper.sh ls /usr/local/|grep zookeeper

# 创建软连接

ssh_root_zookeeper.sh ln -s /usr/local/zookeeper-3.4.8/ /usr/local/zookeeper

# 在/usr/local/zookeeper/conf目录下copy zoo_sample.cfg并重命名为zoo.cfg

cp zoo_sample.cfg zoo.cfg

# 修改zoo.cfg

dataDir=/tmp/zookeeper  修改为  dataDir=/data/zookeeper

 添加配置

server.1=nn1:2888:3888
server.2=nn2:2888:3888
server.3=nn3:2888:3888

# 在/usr/local/zookeeper/bin目录下配置zkEnv.sh,添加一个配置

ZOO_LOG_DIR=/data/zookeeper

# 把配置好的zoo.cfg、zkEnv.sh分发给zookeeper集群的其它机器

scp_all_zookeeper.sh /usr/local/zookeeper/bin/zkEnv.sh /usr/local/zookeeper/bin/

scp_all_zookeeper.sh /usr/local/zookeeper/conf/zoo.cfg /usr/local/zookeeper/conf/

# 创建/data/zookeeper目录

ssh_root_zookeeper.sh mkdir /data/zookeeper

# 递归修改/data目录,方便后续操作

ssh_root_zookeeper.sh chown -R hadoop:hadoop /data/

# 在zookeeper集群的nn1、nn2、nn3机器上分别在/data/zookeeper目录下创建myid文件,然后分别添加1、2、3(添加的id要和zoo.cfg里面的server.*一致)

echo "1" > myid

echo "2" > myid

echo "3" > myid

# 切换到root用户修改环境变量

su -

vim /etc/profile 添加环境变量

export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

# 切换回hadoop用户分发修改的配置文件

scp_all_zookeeper.sh /etc/profile /tmp

ssh_root_zookeeper.sh mv /tmp/profile /etc/

# 检查配置文件

ssh_root_zookeeper.sh cat /etc/profile| grep ZOO

# 让配置生效

ssh_root_zookeeper.sh source /etc/profile

如果批量执行没有用的话就每个机器单独执行source /etc/profile

2.zookeeper启动 

# 启动zookeeper集群

ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh start

# 查看jps进程看zookeeper是否启动

ssh_all_zookeeper.sh jps

# 查看zookeeper集群的各个节点状态

ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh status

zookeeper服务命令

# 启动zk服务

ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh start

# 查看每个机器zk运行状态

ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh status

# 停止zk服务

ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh stop

# 重启zk服务

ssh_all_zookeeper.sh /usr/local/zookeeper/bin/zkServer.sh restart

启动zookeeper客户端

zkCli.sh

由于zookeeper是集群,所以通过zkCli.sh无论连接哪个机器都可以,连接上后操作的都是整个zookeeper集群

2.4zookeeper特点及常用命令

  • zookeeper本质是一个分布式小文件存储系统
  • zookeeper本质是树状结构,由节点构成,每个节点叫做znode节点,因此这棵树叫做znode树,根节点为/
  • 在zookeeper中,没有相对路径,所有的节点路径都是从根节点开始计算,比如创建一个节点,create /demo " ",必须从根节点开始
  • 每个节点都必须存储数据,否则这个节点不会创建成功,比如 create /demo1,不会被创建成功
  • zookeeper主要是用来协调服务的,而不是用来存储数据业务的,所以不能放比较大的数据在节点上,zookeeper给出每个节点的数据量上限是1M
  • 每个持久节点可以挂载子节点,但是临时节点不能挂载子节点
  • zookeeper对hadoop集群的统一配置功能是指把hadoop集群的配置信息放到zookeeper的节点上,然后集群的机器监控存放配置信息的znode节点,如果节点的配置信息发生变化,那么集群的机器也会发生变化

1.zookeeper节点类型

持久节点:客户端断开后节点不会消失

create /demo1 ""

临时节点:客户端断开后节点会消失

create -e /demo1 ""

持久顺序节点:创建带有事务编号的节点,客户端断开后不会消失

create -s /demo1 ""

临时顺序节点:创建带有事务编号的节点,客户端断开后会消失

create -e -s /demo1 "" 

每一个节点路径都是唯一的,所以基于这一特点,可以做集群统一命名服务

2.zookeeper存储特点

zookeeper的树状结构是维系在内存中的,即每一个节点的数据也会存储在内存中,这样做的目得是为了方便快速查找;同时zookeeper的树状结构也会以快照的形式维系在磁盘中,这样做的目得是保证数据安全,在磁盘的存储位置是由dataDir和dataLogDir属性决定的

3.zookeeper常用命令

create  /video ""创建一个/video的持久节点,数据为空
get  /video

查看/video的节点信息

set  /video  "hello"修改节点数据为”hello“
create  -e  /demo1  ""创建一个临时节点/demo1
create  -s  /demo2  ""创建一个顺序节点/demo2
ls  /查看根目录下的节点
rmr  /test递归删除节点,即删除根目录下test节点及test下的子节点
ls  /demo3  watch监听/demo3下子节点变化
get  /demo4  watch监听/demo4数据变化

2.5zookeeper选举机制

  1. 当zookeeper集群启动的时候,每一个节点都会进入选举状态,并且会推举自己成为leader,然后将自己的选举信息发送给其它节点
  2. 节点之间进行两两比较,经过多轮比较之后,最终胜出的节点成为leader
  3. 选举信息                                                                                                                                      

    自己拥有的最大事务id--Zxid

    自己的选举id--myid

  4. 比较原则                                                                                                                                    

    先比较最大事务id,谁大谁赢

    如果最大事务id一致,则比较myid,谁大谁赢

    经过多轮比较之后,一个节点如果胜过了一半以上的节点,则这个节点就会成为leader ---过半选举

  5. 一旦zookeeper集群选举出了leader,那么新添加的节点无论事务id或者myid多大都只能是follower
  6. 在zookeeper集群中,一旦当leader节点宕机以后,会自动重新选举新的leader,所以不存在单点故障问题,但是一旦集群中存活的节点个数不足一半,那么整个zookeeper集群就不能正常工作了 ---过半存活
  7. 如果在zookeeper集群出现2个及以上leader,这种现象称为脑裂
  8. 脑裂产生的原因:集群产生了分裂;分裂之后进行了选举
  9. 如何抑制脑裂:在zookeeper集群中,会对每次选举出来的leader分配一个唯一的全局递增的编号,称之为epochid。如果zookeeper集群中存在多个leader,那么会自动将epochid较低的节点转为follower状态

2.6zookeeper原子广播流程

zookeeper通过原子广播流程保证了zookeeper集群数据的一致性

当zookeeper集群收到请求后会把请求交给leader处理,leader会把请求记录到本地的log文件中,如果记录成功,leader会把这个操作记录发送给每一个follower,放到每个follower的队列中,follower会把请求从队列中拿出,试图记录到follower的本地log中,如果成功就会给leader返回ok信号,失败就会返回no信号,如果leader收到一半以上的follower返回的是ok信号,就会认为这个操作可以执行,leader会通知所有的节点执行此操作,否则没有收到一半以上的ok信号,则认为此操作不可执行,leader就会通知所有的节点从log中删除刚才的记录

其实zookeeper集群对于请求的处理就是如果请求在follower中,则会把请求转发给leader处理,如果请求直接在leader,则leader直接处理,然后由leader转发请求发送给每个follower来执行,以此保证zookeeper集群的数据一致性

2.7observer观察者

observer就是一个不参与投票也不参与选举的follower,只监听投票的结果,但是可以正常工作,所以observer可以提高选举的效率,并且observer的作用不仅限于leader的选举过程,在原子广播流程中observer也不参与,只负责最后执行命令来保证observer的数据与leader的数据一致

2.8zookeeper特性总结

1.数据一致性:服务端启动后,客户端无论通过哪个节点连接zookeeper集群,展示出来的都是同一个视图,即查询的数据都是一样的

2.原子性:对于事务决议的更新,只能是成功或者失败两种可能,没有中间状态。要么集群所有机器都成功应用某一事务,要么都没有应用,一定不会出现集群中一部分机器应用了事务,另一部分机器没有应用的情况

3.可靠性

4.实时性

5.顺序性

6.过半性:过半选举、过半存活、过半操作

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

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

相关文章

Tensorflow深度学习总结

1.正态分布和高斯分布 正态分布&#xff08;Normal Distribution&#xff09;和高斯分布&#xff08;Gaussian Distribution&#xff09;实际上指的是同一个概率分布&#xff0c;在统计学和概率论中是最常见和最重要的连续概率分布之一。这两个术语可以互换使用&#xff0c;但…

【Linux】网络通信基础:应用层协议、HTTP、序列化与会话管理

文章目录 前言1. 应用层自定义协议与序列化1.1 什么是应用层&#xff1f;1.2 再谈 "协议"1.3 序列化 和 反序列化 2. HTTP 协议3. 认识 URL(统一资源定位符)4. urlencode和urldecode5. HTTP 协议请求与响应格式5.1 HTTP 请求5.2 HTTP 响应 6. HTTP 的方法6.1 GET 方法…

【BUG】已解决:AttributeError: module ‘sys‘ has no attribute ‘setdefaultencoding‘

AttributeError: module ‘sys‘ has no attribute ‘setdefaultencoding‘ 目录 AttributeError: module ‘sys‘ has no attribute ‘setdefaultencoding‘ 【常见模块错误】 【解决方案】 原因分析&#xff1a; 解决方案&#xff1a; 示例代码&#xff1a; 总结&#…

「JavaEE」Spring MVC:基本操作1

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;JavaEE &#x1f387;欢迎点赞收藏加关注哦&#xff01; 简介 Spring Web MVC 是⼀个 Web 框架&#xff0c;简称为 Spring MVC MVC 是 Model View Controller 的缩写&#xff0c;它是软件工程…

CSS(七)——CSS 列表和CSS Table(表格)

目录 CSS 列表 列表 作为列表项标记的图像 列表 - 简写属性 移除默认设置 所有的CSS列表属性 CSS 表格 表格边框 折叠边框&#xff08;border-collapse&#xff09; 表格宽度和高度 表格文字对齐 表格填充 表格颜色 CSS 列表 CSS 列表属性作用如下&#xff1a; 设…

反射型与dom型的xss的区别【源码分析】

反射型 XSS 和 DOM 型 XSS 都属于跨站脚本攻击 (XSS) 的类型&#xff0c;它们的共同点是均能通过注入恶意脚本在用户浏览器中执行&#xff0c;不同点是dom型xss不经过服务器&#xff0c;而反射型是经过服务器的。但是&#xff0c;它们在攻击方式、执行过程和防御措施上有所不同…

基于TensorFlow.js和COCO-SsD模型的实时目标检测网络应用程序

基于TensorFlow.js和COCO-SsD模型的实时目标检测网络应用程序 实现流程 访问用户的桌面录屏并且显示视频源&#xff08;位置居中&#xff09;。对视频源进行实时目标检测。在检测到的目标周围绘制边界框&#xff0c;并用它们的类别和检测置信度进行标记。在视频源下方显示一个…

关于SpringBoot项目利用阿里EasyExcel快捷导入Excel文件入库初始化数据的简单实现

一、问题描述 无论新项目还是旧项目&#xff0c;都会出现数据维护、数据初始化等操作&#xff0c;手动录显然很low(领导会骂你)&#xff0c;所以一般采用批量导入导出。这里你还在用原始读取excel逐行逐列去读取吗&#xff1f;2024了ok&#xff1f;利用工具是我们cv大师的一贯…

AnyMP4 Data Recovery for Mac v1.5.8免激活版:高效数据恢复新选择

AnyMP4 Data Recovery for Mac是一款专为Mac用户设计的高效数据恢复软件&#xff0c;凭借其强大的功能和简洁的操作界面&#xff0c;为用户提供了快速、安全的数据恢复体验。 该软件支持恢复多种文件类型&#xff0c;包括照片、视频、音频、文档等&#xff0c;无论是常见的图片…

编译Sandboxie源代码

源代码地址: https://github.com/sandboxie-plus/Sandboxie.git 获取下来后,主工程在目录Sandboxie中。 根据官方文档,主要内容有: 安装VS2019 ,必须要有桌面C++开发能力Windows 10 SDK 10.0.19041 必须安装MFC for latest v142 build tools {architecture} 这个组件也需…

Linux中man手册中报No manual entry

在使用man手册的时候会出现这种错误信息&#xff1a; 这种情况是有可能因为没有安装man手册&#xff01; 只要安装一下man就可以了&#xff1a; yum install man-pages

GLSL教程 第5章:光照和材质

目录 5.1 光照模型基础 5.2 Phong光照模型 5.3 Blinn-Phong光照模型 5.4 Cook-Torrance光照模型 5.5 Lambert光照模型 5.6 材质属性的深入讲解 小结 光照和材质是计算机图形学中至关重要的元素&#xff0c;它们共同决定了渲染图像的视觉效果。光照模型用于模拟光源与物体…

Scrapy 爬取旅游景点相关数据( 二 )

1 安装selenium 借助 selenium 可以使用浏览器来进行爬取数据&#xff0c;可以解决上一节遗留的翻页问题&#xff0c;首先介绍一下如何集成到scrapy环境中。 由于我使用的是macbook&#xff0c;因此以下都是使用macbook安装的过程 &#xff08; 网络上很容易找到windows安装…

git实践汇总【配置+日常使用+问题解决】

**最初配置步骤&#xff1a;** git config --global user.name "yournemae" git config --global user.email "yourmail" git config -l ssh-keygen -t rsa -C “xxx.xxxx.EXTcccc.com” git config --global ssh.variant ssh $ git clone git仓库路径 git…

【我的养猪日记】区块链游戏

剧情介绍 年少无知留给了故乡&#xff0c;谦卑有礼送给了远方&#xff0c;有工作的地方没家&#xff0c;有家的地方没工作&#xff0c;他乡留不下灵魂&#xff0c;故乡安不了肉身&#xff0c;从此便有了漂泊。在外漂泊数年的你每天过着&#xff0c;挤不完的公交地铁、交不完的房…

上传项目到GitHub

上传项目到GitHub 前期工作&#xff1a;创建GitHub仓库 1.使用git命令初始化文件夹 git init2.将文件夹里面所有的文件添加到本地仓库&#xff0c;如果想添加单个文件&#xff0c;将.换成文件名就好。 git add .3.给文件备注&#xff0c;双引号里面是文件备注的内容 git c…

架构师篇-14、大型汽车企业之OTD案例分析

本节内容摘要&#xff1a; 1、 通过实际案例从项目背景、战略、业务分析、技术解决方案【应用、数据、技术架构设计】 2、理清问题、识别关键业务或技术、寻求合适的方案 本章节课程交付&#xff1a; 业务理解和分析业务4A架构分析设计案例总结和问题讨论 本节要点&#xff…

VMware 16虚拟机 Linux 挂载U盘(exFAT)

一、环境配置 本机系统&#xff1a;Windows11专业版 软件为&#xff1a;VMware 16 虚拟机系统&#xff08;镜像文件&#xff09;为&#xff1a;乌班图 文中U盘格式为下列&#xff1a; exFAT USB 3.0 二、挂载前的准备 1、 首先查看Vmware 软件中的U盘配置 …

使用Apache SeaTunnel进行二次开发的实践分享

大家好&#xff0c;我是范佳&#xff0c;是Apache SeaTunnel社区的PMC member。今天给大家分享一些基于Apache SeaTunnel二次开发的内容。 这部分内容主要涉及代码层面的知识&#xff0c;如果大家有什么疑问&#xff0c;欢迎来社区找我交流&#xff01; 引言 大部分数据开发工…

谷粒商城实战笔记-62-商品服务-API-品牌管理-OSS整合测试

文章目录 一&#xff0c;Java中上传文件到阿里云OSS1&#xff0c;整合阿里云OSS2&#xff0c;测试上传文件 二&#xff0c;Java中整合阿里云OSS服务指南引言准备工作1. 注册阿里云账号2. 获取Access Key3. 添加依赖 实现OSS客户端1. 初始化OSSClient2. 创建Bucket3. 上传文件4.…