day01.互联网架构/Linux/YUM 【大数据教程】

day01.互联网架构/linux/yum
【大数据教程】
一、大型互联网架构演变历程
1. 淘宝技术这10年
1.1. 淘宝现状
高并发已经成为当前互联网企业面临的巨大挑战!例如2015年“双十一”全球狂欢节正式落下帷幕,天猫最终交易额也达到了创纪录的912.17亿元!参与交易国家和地区达到232个,双十一支付宝最高峰每秒处理的交易笔数是8.59万笔,在线人数峰值达到4500万。
2009年至2016年历史销售数据:
2016年:覆盖235个国家和地区,交易额超过1207亿元!
2015年:交易额已超912亿元!
2014年:交易额571亿元(最终数字)。
2013年:最终交易额352亿元。
2012年:达到191亿元,其中包括天猫商城132亿元,淘宝59亿元。
2011年2200家店铺参与,天猫双11的销售额已跃升到33.6亿元,淘宝和天猫共52亿。
2010年711家店铺参与,数字提高到9.36亿元;
2009年27个品牌参与,天猫双十一销售额为0.5亿元;
淘宝的核心技术(国内乃至国际的top,这还是2011年的数据)
l 拥有全国最大的分布式hadoop集群(云梯,2000左右节点,24000核cpu,48000gb内存,40pb存储容量)
l 全国分布80+cdn节点,能够自动找寻最近的节点提供服务,支持流量超过800gbps
l 不逊于百度的搜索引擎,对数十亿商品进行搜索,全球最大的电商平台
l 顶尖的负载均衡系统,顶尖的分布式系统,顶尖的互联网思想,功能多样运行极其稳定
l 丰富的生态产业以及先进的数据挖掘技术
l ……很多很多
1.2. 淘宝技术演变,摘自《淘宝技术这十年》
l 马总在2003年4月7日秘密叫来阿里巴巴的十位员工,来到杭州一个隐秘的毛坯房,要求他们在一个月左右的时间内做出一个c2c网站。结果当然还是直接买的快,一个基于lamp架构的网站,原名是phpauction,老美开发的一个拍卖网站。当然必须要做修改才能用。
l 2003年底,淘宝注册用户23万,pv 31万/day,半年成交额3371万
l 很显然mysql无法撑得起如此大的访问量,数据库瓶颈出现了。幸好阿里的dba队伍足够强大,他们使用oracle替代了mysql。oracle那时就已经有了强大的并发性访问设计——连接池,从连接池取连接的耗费比单独建立连接少很多。但是php当时并没有官方提供支持语言连接池特性,于是多隆前辈用google(不会是baidu)搜到了一个开源的sql relay,于是数据库软件方面的瓶颈暂时解决了。
l 随之而来的是面临硬件性能瓶颈,阿里买了emc的san存储设备,加上oracle高性能rac,硬件容量也暂时没问题了。
l 因为sql relay的问题实在过于严重,2004年于是淘宝终于做出了跨时代的决策——使用java重写网站。
l 淘宝请了sun的高级工程师来帮忙做java架构。那么他们是如何做到修改编程语言而不改变网站使用呢——模块化替换,今天写好了a模块,另开一个新域名,将连接指向该模块,同时别的模块不变,等到全部模块完成的时候,原域名放弃。sun公司坚持使用ejb作为控制层,加上使用ibatis作为持久层,一个可扩展且高效的java ee应用诞生了。
l 送走sun的大牛们之后,阿里的数据存储又遇到了瓶颈,于是忍痛买了一台ibm小型机,也就有了ioe(ibm + oracle + emc)这样的传说
l 2004年底,淘宝注册用户400万,pv 4000万/day,全网成交额10个亿。
l 2005年spring诞生了,早闻spring框架在web应用不可或缺,而在淘宝网,spring也达到了rod johnson设计它的目的——替代ejb。
l 2005年底,淘宝注册用户1390万,pv 8931万/day,商品数目1663万个。
l 考虑到未来的发展,这样的设施架构只是勉强可以应付现在的要求。于是,cdn技术派上用场了,一开始使用商用的chinacache,后来使用章文嵩博士搭建低耗能cdn网络,淘宝网的性能越来越好了。
l 2006年底,淘宝注册用户3000万,pv 15000万/day,商品数目5000万,全网成交额169亿元。
l 淘宝在2007年之前,使用netapp的商用存储系统,但是仍然不够应付迅速增长的趋势。同年google公布了gfs的设计思想,参照它的思想,淘宝也开发了自己的文件系统——tfs每个用户在tfs上拥有1gb的图片存储空间,这些都得益于tfs集群的文件存储系统以及大量的图片服务器。淘宝使用实时生成缩率图,全局负载均衡以及一级和二级缓存来保证图片的访问优化与高效访问。
l 淘宝的服务器软件使用tengine,一个被优化过的nginx模块。
l 淘宝分离出了uic(user information center),供所有模块调用。多隆前辈再次为其编写出了tdbm,完全是基于内存的数据缓存(参考了memcached)。再然后,淘宝将tbstore和tdbm合并,写出了tair,一个基于key-value的分布式缓存数据系统。然后升级了自己的isearch系统。
l 2007年底,淘宝注册用户5000万,pv 25000万/day,商品数目1个亿,全网成交额433亿元。
l ...
l dubbo是阿里巴巴内部的soa服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。dubbo自2011年开源后,已被许多非阿里系公司使用。
2. 技术发展历程总结
2.1. 单节点架构
2.2. 集群架构
2.3. 集群+分布式架构
二、linux安装
1/安装vmware软件
2/验证vmware是否安装成功
(有些同学的机器在安装vmware的时候会出现一个错误:virtual xt,这需要重启电脑进入bios,开启这个虚拟加速开关)
(有些windows8/10系统会出现虚拟网卡安装失败的现象,这需要关闭windows的驱动程序安装签名验证)
3/启动vmware后的软件界面
4/新建虚拟机
5/选择自定义配置
6/选择硬件兼容标准
7/选择是否让vmware安装操作系统
8/选择将要安装的操作系统的类型
9/选择虚拟系统文件存放的目录
10/为虚拟机分配cpu/内存
11/选择虚拟机所连接的网络类型
12/选择为虚拟机创建一块新的虚拟磁盘
13/虚拟机创建完毕后,可以调整硬件配置(删除打印机、声卡等无用硬件)
14/往虚拟机的光驱中插入一张linux安装光盘的iso镜像文件
15/启动虚拟机,将自动进入centos安装界面
接下来按提示不断下一步即可(中间可以选择安装模式:desktop、minimal、server等,建议先用desktop,因为安装的工具软件比较全)
16/centos系统安装完后,需要设置网络
首先在vmware中,查看nat网络模式中的虚拟路由器的网段和ip地址
17/接下来设置windows的vmnet8的ip地址和虚拟机中centos的ip地址,即可联网
nat虚拟网络配置
桥接和hostonly虚拟网络配置
二、linux操作系统概述
1.linux简介
linux是一种自由和开放源码的操作系统,存在着许多不同的linux版本,但它们都使用了linux内核。linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机
2.linux介绍
linux出现于1991年,是由芬兰赫尔辛基大学学生linus torvalds和后来加入的众多爱好者共同开发完成
3.linux特点
多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,良好的用户界面,出色的速度性能
开源
4.centos
主流:目前的linux操作系统主要应用于生产环境,主流企业级linux系统仍旧是redhat或者centos
免费:redhat 和centos差别不大,基于red hat linux 提供的可自由使用源代码的企业centos是一个级linux发行版本
更新方便:centos独有的yum命令支持在线升级,可以即时更新系统,不像redhat 那样需要花钱购买支持服务!
centos6.x
centos官网:http://centos.org/
centos搜狐镜像:http://mirrors.sohu/centos/
centos网易镜像:http://mirrors.163/centos/
centos北京理工大学镜像:http://mirror.bit.edu/centos/
三、linux安装
环境:windows7 ,oracle virtualbox, centos6.7
bin (binaries)存放二进制可执行文件 sbin (super user binaries)存放二进制可执行文件,只有root才能访问 etc (etcetera)存放系统配置文件 usr (unix shared resources)用于存放共享的系统资源 home 存放用户文件的根目录 root 超级用户目录 dev (devices)用于存放设备文件 lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块 mnt (mount)系统管理员安装临时文件系统的安装点 boot 存放用于系统引导时使用的各种文件 tmp (temporary)用于存放各种临时文件 var (variable)用于存放运行时需要改变数据的文件四、linux常用命令
1.linux命令格式
命令格式:命令 -选项 参数
如:ls -la /usr
ls:显示文件和目录列表(list)
常用参数:
-l (long) -a (all) 注意隐藏文件、特殊目录.和.. -t (time)
2.linux命令分类
内部命令:属于shell解析器的一部分
cd 切换目录(change directory)
pwd 显示当前工作目录(print working directory)
help 帮助
外部命令:独立于shell解析器之外的文件程序
ls 显示文件和目录列表(list)
mkdir 创建目录(make directoriy)
cp 复制文件或目录(copy)
查看帮助文档
内部命令:help + 命令(help cd)
外部命令:man + 命令(man ls)
3.操作文件或目录常用命令
pwd显示当前工作目录(print working directory)
touch 创建空文件
mkdir 创建目录(make directoriy)
-p 父目录不存在情况下先生成父目录 (parents)
cp 复制文件或目录(copy)
-r 递归处理,将指定目录下的文件与子目录一并拷贝(recursive)
mv 移动文件或目录、文件或目录改名(move)
rm 删除文件(remove)
-r 同时删除该目录下的所有文件(recursive)
-f 强制删除文件或目录(force)
rmdir 删除空目录(remove directoriy)
cat显示文本文件内容 (catenate)
more、less 分页显示文本文件内容
head、tail查看文本中开头或结尾部分的内容
haed -n 5 a.log 查看a.log文件的前5行
tail -f b.log 循环读取(follow)
4.常用命令
wc 统计文本的行数、字数、字符数(word count)
-m 统计文本字符数
-w 统计文本字数
-l 统计文本行数
find 在文件系统中查找指定的文件
find /etc/ -name aaa
grep 在指定的文本文件中查找指定的字符串
ln 建立链接文件(link)
-s 对源文件建立符号连接,而非硬连接(symbolic)
top 显示当前系统中耗费资源最多的进程
ps 显示瞬间的进程状态
-e /-a 显示所有进程,环境变量
-f 全格式
-a 显示所有用户的所有进程(包括其它用户)
-u 按用户名和启动时间的顺序来显示进程
-x 显示无控制终端的进程
kill 杀死一个进程
kill -9 pid
df 显示文件系统磁盘空间的使用情况
du 显示指定的文件(目录)已使用的磁盘空间的总
-h文件大小以k,m,g为单位显示(human-readable)
-s只显示各档案大小的总合(summarize)
free 显示当前内存和交换空间的使用情况
netstat 显示网络状态信息
-a 显示所有连接和监听端口
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-p 显示建立相关链接的程序名
ifconfig 网卡网络配置详解
ping 测试网络的连通性
5.备份压缩命令
gzip 压缩(解压)文件或目录,压缩文件后缀为gz
bzip2 压缩(解压)文件或目录,压缩文件后缀为bz2
tar 文件、目录打(解)包
gzip命令:
命令格式:gzip [选项] 压缩(解压缩)的文件名
-d将压缩文件解压(decompress)
-l显示压缩文件的大小,未压缩文件的大小,压缩比(list)
-v显示文件名和压缩比(verbose)
-num用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6
bzip2命令:
命令格式:bzip2 [-cdz] 文档名
-c将压缩的过程产生的数据输出到屏幕上
-d解压缩的参数(decompress)
-z压缩的参数(compress)
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6
tar命令:
-c 建立一个压缩文件的参数指令(create)
-x 解开一个压缩文件的参数指令(extract)
-z 是否需要用 gzip 压缩
-j 是否需要用 bzip2 压缩
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在 f 之后要立即接档名(file)
6.关机重启命令
shutdown系统关机
-r 关机后立即重启
-h 关机后不重新启动
halt 关机后关闭电源 shutdown -h
reboot 重新启动 shutdown -r
7.学习linux好习惯
善于查看man page(manual)等帮助文档
利用好tab键
掌握好一些快捷键
ctrl + c(停止当前进程)
ctrl + r(查看命令历史)
ctrl + l(清屏,与clear命令作用相同)
五、vi/vim编辑器
vi / vim是unix / linux上最常用的文本编辑器而且功能非常强大。
只有命令,没有菜单。
1.vim工作模式
2.插入命令
3.定位命令
4.替换/取消命令
5.删除命令
6.常用快捷键
六、用户和组账户管理
lin...