html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0 }
body { font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 1.6; color: rgba(51, 51, 51, 1); background-color: rgba(255, 255, 255, 1); padding: 20px; max-width: 960px; margin: 0 auto }
body>*:first-child { margin-top: 0 !important }
body>*:last-child { margin-bottom: 0 !important }
p, blockquote, ul, ol, dl, table, pre { margin: 15px 0 }
h1, h2, h3, h4, h5, h6 { margin: 20px 0 10px; padding: 0; font-weight: bold; -webkit-font-smoothing: antialiased }
h1 tt, h1 code, h2 tt, h2 code, h3 tt, h3 code, h4 tt, h4 code, h5 tt, h5 code, h6 tt, h6 code { font-size: inherit }
h1 { font-size: 28px; color: rgba(0, 0, 0, 1) }
h2 { font-size: 24px; border-bottom: 1px solid rgba(204, 204, 204, 1); color: rgba(0, 0, 0, 1) }
h3 { font-size: 18px }
h4 { font-size: 16px }
h5 { font-size: 14px }
h6 { color: rgba(119, 119, 119, 1); font-size: 14px }
body>h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h4:first-child, body>h5:first-child, body>h6:first-child { margin-top: 0; padding-top: 0 }
a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 { margin-top: 0; padding-top: 0 }
h1+p, h2+p, h3+p, h4+p, h5+p, h6+p { margin-top: 10px }
a { color: rgba(65, 131, 196, 1); text-decoration: none }
a:hover { text-decoration: underline }
ul, ol { padding-left: 30px }
ul li>:first-child, ol li>:first-child, ul li ul:first-of-type, ol li ol:first-of-type, ul li ol:first-of-type, ol li ul:first-of-type { margin-top: 0 }
ul ul, ul ol, ol ol, ol ul { margin-bottom: 0 }
dl { padding: 0 }
dl dt { font-size: 14px; font-weight: bold; font-style: italic; padding: 0; margin: 15px 0 5px }
dl dt:first-child { padding: 0 }
dl dt>:first-child { margin-top: 0 }
dl dt>:last-child { margin-bottom: 0 }
dl dd { margin: 0 0 15px; padding: 0 15px }
dl dd>:first-child { margin-top: 0 }
dl dd>:last-child { margin-bottom: 0 }
pre, code, tt { font-size: 12px; font-family: Consolas, "Liberation Mono", Courier, monospace }
code, tt { margin: 0; padding: 0; white-space: nowrap; border: 1px solid rgba(234, 234, 234, 1); background-color: rgba(248, 248, 248, 1); border-radius: 3px }
pre>code { margin: 0; padding: 0; white-space: pre; border: none; background: rgba(0, 0, 0, 0) }
pre { background-color: rgba(248, 248, 248, 1); border: 1px solid rgba(204, 204, 204, 1); font-size: 13px; line-height: 19px; overflow: auto; padding: 6px 10px; border-radius: 3px }
pre code, pre tt { background-color: rgba(0, 0, 0, 0); border: none }
kbd { -moz-border-bottom-colors: none; -moz-border-left-colors: none; -moz-border-right-colors: none; -moz-border-top-colors: none; background-color: rgba(221, 221, 221, 1); background-image: linear-gradient(rgba(241, 241, 241, 1), rgba(221, 221, 221, 1)); background-repeat: repeat-x; border-top: 1px solid rgba(221, 221, 221, 1); border-right: 1px solid rgba(204, 204, 204, 1); border-bottom: 1px solid rgba(204, 204, 204, 1); border-left: 1px solid rgba(221, 221, 221, 1); border-image: none; border-radius: 2px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; line-height: 10px; padding: 1px 4px }
blockquote { border-left: 4px solid rgba(221, 221, 221, 1); padding: 0 15px; color: rgba(119, 119, 119, 1) }
blockquote>:first-child { margin-top: 0 }
blockquote>:last-child { margin-bottom: 0 }
hr { clear: both; margin: 15px 0; height: 0; overflow: hidden; border-top: none; border-right: none; border-bottom: 4px solid rgba(221, 221, 221, 1); border-left: none; background: rgba(0, 0, 0, 0); padding: 0 }
table th { font-weight: bold }
table th, table td { border: 1px solid rgba(204, 204, 204, 1); padding: 6px 13px }
table tr { border-top: 1px solid rgba(204, 204, 204, 1); background-color: rgba(255, 255, 255, 1) }
table tr:nth-child(2n) { background-color: rgba(248, 248, 248, 1) }
img { max-width: 100% }

Hadoop搭建详解

Hadoop官网地址本文发布时官方已经发布到3.0.0-alpha2。需要JDK要求为1.8。

Minimum required Java version increased from Java 7 to Java 8

前提概要 主要是针对Hadoop和Eclipse开发环境过程中遇到的配置问题汇总.由于环境限制,本文汇总的信息主要是对Hadoop-2.2.0版本的伪分布式的安装配置。本地开发环境是Win7(64-bit)+Eclipse(Kepler Service Release 2 64-bit)、win7(64位)、jdk(1.6.0_31 64-bit)、开发连接的服务器是CentOS Linux release 7.2.1511 (Core)。

环境准备

  • 虚拟机 (Vmware WorkStation10以上)
  • CentOs (CentOS Linux release 7)
  • JDK (1.6.0_31 64-bit)
  • Eclipse (Kepler Service Release 2)+Hadoop插件
  • Hadoop-2.2.0
  • Win7 (64-bit)

CentOS Linux环境的安装与配置

Centos服务器的安装请参照Vmware Station下CentOS安装教程

安装完成后安装一些常用的软件。

 yum -y install vim

查看是否安装 ssh

[hadoop@localhost ~]$ rpm -qa|grep ssh

显示结果:

libssh2-1.4.3-10.el7.x86_64
openssh-server-6.6.1p1-22.el7.x86_64
openssh-clients-6.6.1p1-22.el7.x86_64
openssh-6.6.1p1-22.el7.x86_64

若没有上述内容需要安装ssh.

 yum install ssh

Linux的基本命令请参照Linux基本操作命令

系统安装完成后的设置:

关闭CentOS防火墙及SELinux

CentOS7和CentOS7之前的版本使用的不同的命令. CentOS7的命令如下:

关闭防火墙

  • [hadoop@localhost 桌面]$ systemctl stop firewalld.service
  • [hadoop@localhost 桌面]$ systemctl disable firewalld.service
  • [hadoop@localhost 桌面]$ systemctl status firewalld.service

关闭SELinux

编辑 SELinux 配置文件
vim /etc/selinux/config
改状态
SELINUX=disabled
卸载OpenJDK&安装SUN JDK

安装好的CentOS通常安装有OpenJDK,可以用命令java -version来查看你本地装的java版本。由于Hadoop的环境需要SUN JDK,因此你需要卸载你的OpenJDK。


查看本地安装的Java类型及版本

[hadoop@localhost 桌面]$ java -version

Openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)

查看CenteOS里面的java

[hadoop@localhost 桌面]$ rpm -qa | grep java

python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
tzdata-java-2015g-1.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch

卸载 OpenJDK(一般用户没有权限卸载JDK的权限需要切换到root权限)

[hadoop@localhost 桌面]$ su
密码:
[root@localhost 桌面]$ rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
[root@localhost 桌面]$ rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
[root@localhost 桌面]$ rpm -e --nodeps java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
[root@localhost 桌面]$ rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64

查询不到时,也可以使用下面的命令查询 rpm -qa | grep gcj 列出所有被安装的rpm package 含有gcj rpm -qa | grep jdk 列出所有被安装的rpm package 含有jdk

如果出现找不到openjdk source的话,那么还可以这样卸载 yum -y remove java java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x8664 yum -y remove java java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x8664 这里我们检查不到安装就可以安装JDK1.6_64

上传JDK1.6_64(我们用Xftp 5工具上传我本地的jdk-6u33-linux-x64.bin)

注意:若你使用的账户权限不是管理员权限,使用Xftp5工具上传文件时,你能上传的文件仅仅是您能操作的账户目录。你可以切换到管理员的权限或上传到你所拥有的目录权限下。

上传后可以通过Xshell命令操作查看上传后的文件

[hadoop@localhost ~]$ ll
总用量 79872
-rw-rw-r--. 1 hadoop hadoop 72029394 3月 28 17:04 jdk-6u33-linux-x64.bin
drwxr-xr-x. 2 hadoop hadoop6 3月 28 14:24 公共
drwxr-xr-x. 2 hadoop hadoop6 3月 28 14:24 模板
drwxr-xr-x. 2 hadoop hadoop6 3月 28 14:24 视频
drwxr-xr-x. 2 hadoop hadoop6 3月 28 14:24 图片
drwxr-xr-x. 2 hadoop hadoop6 3月 28 14:24 文档
drwxr-xr-x. 2 hadoop hadoop6 3月 28 14:24 下载
drwxr-xr-x. 2 hadoop hadoop6 3月 28 14:24 音乐
drwxr-xr-x. 2 hadoop hadoop6 3月 28 14:24 桌面

安装JDK1.6

[hadoop@localhost ~]$ chmod +x jdk-6u33-linux-x64.bin
[hadoop@localhost ~]$ ./jdk-6u33-linux-x64.bin

修改目录名称

[hadoop@localhost ~]$ mv jdk1.6.0_33 jdk1.6

java环境变量设置

用root用户修改环境变量

[hadoop@localhost ~]$ su
密码:
[root@localhost hadoop]# vim /etc/profile

按[i]进入编辑模式 在文档的最后加入下面几行代码

export JAVA_HOME=/home/hadoop/jdk1.6
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

增加后按 esc 在按 :wq 保存退出。

使用命令更新环境变量source ~/.bashrc让配置文件生效。

在终端输入java -version查看是否安装完成。

修改Hosts

编辑hosts

vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.220 centosTest2

Linux账户免密码登录环境变量配置

目录权限设置-使用root权限登录

   [root@localhost hadoop]$ cd /root
[root@localhost hadoop]$ mkdir .ssh
[root@localhost hadoop]$ chmod 700 .ssh

创建ssh密钥

ssh-keygen -t rsa

后面直接三个回车

[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
d7:cd:c9:fa:b9:b4:72:f6:13:a0:cc:93:fa:2e:28:5e root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| . = . |
| S + + * |
| . * . . |
| E. . o . .|
| ... o .oo+ |
| ... +o +=oo|
+-----------------+
[root@localhost ~]#

创建授权公钥

cat  .ssh/id_rsa_.pub  >>  .ssh/authorized_keys

修改密钥文件权限

[root@localhost ~]# cd .ssh
[root@localhost .ssh]# chmod 600 authorized_keys
[root@localhost .ssh]# ll

测试是否能登录

[root@localhost ~]# ssh localhost
Last login: Tue Mar 28 18:26:03 2017 from 192.168.0.220

Hadoop安装及配置

安装Hadoop及配置环境变量

  • 使用Xftp 工具上传Hadoop-2.2.0.tar.gz包到用户目录

  • 使用命令安装 [root@centosTest2 hadoop]# tar xvfz hadoop-2.2.0.tar.gz

  • 增加环境变量 HADOOP_HOME和PATH

    [root@centosTest2 hadoop]# vim /etc/profile

修改内容如下:

export HADOOP_HOME=/home/hadoop/hadoop-2.2.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
  • 使用命令更新环境变量source ~/.bashrc让配置文件生效。

修改hadoop-env.sh环境变量

[root@centosTest2 /]# cd /home/hadoop/hadoop-2.2.0/etc/hadoop
[root@centosTest2 hadoop]# vim hadoop-env.sh

修改内容如下:

#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/hadoop/jdk1.6

修改yarn.sh的JAVA_HOME

[root@centosTest2 /]# cd /
[root@centosTest2 /]# cd /home/hadoop/hadoop-2.2.0/etc/hadoop
[root@centosTest2 hadoop]# ll
[root@centosTest2 hadoop]# vim yarn-env.sh

修改内容如下:

export JAVA_HOME=/home/hadoop/jdk1.6

修改配置文件core-site.xml

[root@centosTest2 /]# cd /home/hadoop/hadoop-2.2.0/etc/hadoop
[root@centeostest hadoop]# vim core-site.xml

修改内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
--> <!-- Put site-specific property overrides in this file. --> <configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.0.220:9000</value>
</property>
</configuration>

创建HDFS元数据和数据存放目录

[root@centosTest2 ~]# mkdir -p /home/hadoop/hdfs-2.0/name
[root@centosTest2 ~]# mkdir -p /home/hadoop/hdfs-2.0/data

修改配置文件hdfs-site.xml

[root@centosTest2 /]# cd /home/hadoop/hadoop-2.2.0/etc/hadoop
[root@centeostest hadoop]# vim hdfs-site.xml

修改内容如下

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
--> <!-- Put site-specific property overrides in this file. --> <configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hdfs-2.0/name</value>
</property> <property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hdfs-2.0/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

格式化namenode

注意hadoop namenode –format是以前的版本格式化namenode 如果没有启动namenode可以用命令hdfs namenode –format

启动hdfs

[hadoop@centosTest2 ~]$ cd hadoop-2.2.0/sbin
[hadoop@centosTest2 sbin]$ ./start-dfs.sh

过程中输入yes 就可以了。 使用jps命令查看是否运行了namenode

配置mapreduce 配置mapred-site.xml文件

[root@centosTest2 hadoop]# cd /home/hadoop/hadoop-2.2.0/etc/hadoop/ [root@centosTest2 hadoop]# cp mapred-site.xml.template mapred-site.xml [root@centosTest2 hadoop]# vim mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
--> <!-- Put site-specific property overrides in this file. --> <configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

配置yarn 配置yarn-site.xml文件

修改如下:

<?xml version="1.0"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->
<configuration> <!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.0.220:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.0.220:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.0.220:18025</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.0.220:18088</value>
</property> </configuration>

自此你就可以运行下hadoop

[root@centosTest2 sbin]# ./start-all.sh

可以用jps来查看运行服务节点情况

[root@centosTest2 sbin]# jps
8164 Jps
7825 ResourceManager
7915 NodeManager
7597 DataNode
2688 SecondaryNameNode

Hadoop web访问地址 http://192.168.0.220:18088 HDFS web访问地址 http://192.168.0.220:50070

如NameNode无法启动请参照 NameNode is not format

想知道更多欢迎加群讨论 【373833228】欢迎点赞

Hadoop搭建超级详解的更多相关文章

  1. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  2. hadoop之yarn详解(框架进阶篇)

    前面在hadoop之yarn详解(基础架构篇)这篇文章提到了yarn的重要组件有ResourceManager,NodeManager,ApplicationMaster等,以及yarn调度作业的运行 ...

  3. 【转载】Hadoop历史服务器详解

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:过往记忆(http://www.iteblog.com/)     原文地址: ...

  4. hadoop hdfs uri详解

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  5. hadoop基础-SequenceFile详解

    hadoop基础-SequenceFile详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.SequenceFile简介 1>.什么是SequenceFile 序列文件 ...

  6. Hadoop RPC机制详解

    网络通信模块是分布式系统中最底层的模块,他直接支撑了上层分布式环境下复杂的进程间通信逻辑,是所有分布式系统的基础.远程过程调用(RPC)是一种常用的分布式网络通信协议,他允许运行于一台计算机的程序调用 ...

  7. hadoop之mapreduce详解(进阶篇)

    上篇文章hadoop之mapreduce详解(基础篇)我们了解了mapreduce的执行过程和shuffle过程,本篇文章主要从mapreduce的组件和输入输出方面进行阐述. 一.mapreduce ...

  8. hadoop Shell命令详解

    调用文件系统(FS)Shell命令应使用bin/hadoop fs <args>的形式.所有的的FS shell命令使用URI路径作为参数.URI路径详解点击这里. 1.cat说明:将路径 ...

  9. Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解

    当网站访问量达到一定时,如何做Memcached集群,又如何高可用,是接下来要讨论的问题. 有这么一段文字来描述“Memcached集群” Memcached如何处理容错的? 不处理!:) 在memc ...

  10. spring mvc 框架搭建及详解

    现 在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不 ...

随机推荐

  1. [cocos2d-x]从源码角度思考convertToWorldSpace()与convertToWorldSpaceAR()坐标系的转换

    convertToWorldSpace() 话不多说,先上源码,之后再慢慢讲解: (5和6图截图的时候重复了,这里就不弄出来了) 只要通过图1到图8中我写的注释进行分析(不懂的地方可以自己去翻一下co ...

  2. MySQL 字符串长度 char_length、length

    一.方法分类 二.具体方法 函数 描述 区别 char_length(str)或character_length(str) 返回字符串 str 的字符 1.单位为字符2.不管汉字还是数字或者是字母都算 ...

  3. 洛谷 P1208混合牛奶 题解

    一道贪心算法不是很明显的题目,其实一般的递推也可以做. 大体思路:肯定优先购买单价最低的奶农的牛奶,那么就需要先根据牛奶单价进行排序,这里用结构体会更好一点.之后在从前往后一个一个枚举,直至购买的牛奶 ...

  4. BFC是什么?有什么作用

    Block formatting context:块级格式化上下文1.前言官方文档解释为:一个BFC区域包含创建该上下文元素的所有子元素,但是不包括创建了新的BFC的子元素的内部元素,BFC是一块块独 ...

  5. Unity之正确设置手机显示布局&&获取手机朝向

    目录 Unity之正确设置手机显示布局 && 获取手机朝向 前言 开篇 Unity版本及使用插件 正题 设置手机屏幕显示布局.Screen.orientation 获取手机当前朝向.I ...

  6. android开发技巧杂谈

    android开发技巧一 android的一些常用包是发布在国外的,所以一些包,我们下载不下来,我们可以使用阿里云的镜像地址(maven { url 'https://maven.aliyun.com ...

  7. 艰难的 debug 经历,vscode 无法获取远程环境 ssh 报错,windows 11 ssh

    背景介绍 要做系统结构实验,学校和华为云合作使用华为云的 aarch64 裸机,需要使用 ssh 远程开发,笔者为了追求良好的开发体验,决定使用 vscode 开发,实验环境配置过程中遇到了两个问题, ...

  8. 力扣---1148. 文章浏览 I

    Views 表:+---------------+---------+| Column Name   | Type    |+---------------+---------+| article_i ...

  9. springcloud-alibaba

    1.spring cloud alibaba官网 https://spring.io/projects/spring-cloud-alibaba#overview 2.spring cloud ali ...

  10. .net core 阿里云接口之获取临时访问凭证

    假设您是一个移动App开发者,希望使用阿里云OSS服务来保存App的终端用户数据,并且要保证每个App用户之间的数据隔离.此时,您可以使用STS授权用户直接访问OSS. 使用STS授权用户直接访问OS ...