万字长文|大数据学前准备之Linux入门笔记(附资料)(一)

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 对于大数据学习而言,Linux运维可以说是必备的技能。可以不研究的过于高深,但是基本的操作和使用一定要熟练。Linux的学习需要大量的实践,本文从linux的基本知识,实战操作,到常用的指令与软件安装等都有总结。也是为了在掌握Linux的同时,也为今后的大数据学习做好准备。

本文共九章,从最基础到实际操作,希望大家多动手,多练习。

image.png

零、计算机与操作系统


确实有很多的朋友是非计算机相关专业的,但是也要接触Linux。

如果直接进入系统的学习是有一定难度的,所以就有计算机基础的章节,大佬们可以忽略本章。。。

1、电脑是什么?

我小的时候电脑还是个稀有的物件,大概是初中的时候,家里才有一个第一个台式机,而现在几乎家家都有一台电脑了。

电脑的定义不用多说,可以协助人们做大量的运算。通过输入的设备把信息传递给他,他经过运算就可以将计算结果反馈出来。

所以,观察一下电脑,台式机比较明显,笔记本都整合在了一起,但其实就分为三部分:

输入单元:键盘,鼠标等等

主机部分:看不见的那部分,里边有CPU,内存等等

输出单元:屏幕,打印机等等

好了,这三部分理解了以后,就差主机里边的东西不好理解,这也很多同学买电脑被坑的主要部位。。

这里有一个形象的比喻,来说明主机部分的几个硬件的作用:

CPU:脑袋瓜子——判断和控制身体各部分的活动

内存:脑袋中放置正在被思考的数据的区块——有点绕,比如环境,语言这些互动的信息,需要进行思考和处理的

硬盘:脑袋中的记忆区块——和内存不同,回忆就放在了记忆深处

主板:神经系统——把所有重要的元件连接起来

显卡:脑袋中的影像——将眼睛看见的转化成影像

电源:心脏——提供动力

可见最重要的就是CPU了,而这些设备都有计算单位(容量,速度等等)

容量单位:电脑对数据判断是通过电路的通电与否,所以只认识 0和1。0/1这个单位称之为bit。bit太小了,所以每份数据用8个bits来记录。

1 Byte = 8 bits 不过随着数据越来越大Byte也不够用,就有了下面的一切

image.png

也就是常说的 KB MB GB。。。

2、电脑架构与各种设备元件

下面简单说一下电脑的架构,买电脑的时候会用到。

CPU主要型号有Intel和AMD两个品牌。随着发展呢,性能也在不断的提高,就是计算的速度了,虽然这个比较复杂,但是CPU的性能排名被整理了出来,称之为天梯图,好坏很清晰的就能看出来。

笔记本CPU天梯图_2021最新笔记本CPU性能排行天梯图-太平洋电脑网diy.pconline.com.cn/tiantitu/nbcpu/

内存也是经过了一定的发展,最近的内存都是DDR(Double Data Rate)类型了,分为DDR2、DDR3、DDR4。听说DDR5也快出来了。数据越大,速度就越快。

内存多通道设计,内存要传输数据,宽度当然是越大越好,这就有了双通道的设计。所以大多主板上会有两个8GB的内存条,而不是一个16GB的。

显卡对图形的显示至关重要,如果电脑要用来打游戏,画面不断的变化,还有3D效果,那就要主要显卡的选择了,同样显卡也有天梯图。

显卡天梯图_显卡性能天梯图_2021最新显卡排行天梯图-太平洋电脑网diy.pconline.com.cn/tiantitu/gpu/

硬盘与存储设备。电脑总需要记录和读取数据的。比如软盘(暴露年龄的),硬盘,u盘,光盘等等。硬盘是圆形的,需要转动来进行读写。为了提升硬盘传输速度,硬盘与主板的连接接口也经过了多次的改版。

SATA接口的速度对比

image.png

SATA接口由于物理限制,最高也就到200的速度,所有就需要固态硬盘了。

SAS接口

image.png

SAS过于昂贵,目前大部分还是SATA接口。

USB接口

image.png

固态硬盘(Solid State Disk,SSD)

传统硬盘的速度有瓶颈,后来就有产商拿闪存去做大容量的设备。由于不像硬盘那样转动来读写,速度非常的快。

主板为各种设备提供了连接接口,这里有两个概念要注意一下。CMOS与BIOS

CMOS的功能是记录主板上的重要参数。BIOS是可以修改这些参数的程序,一般电脑开机按DEL键就能进入。

当然还有外接设备等知识,这里不做赘述。

3、数据的表示方式

电脑只认识0和1,那么就需要一些表达方式和人类建立联系。

数字系统

一个简单的例子,将十进制表示为二进制。

image.png

文字编码系统

文字是通过一定的编码标准,将01转化为文字。

常见的英文编码表示 ASCII系统 每个符号(英文 数字 符号)占用1bytes的记录,这样就有了256种变化。

中文编码经过了一段时间发展,目前大多采用UTF8编码。

4、软件程序运行

有了硬件,就要让软件运行了,要不电脑的功能就无从发挥。软件分为两类 系统软件 和 应用软件。不过了解软件前,先要了解程序。

机器程序与编译程序

电脑只认识0 1 ,CPU就根据指令对 01做运算。但这样有很大的问题,人类无法直接的理解一堆01的意义,而且也不了解机器的指令,而且这种程序无法携带保存,而且这个过程中要和硬盘各种打交道。为了解决这个问题,就需要让人类写简单的程序,然后通过编译器将这些程序转化为机器程序。

这就是编程语言了,比如JAVA,Python,C等等。

操作系统

把人类写的程序,转化为机器程序,把程序放进内存,执行,并且可以操作各种硬件。这个过程固定重复,所有操作系统就出现了,来解决这一系列的问题。

操作系统(Operating System)其实也是一组程序,但他的重点是管理电脑的各种活动让电脑的一切硬件正常的运转,这些功能就是操作系统核心(Kernel)。为了保护核心,让程序设计师比较容易开发软件,除了核心程序之外,还会提供一组开发接口,也就是系统调用层,软件开发工程师只要遵循公认的标准开发软件,这个软件就可以在核心运行了。

这里有些绕,后面讲linux的时候会具体描述。

应用程序

应用程序是参考操作系统的开发接口所开发出来的。比如office是办公用的,影像处理软件是处理影音数据的等等。

需要注意的是,应用程序和操作系统是有关系的。这就有了兼容性的问题,比如有一些软件就没有办法在mac系统中跑。


一、Linux概述


1991年托瓦斯(Linux Torvalds)开发了Linux的原型,随后Linux迅速的发展,本章就来了解下Linux的历史。

Linux就是一套操作系统。可以与硬件设备交互,也就是说可以部署在手机,电脑,服务器等等设备中。开发者就可以在Linux进行各种软件的研发了。

Linux是开源的,Linux的发展史上非常的有趣,下面我们来回顾一下。

UNIX

早在Linux出现之前二十年,1969年,就有一个稳定的操作系统存在,也就是UNIX。

早期的计算机昂贵,并不是个人能拥有的。都是用于军事或者科技研究,写程序也非常的吃力,多人同时使用都是个大问题。1969年,贝尔实验室的Ken Thompson用组合语言写出了核心程序,将其称为Unics。这个系统提供了一些小工具和文件系统,这就是unix的雏形了。

1973年,Thompson与Ritchie合作,用C语言写出了第一个正式的Unix核心,这个改变也让Unix很容易被移植到不同的机器上。

1977年,Unix的重要分支BSD诞生,增加了很多的工具和编译程序。

1979年,很多公司开始了UNIX的发展,AT&T公司的System V就是其中之一,并且将版权收了回去。

BSD 与 System V是Unix最根本的两个分支。

1984年,x86架构的Minix开始撰写并于两年后诞生。Andrew Tanenbaum教授在看到了版权问题后,决定基于X86架构自己写一套微小的Unix系统,这也就是Minix。

同年,GNU计划与FSF基金会成立。开源与自由成为了软件开发的大趋势。

无数的软件开发开始贡献自己的一份力量:https://www.fsf.org/resources

image.png

1991年,芬兰一个普通研究生购买了自己的PC,显示认真的钻研了Minix系统的代码,随后就以bash,gcc等GNU工具写了一个小小的核心程序。可以在intel的386机器上运行。

没错,就是Linus Torvalds。从此Linux横空出世。

Linux的发展

Torvalds将这个核心放在了网上,因为用了Linux这个目录,这个核心便叫做Linux了。随后Torvalds又对linux进行了不断的改造。

由于Linux是完全开源的额,很快就吸引了大量的开发者加入进来。

由于代码越来越多,Torvalds成立了核心的网站:

https://www.kernel.org/

这群素未谋面的开发者,在1994年完成Linux的核心正式版。version 1.0.

1996年完成了2.0,2011推出了3.0。2015年推出了4.0。

2019年,Linux Kernel 5.0 正式版发布。

这个Torvalds选择的可爱的小企鹅吉祥物,也越来越强大了。如今的Linux已经应用在了各种硬件设备上,电脑,手机,树莓派等等。

image.png

核心版本

后面会讲到,在centos系统中通过 uname -r 就可以获取内核版本号。

比如 3.10.0-1127.19.1.el7.x86_64

主版本.次版本.释出版本-修改版本

在2.6.X版本之前,分为两种:

主次版本为奇数:发展中版本,如2.5.xx

主次版本为偶数:稳定版本,如2.6.XX

不过从3.0版本以后,根据主线版本进行开发,比如3.10就是3.9之后的新的主线版本。

版本号:https://www.kernel.org/releases.html

请注意:后面会提到,核心版本和发布商版本 并不是一回事。

千万不要说我的linux是7.5版本。Linux的版本是3.10,而Centos的版本才是7.5.

Linux发行版

Centos又是什么呢?

Linux其实是一个操作系统最底层的核心,及一些工具。但并不是一个可以完整安装的套件。

为了让更多的人能用上Linux,很多商业公司和团体加入了进来。

简单的说 Linux Kernel + 软件 + 工具 +文档 就构成了完整的Linux发行版。

为了让这种开发不至于混乱,行业制定了一些标准来约束大家。

如FHS https://www.pathname.com/fhs/

LSB https://wiki.linuxfoundation.org/lsb/start

这种发行版大体也可以分为两类:

一种是使用RPM方式安装软件的系统:RedHat,Fedora,SuSE,CentOS等等。

另一种是使用Debian的dpkg方式安装软件的系统:Debian,Ubuntu,B2D等等。

其中 RedHat ,SuSE,Ubuntu为商业公司。

Fedora,CentOS,OpenSuSE,Debian,B2D为开源社群。

他们的官网如下:

RedHat :https://www.redhat.com/

SuSE:https://www.suse.com/

Fedora:https://getfedora.org/

CentOS:http://www.centos.org/

Debian:https://www.debian.org/

Ubuntu:http://www.ubuntu.com/

用于企业环境,大多选择商业的稳定版。

而服务器环境,可以选择Centos。

至于个人电脑,就可以选择炫酷的Ubuntu桌面版啦。

Linux的应用

Linux的应用已经非常的广泛。其实目前我们访问的手机APP,网站等等服务。大部分都是部署在Linux上的。

企业

网络服务器

这是Linux最广泛的应用。各大硬件厂商都是支持Linux的,而且Linux继承了Unix的高稳定性。

企业核心应用

比如数据库,企业内网环境等等。

高性能运算任务

可以理解为大数据运算,Linux的运算性能非常强大。

个人

桌面电脑 目前已经有很多用户在使用linux的桌面版了。

手机 安卓系统就是Google基于Linux核心做的。

嵌入式 路由,智能家电等等。

如何学习

Linux这么牛逼,是不是应该直接看一下内核源码呢?如果想深入研发可以。平时并不需要。

应该是从如何使用好Linux的角度进行学习。

学习基础

要按照下面的步骤学习,打好基础:计算机基础知识,Linux安装与指令,Linux操作系统,vi文本编辑器,Shell脚本,软件安装,网络基础。

选一本好书或者教程

这本鸟哥的Linux的私房菜非常的经典,但是内容很多。也可以通过本教程进行学习。

实践实践

实践太重要,Linux的学习不经过练习是没有任何作用的。所以一定要经常练习。之后的章节也会讲解本地虚拟机环境的搭建,让大家可以在本机上轻松练习Linux。

查找资料

解决问题的能力非常重要,在遇到问题时不要着急求助,先看看自己能不能解决,寻找解决办法。

兴趣

兴趣是最好的老师,Linux是一个非常有趣的系统,不要因为难就放弃。努力学习,会有很多的乐趣发现。


二、CentOS虚拟机环境搭建


在了解了Linux的历史以后,我们知道就要进入实战阶段了。

近些年来计算硬件发展迅速,普通的windows系统计算完全可以虚拟出一台Linux系统来。

因为硬件与操作系统本身都支持了虚拟化的技术(虚拟化技术暂不讨论,感兴趣的同学可以阅读书籍进行学习),同时一些软件支持图形化的方式快速创建虚拟机。

这也极大的方便了我们进行学习,本次我们就是要使用Vmvare软件在Win10系统中完成CentOS系统的安装,为之后的学习提供非常大的便利。

首先请准备好Vmvare软件和CentOS镜像,需要下载的同学可以在大数据流动进行软件的获取。

VMware(中文名威睿) 虚拟机软件,是全球桌面到数据中心虚拟化解决方案的领导厂商。

VMware Workstation是该公司的一款产品,可以非常方便的进行虚拟机的搭建。

安装VMware

我们使用的是VMwareWorkstation 16.1.2进行虚拟机的搭建。

打开安装包以后,按照引导一步步的进行软件的安装。

注意虚拟机安装的位置与激活产品即可。

image.png

安装Centos系统

在Vmvare中新建虚拟机,选择自定义安装。

image.png

选择稍后安装操作系统

image.png

注意选择Linux系统 CentOS7 64位,如果是其他的系统也要做对应的选择。

image.gifimage.png

根据实际情况设置磁盘,内存,CPU。网络选择NAT即可,可以方便联网。

最后把镜像挂载到硬盘上,就可以安装了。

image.png

这一系列操作其实就是我们通过光盘的ISO镜像安装系统的过程,只不过是通过虚拟化的方式完成了。

此时打开虚拟机就进入了CentOS7安装页面。

image.png

设置root用户密码

image.png

重启,虚拟机安装完成!

本章我们介绍了虚拟机安装Centos操作系统的实战,为了以后可以更好的练习。


三、网络与远程连接


CentOS常见有这几种版本:

image.png

建议选择DVD ISO

标准版本安装(服务器安装推荐使用,包含一些基本的软件和图形化界面)

Mini版本,只有必要的软件,自带的软件最少(没有图形化界面),Everything带的软件比较多 很大。

安装好虚拟机进入centos系统中,看到的是这样的界面。

image.png

输入之前设置的用户名密码就可以登入。但是这相当于是看见了机器的界面,在实际工作中我们是不可能一直去机器上操作的,而是需要远程连接机器进行操作。

SSH 为Secure Shell的缩写,专为远程登录会话和其他网络服务提供安全性的协议。可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。

也就是说通过SSH就可以远程并且安全的访问机器了,CentOS默认的SSH服务就是开启的,所以我们只要进行好相关的网络配置就可以远程操作这台机器了。

网络配置

网络配置的目的就是为了让我们的本机与虚拟机的网络互通,可以彼此访问。虚拟机建立之初是没有进行这些网络设置的。

首先设置主机进行网络共享,在win10的网络设置里操作。再看一下vnet8的网络ip,我的是192.168.137.0

image.png

在vmvare的虚拟网络编辑器中,设置ip

image.png

image.png

进入虚拟机进行网卡设置 进入网卡设置目录 cd /etc/sysconfig/network-scripts/ 设置网卡 vi ifcfg-ens33 设置如下(重点是下面几个设置,固定IP)

BOOTPROTO=static

IPADDR=192.168.137.101

NETMASK=255.255.255.0

GATEWAY=192.168.137.1

ONBOOT=yes

设置完成后重启网卡

service network restart

重启后验证上网情况

ping http://www.baidu.com

如果有正常的ms返回证明成功。

image.png

此时证明虚拟机网络已通,可以远程连接操作了。

远程连接

这里推荐的是一款叫做MobaXterm的软件,使用它不仅可以远程SSH连接虚拟机。还可以把连接保存下来,这样的话,我们每次开启虚拟机,然后启动MobaXterm,就可以很方便的进行操作练习了。

软件可以在资料包中获取。

安装好以后打开MobaXterm软件,选择Session按钮,就可以新建一个远程会话。

image.png

选择SSH,并设置好IP,用户名,密码

image.png

登陆成功。左侧是文件目录,可以进行文件的上传下载操作。右侧就是CentOS系统的界面了。

image.png

现在可以进行相关的操作与练习了。



相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
161 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
4月前
|
Linux
Linux源码阅读笔记10-进程NICE案例分析2
Linux源码阅读笔记10-进程NICE案例分析2
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
110 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
2月前
|
大数据 网络安全 数据安全/隐私保护
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
145 5
|
2月前
|
XML 大数据 网络安全
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
74 4
|
4月前
|
Unix Linux 开发工具
linux笔记 diff及patch的制作与使用
这篇文章是关于Linux系统中使用`diff`命令生成补丁文件以及使用`patch`命令应用这些补丁的详细教程和实战案例。
114 2
linux笔记 diff及patch的制作与使用
|
3月前
|
安全 Linux Android开发
Linux CFI (Control-flow integrity)技术相关资料汇总
Linux CFI (Control-flow integrity)技术相关资料汇总
|
4月前
|
分布式计算 资源调度 Hadoop
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
|
4月前
|
Linux
Linux源码阅读笔记13-进程通信组件中
Linux源码阅读笔记13-进程通信组件中
|
4月前
|
消息中间件 安全 Java
Linux源码阅读笔记13-进程通信组件上
Linux源码阅读笔记13-进程通信组件上
下一篇
DataWorks