计算机基础
Could not find artifact com.amazonaws:DynamoDBLocal
<!-- 遇到以上问题,在pom文件中添加以下代码 -->
<repositories>
<repository>
<id>dynamodb-local-oregon</id>
<name>DynamoDB Local Release Repository</name>
<url>https://s3-us-west-2.amazonaws.com/dynamodb-local/release</url>
</repository>
...
</repositories>
7za 压缩命令安装
#安装
yum install p7zip -y
解压7z:使用方法:
7za x file.7z -r (递归解压所有)
centos7中网络有线连接图标不见
#方式1
systemctlenableNetworkManager.service
systemctlstartNetworkManger.service
#方式2
mv/var/lib/NetworkManager/var/lib/NetworkManager.bak
#方式3
chkconfignetworkoff
chkconfignetworkon
serviceNetworkManagerstop
serviceNetworkManagerstart
两台电脑的虚拟机互相ping通
在虚拟机的属性设置中,网络设置那里设为桥接网卡,那么虚拟机就相当于直接使用主机的网卡了,如果这两台电脑在同一局域网中,他们之上运行的虚拟机自然也就在同一局域网中了,也就能直接互联了
将虚拟机的网络连接设为“桥接”然后把Ubuntu的ip设成和物理机同一个网段。就可以了!
centos7的网络适配器改为桥接模式
主机的ip要和虚拟机的ip在同一网段下(子网掩码:255.255.255.0)
主机ip
虚拟机ip
主机的网关要和虚拟机的网关相同
见图二
重新启动一下网络服务 systemctl restart network
ip地址子网掩码
如果修改了默认子网掩码中的.0,可能在同一wifi下连接的主机不在同一子网中
比如:
255.255.255.192
192:11000000
第一位,第二位的(1)会分成四个子网范围
00:子网范围:0-63
01:子网范围:64-127
10:子网范围:127-191
11:子网范围:192-255
连续的1代表网络位,连续的0代表主机位
分类:
主机位第一位是网络位(默认位)如:192.168.20.0
最后一个默认位广播位 如: 192.168.20.255
127:本地回环
A: 0-126
00000000~01111111转换成十进制最大为0~126
子网掩码默认:255.0.0.0
网络位:255
主机位:1~(16777215-1)=16777214个主机位
B: 128 - 191
10000000~10111111转换成十进制为128~191
子网掩码默认:255.255.0.0
网络位:255.255
主机位:1-(65535-1) =65534个主机位
C: 192 - 223
11000000~11011111转换成十进制为192~223
子网掩码默认:255.255.255.0
网络位:255.255.255
主机位:1-(255-1)=254个主机位
D: 224 - 239
11100000~11101111转换为十进制为224~239
E: 240 - 247
11110000~11110111转换为十进制为240~247
ssh
是什么:是一种安全传输协议,专为远程登录会话和其他网络服务提供安全性的协议
有效防止远程管理过程中的信息泄露
传输数据加密,能够防止DSN和ip欺骗
传输数据压缩,加快传输速度
OpenSSH是SSH协议的免费开源实现,OpenSSH提供了服务端程序和客户端工具
Mac和Linux中默认已经安装ssh客户端,可一致在终端中使用ssh命令。Windows则需手动安装ssh客户端,较常用的Windows SSH客户端有 Putty 和 X Shell.
OpenSSH服务端常用命令
# 配置IP地址的方法
vim/etc/sysconfig/network-scripts/ifcfg-eth0
# 安装服务端/客户端(Ubuntu)
sudoyuminstallopenssh-server/openssh-client
# 查看ssh服务是否开启
netstat-tlp|grepssh
# .检查CentOS7是否安装了openssh-server
yumlistinstalled|grepopenssh-server
# 检查22号端口是否开启监听
ps-e|grepsshd
# 或者
netstat-an|grep22
# 启动/停止/重启 ssh服务
sudo/etc/init.d/sshstart/stop/restart
ssh服务端配置文件默认为 /etc/ssh/sshd_config。可以按需修改默认22端口等配置
# 远程登录
ssh用户名@用户ip地址
# 以root用户登录到192.168.20.20的服务器,使用2222端口
ssh-p2222root@192.168.20.20
Option含义
-p指定ssh端口号,默认端口为 22
-i使用指定私钥文件连接服务器(免密登录)
user 远程服务登录的用户名,默认为当前用户
hostname 远程服务器地址。可以是IP/域名/别名
exit 或 logout 命令均可推出当前登录
ssh高级配置
ssh信息都保存在~/.ssh中
配置文件作用
known_hosts作为客户端。记录曾连接服务器授权。ssh第一次连接一台服务器会有一个授权提示,确认授权后会记录在此文件中,下次连接记录中的服务器时则不需要再进行授权确认提示
authorized_keys作为服务端。客户端的免密连接公钥文件
config作为客户端。记录连接服务器配置的别名
1)服务器别名
远程管理命令(如:ssh,scp等)连接一台服务器时一般都需要提供服务器地址、端口、用户名,每次输入比较繁琐,我们可以把经常使用的服务器连接参数打包记录到配置文件中并为其设置一个简单易记的别名。这样我们就可以通过别名方便的访问服务器,而不需要提供地址、端口、用户名等信息了。
配置方法如下:
创建或打开~/.ssh/config ,在文件追加服务器配置信息
一台服务器配置格式如下
Host别名
HostName192.168.20.20
Userroot
Port22
以上配置中只有Host Name是必填项,其他都可以按需省略。
配置完成后远程管理命令中就可以直接使用别名访问了,如
ssh别名
scp123.txt别名:Desktop
2) 免密登录
# 命令格式
ssh-keygen[-options]
options含义
-t指定加密类型,默认为非对称加密(rsa),所有可选项[dsa,ecdsa,ed25519,rsa]
-f密钥文件名
-c注释,将附加在密钥文件尾部
远程管理命令(如ssh,scp等)每次都需要提供用户密码保证安全。除此之外,我们也可以配置使指定加密算法验证密钥文件的方式,避免每次输入密码
配置免密登陆后,ssh连接和scp等远程管理命令都不需要再输密码
生成密钥时若指定了文件名,连接服务器时需要通过-i指定要验证的密钥文件,形如:ssh-i``file``user@host。
默认文件名则可省略
默认配置只需要一下两步
#客户端生成密钥对
ssh-keygen
#上传公钥到服务器
ssh-copy-iduser@hostname#文件会自动上传为服务器特定文件 ~/.ssh/authorized_keys
完成以上步骤后直接使用ssh ColinUbuntu即可登录,服务器地址和密码均不用录入。
3)免密钥文件登录
出于安全考虑,大部分服务器提供商如要求使用密钥文件进行远程登录,如GCP和AWS。下面我们以GCP为例来看如何简化连接操作
A、生成密钥对
ssh-keygen-t-f~/.ssh/[KEY_FILENAME]-C[USERNAME]
chmod400~/.ssh/[KEY_FILENAME]
B、上传公钥
在 Compute Engine 页面左侧菜单找到 元数据 ,将上一步生成的公钥文件(KEY_FILENAME_pub)内容添加到SSH密钥中即可
#上传公钥到服务器
ssh-copy-id user@hostname #文件会自动上传为服务器特定文件 ~/.ssh/authorized_keys
C、连接GCP
使用以下命令登录即可
ssh -i ~/.ssh/KEY_FILENAME[私钥] [USERNAME]@[IP_ADDRESS]
D、简化登录。
以上时GCP官方步骤,使用IdentityFile方式进行登录,每次ssh登录都要通过 -i 选项指定私钥路径比较繁琐,我们可以将密钥文件添加到ssh客户端config中以简化连接命令。
Host *
AddKeysToAgent yes
UseKeychain yes #only for mac
Host 20
HostName IP_ADDRESS
Port 22
User USERNAME
IdentityFile ~/.ssh/id_rsa
虚拟机时钟同步
安装插件
#与aliyun的时间服务器同步
yum install -y ntp
crontab -e
#在文件中输入 (文中1 代表每一分钟都执行一次)
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
// 让文件生效的命令
source 文件名
关闭Linux系统的邮件自动提示功能即可
[root@master ~]# echo "unset MAILCHECK" >> /etc/profile
使文件生效
[root@master ~]# source /etc/profile
# PATH环境变量配置错误后(导致大部分命令不能用) ,可以重新给PATH配置一个正确的变量
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
hadoop中的配置文件说明
core-site
<!--指定HDFS中NameNode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
<!--指定Hadoop运行时产生文件的存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
hadoop-env.sh
<!-- 配置环境变量为静态的,否则远程时会失效 -->
export JAVA_HOME=/opt/module/jdk1.8.0_271
hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/module/hadoop-3.3.0/data/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value> /opt/module/hadoop-3.3.0/data/data</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value> /opt/module/hadoop-3.3.0/data/namesecondary</value>
</property>
<property>
<name>dfs.client.datanode-restart.timeout</name>
<value>30</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop03:9868</value>
</property>
</configuration>
YARN yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
MapReduce配置文件 mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>