第一步 :选择创建新的虚拟机
第二步:选择默认典型,下一步
第三步:选择默认的稍后安装操作系统
第四步:选择linux和对应的安装版本
第五步:安装位置选择资源充足的盘
第六步:磁盘大小更改成40G,大数据组件需要较多的存储,资源不充足最少 20G
第七步:完成之后界面
第八步:选择上面虚拟机中的设置修改
#内存:改为 2-4GB(电脑总内存 8GB就每台给 2G,电脑内存 16GB就每台给 4G)
#CPU:可以选择1*2或 2*2核心的配置
#ISO 镜像选择 :一定选择自己准备的ISO镜像的路径
#网络:此处选择 nat模
第九步:选择第一行的install安装
默认进入选型是第二个,用鼠标左键点入进入黑窗口,按键盘的向上键跳到第一行,选择Enter确认安装想要把鼠标跳出黑窗口,按ctrl+alt键
第十步:等待出现这个界面,选择英文即可
第十一步进入配置修改界面
#修改时间,日期,时区选择亚洲上海,选择左上角 done保存退出
#更改安装包的方式,默认 mininal安装代表最小化;更改安装方式为 GNOME desktop(这是桌面化安装生产机房一般采专用此方式 ),完成后左 上角选择 done。
#配置 hosts主机名和网络,此处我们只设置一下 host名字,进入系统后采用命令行的方式修改也可以
我们将host名设置为 node01,选择 apply应用,左上角 done退出。其中 ens33是网卡的名字
第十二步:选择右下角开始安装
第十三步:设置root用户密码和普通用户的密码
#更改 root密码: ********
#设置普通用户名称 test,密码 *********
第十四步:等待安装
第十五步:安装完成,选择reboot重启
#设置 lisense许可证
第十六步:一路next
4)网络配置
选择虚拟网络编辑器
选择 nat模式,然后点击右下角的更改设置
设置子网 IP:192.168.52.0
子网掩码:255.255.255.0
个人电脑网络设置:找到网络连接中的VMnet8
网卡设置:#vim /etc/sysconfig/network-scripts/ifcfg-ens33 进入网卡设置
编辑
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#需编辑
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=4f81f256-131f-4fdb-9365-1ae4c7882aa2
DEVICE=ens33
#需编辑
ONBOOT=yes
IPADDR=192.168.52.100
NETMASK=255.255.255.0
GATEWAY=192.168.52.1 DNS1=8.8.8.8
#重启网卡 service network restart
测试网络是否连通外网:ping www.baidu.com
到此 centos7.4安装完成,网络也配置成功
5)Linux远程连接工具
Linux系统中是通过 SSH服务实现的远程登录功能,默认 ssh服 务端口号为 22。Window系统上Linux 远程登录客户端有 SecureCRT, Putty, SSH Secure Shell,XShell等
SecureCRT安装:https://blog.csdn.net/qq_39052513/article/details/100272502
3.Linux文件与目录结构
1)文件
Linux系统中一切皆文件
2)目录结构
4.linux中文本编辑器
vim是从 vi 发展出来的一个文本编辑器 。代码补完、编译及错误跳转等方便编程的功能特别丰富
1.进入插入模式
i: 插入光标前一个字符
I: 插入行首
a: 插入光标后一个字符
A: 插入行未
o: 向下新开一行 ,插入行首
O: 向上新开一行 ,插入行首
2.进入末行模式
在命令模式下 ,用户按 “:”键即可进入末行模式
3.退出
:q 退出
:q! 退出并不保存
:w 保存 :wq 保存并退出
:x 保存并退出
4.查找命令
/: str查找
n: 下一个
N:上一个
5.替换命令
把 abc全部替换成 123
:%s/abc/123/g---末行模式下,将当前文件中的所有 abc替换成 123。如果不使用 g, 则只会替换每一行的第一个 abc
:1, 10s/abc/123/g---末行模式下,将第一行至第 10行之间的 abc替换成 123
6.vim里面执行shell下命令
末行模式里输入 !,后面跟命令
7.进入命令模式
ESC:从插入模式或末行模式进入命令模式
8.移动光标
h: 左移
j: 下移
k: 上移
l: 右移
M: 光标移动到当前屏幕的中间行
L: 光标移动到当前屏幕最后一行行首
gg: 光标移动 文件开头
G: 光标移动到文件末尾
G: 移动到指定行 ,行号 G (扩展:打开文件时跳转指定行 ,vi 文件名 +行数 )
w: 向后一次移动一个字
b: 向前一次移动一个字
{: 按段移动 ,上移
}: 按段移动 ,下移
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
Ctr-f: 向下翻一屏
Ctr-b: 向上翻一屏
9.撤销命令
u: 一步一步撤销
Ctr-r: 反撤销
10.删除命令
x: 删除光标后一个字符 ,相当于 Del
X: 删除光标前一个字符 ,相当于 Backspace
dd: 删除光标所在行 ,n dd 删除指定的行数
D: 删除光标后本行所有内容 ,包含光标所在字符
d0: 删除光标前本行所有内容 ,不包含光标所在字符
dw: 删除光标开始位置的字 ,包含光标所在字符
11.复制粘贴
yy: 复制当前行 ,n yy 复制 n 行
p: 在光标所在位置向下新开辟一行 ,粘贴
12.替换操作
r: 替换当前字符
R: 替换当前行光标后的字符
13.文本行移动
>>: 文本行右移
<<: 文本行左移
14.重复命令
.: 重复上一次操作的命令
15.可视模式
v: 按字符移动 ,选中文本
V: 按行移动 ,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除 ,复制 ,左右移动
5.linux常用基本命令
1)基础快捷键
ctrl + c 停止进程
ctrl+l 清屏;彻底清屏是: reset
ctrl + q 退出
善于用 tab键补全 提示 (更重要的是可以防止敲错 )
上下键 查找执行过的命令
ctrl +alt
2)文件命令
#pwd 显示当前工作目录的绝对路径
#ls,ll,ll -a
#cd 进入到某一个目录下
#mkdir 创建文件夹
#rmdir 删除文件夹
#touch 创建文件
#cp 复制文件 /文件夹
#cp -r 递归复制,多级目录
#mv 移动文件 夹/重命名
#rm 删除文件
#rm -rf 强制删除文件不需要确认
#cat 查看文件
#more 查看文件
#less 查看文件
#echo 输出 #head 查看文件头部
#tail 查看文件末尾
#tail -f 实时查看文件末尾
#nl 文件带行号标准输出
# > 覆盖
# >> 追加
#ln -s 目标目录 软链接地址 创建 软链接
rm -rf 软链接地址 删除软连接
ln -snf 新目标目录 软链接地址 修改软连接
# history 查看已经执行过历史命令
3)文本处理类命令
wc [option] [file]...
-l: 统计行数
-c: 统计字节数
-w;统计单词数
tr: 转换字符或删除字符
tr '集合 1' '集合 2'
tr -d '字符集合 '
cut:
-d字符:指定分隔符
-f#: 指定要显示字段
单个数字:一个字段
逗号分隔的多个数字:指定多个离散字段
-:连续字段,如 3-5;
例子:cut test.txt -f "1,3" -d " "------# 以空格分开每一行并输出第 1个和第 3个字段
sort [option] file...
-f: 忽略字符大小写;
-n: 比较数值大小;
-t: 指定分隔符
-k: 指定分隔后进行比较字段
-u: 重复的行,只显示一次;
uniq:移除重复的行
-c:显示每行重复的次数
-d:仅显示重复过的行
-u: 仅显示不曾重复的行
4)系统信息命令
#date 查看当前系统时间
#data -s 修改时间
#w 显示登陆用户
#uname -a 查看系统内核
#cat /proc/cpuinfo 查看 cpu信息
#cat /proc/meminfo 查
5)压缩/解压命令
#tar -xvf file.tar 解压 .tar结尾的
#tar -zxvf file.tar.gz 解压 .tar.gz文件
#tar -cf file.tar file 创建包含 files的文件 file.tar
#gzip -d file.gz 将 file.gz解压缩为 file
6)网络命令
#ping host(主机名 ) 网络是否连通
#telnet ip 端口 网络是否连通
#curl url 调用
#ifconfig 查看本机 ip等信息
#telnet ip 端口 查看端口是否占用
(没有这个命令执行 yum -y install telnet )
#wget file 下载文件
#tcpdump tcp port 端口 抓包 tcp
#hostname 查看主机名
7)权限命令
1.文件权限命令:
#chmod 777 file 为所有用户添加读,写,执行权限
#chmod 755 file 为所有者添加 rwx权限,为组和其他用户添加
rx权限
2.文件所属用户和用户组权限命令:
#chown hadoop:hadoop file 将 file的用户和用户组都改为 hadoop
8)用户管理命令
useradd 用户名 添加新用户
useradd -g 组名 用户名 给某个组创建用户
passwd 用户名 设置用户密码
cat /etc/passwd 查看创建了那些用户
Su 用户名 切换用户
userdel 用户名 删除用户但保存用户主目录
userdel -r 用户名 用户和用户主目录,都删除
whoami 显示自身用户名称
who am i 显示登录用户的用户名
usermod -g 更改用户组 用户名
例子:
2.修改配置文件
[root@hadoop101 ~]#vi /etc/sudoers 修改 /etc/sudoers 文件,找到下面一行 (91行),在 root下面添加一行,
如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoopALL=(ALL) ALL
或者配置成采用 sudo命令时,不需要输入密码
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoopALL=(ALL) NOPASSWD:ALL
修改完毕,现在可以用 hadoop帐号登录,然后用命令 sudo ,即可 获得 root权限进行操作。
9)用户组管理命令
groupadd 组名 添加组
groupdel 组名 删除组
groupmod -n 新组名 老组名 指定工作组的新组名
cat /etc/group 查看创建了哪些组
10)搜索查找命令
1.find查找文件或者目录
常用: find / -name file 查找 /目录下 file文件
2.grep 过滤查找及“ “|”管道符 (详细使用见下一章中的 grepgrep)
1.管道符,“ ,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
2.grep常常跟在 |的后面做过滤查找
3.反转 grep -v
4.示例
#查找某文件在第几行 ls | grep -n test
#查找某进程 ps -ef | grep PID
#查看日志中含有 errer cat file |grep error
3.which 查找命令
white 命令
11)磁盘分区挂载命令
df -h 查看磁盘使用 /剩余空间
fdisk -l 磁盘分区
mount 挂载
umount 卸载
12)进程管理命令
UID 用户 ID
PID 进程 ID
ps aux | grep xxx 查看系统中所有进程
ps -ef | grep xxx 可以查看子父进程之间的关系
kill -9 PID 强制杀死进程
top 查看所有进程 /cpu/内存 /负载
netstat -anp |grep 进程号 查看该进程网络信息
netstat -nlp | grep 端口号 查看网络端口号占用情况
13)crond系统定时任务
Crontab -e 编辑定时文件
参考文档:https://blog.csdn.net/qq_22172133/article/details/81263736
14)rpm包管理与yum管理
1.rpm相关命令:
rpm -qa|grep 包名 查找已经安装的 rpm某包
rpm -ivh 包名 安装 rpm包
rpm -e 包名 删除 rpm包
rpm -e -- nodeps 软件包 删除 rpm包不检查依赖
2.yum源管理:详情见链接文档
https://blog.csdn.net/qingfenggege/article/details/80394564
3.yum在线安装 lrzsz上传下载工具
yum -y install lrzsz
15)ssh免密
1.ssh是什么?
SSH(SecureShell),是建立在应用层基础上的安全协议,其 SSH客户端适用于多种平台,可以有效防止远程管理过程中的信息泄露问题。
2.配置 hadoop用户 ssh免密:
ssh-keygen -t rsa
三台机器在 hadoop用户下,执行以下命令将公钥拷贝到 node01服 务器上面去
ssh-copy-id node01
node01在 hadoop用户下,执行以下命令,将 authorized_keys拷贝 到 node02与 node03服务器
cd /home/hadoop/.ssh/ scp authorized_keys node02:$PWD
scp authorized_keys node03:$PWD
16)防火墙
systemctl stop firewalld.service 关闭防火墙
systemctl status firewalld.service 查看防火墙状态
systemctl disable firewalld.service 禁止开启启动防火墙
6.linux实用故障排查
1)排查思路
大数据集群运行在linux系统上总会遇见各种各样的问题,我们要定位问题,基本从这几个方面入手排查: cpu, 内存,磁盘 IO,网络, GC等。
2) cpu
一些概念:多核,超线程,CPU频率( 2.2GHZ)(节能模式,普通模式,超能模式,bios里设置, 搭集群要注意下这个参数尽量关闭节能模式) bios里可以关闭 。
#1 查看物理 CPU个数
cat /proc/cpuinfo |grep “physical id”|sort |uniq|wc -l
#2查看逻辑 cpu个数
cat /proc/cpuinfo |grep “processor”|wc -l
#3 在生产集群中我们通常通过 top来查看 cpu的使用率来判断系统
的负载情况 ,Top 然后按 1,可以看到 cpu的使用率
3)内存
#1,常见内存大小 64 G— 128G-- 256G— 512G,通过 free -g来查看系 统内存是否不足
4)磁盘IO
#1磁盘种类:
sata(150M/s左右 ) sas(300 M/S左右) ssd(最快也最贵)一般磁盘 2T-4T,服务器支持的最大存储也不同,比较常见的 48T,一 般服务器可以支持 12-24块盘 。
#2磁盘 io的查看: 可以定位是否是因为 io过大导致性能下降
iostat -mx 2
如果没有这个命令:yum install -y sysstat
#3 df -h 查看磁盘空间
#4 df -T 查看磁盘的格式化的格式,主流一般是 xfs和 ext4,系统盘默认是 xfs,后续添加数据盘尽量也是 xfs格式这样统一比较好,也方便写脚本批量挂盘
#5 lsblk 能够查看盘与分区以及 ssd盘,用 fdisk查看盘可能识别不到ssd
#6 fdisk -l 查看磁盘与未挂载的磁盘和分区信息