1.hadoop环境搭建,linux命令(vi);2.分布式的基本概念,cap理论(遵循此原则开发分布式数据库),hdfs,mapreduce;3.3.1;3.2重点;4.map,reduce过程,优缺点(第一二个版本);5.hbase,nosql;6.6.3;7.sqoop;8.Zookeeper,yarn,mapreduce优缺点解决问题
分布式和集群
分布式:多台机器,每台机器上有不同的组件
集群:多台机器,每台机器上部署相同的组件
Linux操作系统
操作系统概念
1.os是管理计算机硬件和软件资源的程序
2.裸机:没有操作系统的机器
3.os也提供一个让用户与系统交互的操作界面
Linux操作系统=linux Kernel+GNU软件及系统软件+必要的应用程序
SSH
SSH协议
SSH为Secure Shell的缩写,是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议。 在Linux中,SSH的主要用途有:用户加密实现远程登录、服务器之间的免密登录。 SSH协议默认采用RSA算法实现非对称加密,需要两个密钥:公开密钥(public key:简称公钥)和私有密钥( private key:简称私钥)。 公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。
SSH加密实现远程登录
企业中,Linux服务器通常位于远程机房中,用户不方便直接在机房操作;
可以使用支持SSH协议的软件,通过远程登录操作访问服务器,并且SSH协议可以实现对传输内容的加密。
原理如图所示。
Linux常用基础命令
Linux文件系统
文件管理系统:操作系统中负责管理和存储文件信息的软件机构
目录树结构:从斜杠/根目录开始
当前路径(.):也叫当前工作目录,当下用户所属的位置;
相对路径:相对当前工作目录开始的路径,会随当前路径变化而变化;
绝对路径:不管工作目录在哪,绝对路径都是从/根目录开始,唯一不重复。
特殊符号
. 目录或者文件名字以.开始表示是隐藏的文件,如果路径以.开始表示当前路径
.. 当前目录的上一级目录
~ 当前用户的home目录,比如root用户home目录是/root
/ 根目录
Linux命令帮助手册
Linux常用操作命令
Tips
命令属于死东西,属于多用多会,不用就忘的知识,孰能生巧;
++Tab键++ 可以实现++自动补全和提示++,要合理使用;
++history命令++ 可以显示历史执行记录,或者使用++方向键++来切换前后执行过的命令;
ls
bash
ls path
ls -a path # 查看所有文件 包括隐藏文件
ls -l =ll # 查看文件详细信息 包括权限 类型 时间 大小等
ll -h path # 表示以人性化的显示内容
ll * # *通配符表示任意字符 ?表示有且只有一个字符
cd
bash
pwd #查看自己当前所在目录
cd path #注意自己写的是相对还是绝对的 还可以结合特殊符
号使用
cd ./ # .表示目前所在的目录
cd / #根目录
cd ../ #目前目录位置的上一层目录
cd ~ #表示home目录
mkdir touch rm
bash
[root@node1 ~]# mkdir /a/b/c #在此路径下创建一个目录
mkdir: cannot create directory '/a/b/c': No such file or directory
[root@node1 ~]# mkdir -p /a/b/c #如果父目录不存在就建一个(确保父目录名称存在)
[root@node1 ~]# rm -rf /a/b/c #强制直接删除,一旦执行,被删除的文件和目录将无法恢复。
[root@node1 ~]# rm -rf /a
-f #强制删除 不给与提示,无需用户确认
-r #递归删除 针对文件夹
-rf #杀伤力极大 问问自己在干什么
坐牢眼:rm -rf /*
[root@node1 ~]# touch a #创建一个空文件,无任何内容。
[root@node1 ~]# rm -i a #删除文件a,-i显示相关信息
cp mv
bash
cp source destination
mv source_file(文件) dest_file(文件) #将源文件名 source_file 改为目标文件名 dest_file
mv source_file(文件) dest_directory(目录) #将文件 source_file 移动到目标目录 dest_directory中
mv source_directory(目录) dest_directory(目录) #目录名 dest_directory 已存在,将
source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则
source_directory 改名为目录名 dest_directory
mv source_directory(目录) dest_file(文件) #出错
cat more tail
++cat(concatenate)命令++:用于连接文件并打印到标准输出设备如console控制台上。适合小文件内容查看。
++more 命令++:类似cat,不过会以一页一页的形式显示,更方便使用者逐页阅读,翻页结束自动退出。适合大文件 查看。按space键翻下一页,按b往回(back)上一页
++tail 命令++:用于查看文件的结尾部分的内容。 -n 用于显示行数,默认为10,即显示 10 行的内容。 -f 用于实时显示文件动态追加的内容。会把文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 文件有更新,就可以看到最新的文件内容。
tar
bash
-c 或--create 建立新的备份文件。
-x 或--extract或--get 从备份文件中还原文件。
-v 或--verbose 显示指令执行过程。
-f <备份文件>或--file=<备份文件> 指定备份文件。
# tar cvf 打包名.tar 文件或者目录
[root@node1 test]# ll
-rw-r--r-- 1 root root 0 Aug 10 19:27 1.txt
-rw-r--r-- 1 root root 0 Aug 10 19:27 2.txt
[root@node1 test]# tar -cvf test.tar 1.txt 2.txt
1.txt
2.txt
[root@node1 test]# ll
-rw-r--r-- 1 root root 10240 Aug 10 19:28 1.txt
-rw-r--r-- 1 root root 0 Aug 10 19:27 2.txt
-rw-r--r-- 1 root root 20480 Aug 10 19:28 test.tar
# tar xvf 打包名.tar
# tar xvf 打包名.tar -C指定解包目录
[root@node1 test]# ll
-rw-r--r-- 1 root root 20480 Aug 10 19:28 test.tar
[root@node1 test]# tar xvf test.tar
1.txt
2.txt
[root@node1 test]# ll
-rw-r--r-- 1 root root 10240 Aug 10 19:28 1.txt
-rw-r--r-- 1 root root 0 Aug 10 19:27 2.txt
-rw-r--r-- 1 root root 20480 Aug 10 19:28 test.tar
bash
-z 或--gzip或--ungzip 通过gzip指令处理备份文件。
最重要的搭配: tar -zxvf xxxxx.tar.gz
[root@node1 test]# ll
-rw-r--r-- 1 root root 10240 Aug 10 19:28 1.txt
-rw-r--r-- 1 root root 0 Aug 10 19:27 2.txt
[root@node1 test]# tar zcvf test.tar.gz 1.txt 2.txt
[root@node1 test]# tar zcvf test.tgz 1.txt 2.txt
[root@node1 test]# ll
-rw-r--r-- 1 root root 10240 Aug 10 19:28 1.txt
-rw-r--r-- 1 root root 0 Aug 10 19:27 2.txt
-rw-r--r-- 1 root root 142 Aug 10 19:35 test.tar.gz
-rw-r--r-- 1 root root 142 Aug 10 19:35 test.tgz
[root@node1 test]# tar zxvf test.tar.gz #解压到当前目录
1.txt
2.txt
[root@node1 test]# tar zxvf test.tar.gz -C /root/ #-C参数
可以设定解压到指定目录
1.txt
2.txt
Linux常用系统命令
date cal
bash
date命令:用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记。
cal(calendar)命令:用于用于显示当前或者指定日期的公历。
[root@node1 linux02]# date
Tue May 18 14:44:13 CST 2021
[root@node1 linux02]# date +"%Y-%m-%d %H:%M:%S"
2021-05-18 14:44:53
[root@node1 linux02]# cal
May 2021
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
free df(内存,磁盘使用率查看)
bash
free命令:用于显示内存状态。会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以
及系统核心使用的缓冲区等。
df(英文全拼:disk free)命令:用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。
[root@node1 linux02]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 38G 1.5G 36G 5% / #重点关注这一行
/dev/sda1 1014M 152M 863M 15% /boot
/dev/mapper/centos-home 19G 33M 19G 1% /home
tmpfs 378M 0 378M 0% /run/user/0
tmpfs 378M 0 378M 0% /run/user/1000
#内存使用情况
[root@node1 linux02]# free -h
total used free shared buff/cache available
Mem: 3.7G 257M 3.0G 11M 467M 3.2G
Swap: 3.9G 0B 3.9G
ps jps(进程查看)
bash
ps (英文全拼:process status)命令:用于显示当前进程的状态,类似于 windows 的任务管理器。
jps命令:这是JDK自带的命令,专门用于查看本机运行的java进程情况。
#在安装了jdk的情况下 有一个命令专门用于查看本机运行的java进程。
jps
[root@node1 ~]# jps #必须在安装好jdk之后可以使用
-bash: jps: command not found
#查看本机运行的所有进程
ps -ef | grep 进程名
#通常根据查询的进程号 结合kill -9 进程号 杀死进程
vi/vim文本编辑器
vi/vim编辑器的核心设计思想:让程序员的手指始终保持在键盘的核心区域, 就能完成所有的编辑操作。
vim /path/file
如果打开的文件不存在,此时就是新建文件,编辑器左下角会提示new file
如果文件已经存在,此时就打开这个文件,进入命令模式
在使用vim编辑器的过程中,如果发现打开的文件内容不符合预期,可以检查一下,文件路径是否正确?
命令模式(Command mode)
命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。 此模型下,不能自由进行文本编辑。
输入模式(Insert mode)
也就是所谓的编辑模式、插入模式。 此模式下,才可以对文件内容进行自由编辑。
++命令模式<-->输入模式++
i 进入到编辑输入模式后,定位到当前光标前面
o 进入到编辑输入模式后,在当前行的后面添加一行空行(当前行的下一行)
输入模式下按ESC退回到命令模式
底线命令模式(Last line mode)
以:开始,通常用于文件的保存、退出。
++命令模式<-->底线命令模式++
在命令模式下,输入:进入底线命令模式。
常用的底线命令有:
:q 退出
:w 保存
:wq 保存退出
:wq! 强制保存退出
提示:在命令模式下按下shift + zz,可以实现快速的保存退出。