大数据总结

Hadoop 学习

1.hvie 不是一个完整的数据库,其中最大的限制是hive不支持记录级别的更新,插入,删除。但是用户可以通过查询生成新表或者将查询结果导入到文件中

PYTHON学习

  1. 可以把模块想像成导入到python以增强其功能的扩展。需要使用命令import来导入块。
    例子:>>>import math >>>math.floor(23.6)

  2. python idle 的打开方式
    假定你的python装在C盘,那就去C:\Python27下面搜索一个叫 idle.bat 的文件比如C:\Python27\Lib\idlelib\idle.bat

  3. python 转义字符为“\”
    el:>>>’let\’s go’

  4. raw_input和input区别
    raw_input 会把所有输入当原始输入
    input是假设用户输入的是合法python表达式
    区别:
    尽量使用raw_input

  5. 原始字符串 以r开头
    el:print‘hello \nworld’输出: hello 隔行 world
    el:printr‘hello \nworld’输出 hello \nworld

第二章 列表和元组

  1. 序列是python的一种数据结构。序列中每一个元素都被分配一个序号——即元素的位置,也称为索引。
  2. Python包含6种内建序列,包括列表、元组、字符串、unicode字符串、buffer对象和xrange对象。列表和元组的主要区别在于列表可以修改,元组不能修改。通常情况下列表可以取代元组。列表的元素通过逗号分隔。
  3. 序列相加也就是序列的连接操作,两种相同类型的序列才可以进行连接。
  4. 序列的乘法是对原始序列进行重复n次。
  5. 成员资格函数 in 实例: ‘a’ in ‘afd’ 返回为布尔值true
  6. List函数显示序列所有成员 实例:list(‘hello’) 返回[‘h’, ‘e’, ‘l’, ‘l’, ‘o’]
  7. 删除序列元素del
    实例: b=[1,2,3] ;执行del b2结果b=[1,2];

PYTHON PIP是什么?
pip是一个安装和管理 Python 包的工具 ,是easy_install的替代品

  1. python:open/文件操作
    open/文件操作 f=open(’/tmp/hello’,‘w’)
    #open(路径+文件名,读写模式)
    #读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式如:‘rb’,‘wb’,'r+b’等等
    读写模式的类型有:
    rU或Ua以读方式打开, 同时提供通用换行符支持 (PEP 278)
    w 以写方式打开,
    a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
    r+ 以读写模式打开
    w+ 以读写模式打开 (参见 w )
    a+ 以读写模式打开 (参见 a )
    rb以二进制读模式打开
    wb以二进制写模式打开 (参见 w )
    ab 以二进制追加模式打开 (参见 a )
    rb+ 以二进制读写模式打开 (参见 r+ )
    wb+ 以二进制读写模式打开 (参见 w+ )
    ab+ 以二进制读写模式打开 (参见 a+ )

注意:

1、使用’W’,文件若存在,首先要清空,然后(重新)创建,
2、使用’a’模式,把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建。
f.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串)
file.readline() 返回一行
file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行
for line in f: print line #通过迭代器访问
f.write(“hello\n”) #如果要写入字符串以外的数据,先将他转换为字符串.
f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).
f.seek(偏移量,[起始位置])
用来移动文件指针
偏移量:单位:比特,可正可负
起始位置:0-文件头,默认值;1-当前位置;2-文件尾
f.close() 关闭文件

  1. python is、 id 、== 的差别,cmp方法
     Id()函数可以获得对象的内存地址,如果两个对象的内存地址是一样的,那么这两个对象肯定是一个对象。和is是等价的
     python解释器在对值很小的int和很短的字符串的时候做了一点小优化,只分配了一个对象,让它们id一样了。
     is :比对2个变量的对象引用(对象在内存中的地址,即id() 获得的值)是否相同。如果相同则返回True,否则返回False。换句话说,就是比对2个变量的对象引用是否指向同一个对象。
     ==:比对2个变量指向的对象的内容是否相同
     cmp函数的用法,原型为cmp(x, y),作用是比较两个对象x,y,如果x大于y返回正数,相等则返回0,否则返回负数

  2. range()函数
    range函数工作方式类似于分片。它包含下限,不包含上限。如range(0,10)的区间为[0,10)

  3. python中的深拷贝(deepcopy)和浅拷贝(copy)介绍
     利用切片操作和工厂方法list方法拷贝就叫浅拷贝,只是拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已。
     利用copy中的deepcopy方法进行拷贝就叫做深拷贝,外围和内部元素都进行了拷贝对象本身,而不是引用。

  4. Python split()方法
    描述
    Python split()通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分隔num个子字符串
    split()方法语法:
    str.split(str="", num=string.count(str)).
    参数
    str – 分隔符,默认为空格。
    num – 分割次数。
    返回值
    返回分割后的字符串列表。
    实例:

str=“abc 123 456”
print str
abc 123 456

print str.split(’ ')
[‘abc’, ‘123’, ‘456’]

print str.split(’ ',1)
[‘abc’, ‘123 456’]

print str.split(’ ',0)
[‘abc 123 456’]

  1. python os.path模块
    os.path.abspath(path) #返回绝对路径
    os.path.basename(path) #返回文件名
    os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。
    os.path.dirname(path) #返回文件路径
    os.path.exists(path) #路径存在则返回True,路径损坏返回False
    os.path.lexists #路径存在则返回True,路径损坏也返回True
    os.path.expanduser(path) #把path中包含的""和"user"转换成用户目录
    os.path.expandvars(path) #根据环境变量的值替换path中包含的” n a m e ” 和 ” name”和” name{name}”
    os.path.getatime(path) #返回最后一次进入此path的时间。
    os.path.getmtime(path) #返回在此path下最后一次修改的时间。
    os.path.getctime(path) #返回path的大小
    os.path.getsize(path) #返回文件大小,如果文件不存在就返回错误
    os.path.isabs(path) #判断是否为绝对路径
    os.path.isfile(path) #判断路径是否为文件
    os.path.isdir(path) #判断路径是否为目录
    os.path.islink(path) #判断路径是否为链接
    os.path.ismount(path) #判断路径是否为挂载点()
    os.path.join(path1[, path2[, …]]) #把目录和文件名合成一个路径
    os.path.normcase(path) #转换path的大小写和斜杠
    os.path.normpath(path) #规范path字符串形式
    os.path.realpath(path) #返回path的真实路径
    os.path.relpath(path[, start]) #从start开始计算相对路径
    os.path.samefile(path1, path2) #判断目录或文件是否相同
    os.path.sameopenfile(fp1, fp2) #判断fp1和fp2是否指向同一文件
    os.path.samestat(stat1, stat2) #判断stat tuple stat1和stat2是否指向同一个文件
    os.path.split(path) #把路径分割成dirname和basename,返回一个元组
    os.path.splitdrive(path) #一般用在windows下,返回驱动器名和路径组成的元组
    os.path.splitext(path) #分割路径,返回路径名和文件扩展名的元组
    os.path.splitunc(path) #把路径分割为加载点与文件
    os.path.walk(path, visit, arg) #遍历path,进入每个目录都调用visit函数,visit函数必须有
  2. Python 多进程并发操作
    样例:
    from multiprocessing import Pool
    from time import sleep
    def f(x):
    fori in range(5):
    print '%s — %s ’ % (i, x)
    sleep(3)
    def main():
    pool = Pool(processes=5) # set the processes max number 3
    fori in range(100,105):
    result = pool.apply_async(f, (i,))
    pool.close()
    pool.join()
    ifresult.successful():
    print ‘successful’
    if name == “main”:
    main()
    输出:
    0 — 100
    0 — 101
    0 — 102
    0 — 103
    0 — 104
    1 — 100
    1 — 101
    1 — 102
    1 — 104
    1 — 103
    2 — 100
    2 — 101
    2 — 104
    2 — 103
    2 — 102
    3 — 100
    3 — 101
    3 — 104
    3 — 103
    3 — 102
    4 — 100
    4 — 101
    4 — 104
    4 — 102
    4 — 103

说明:先创建容量为5的进程池,然后将f(i)依次传递给它,运行脚本后利用ps aux | grep pool.py查看进程情
况,会发现最多只会有三个进程执行。pool.apply_async()用来向进程池提交目标请求,pool.join()是用来等待进程池中的worker进程执行完毕,防止主进程在worker进程结束前结束。但必pool.join()必须使用在pool.close()或者pool.terminate()之后。其中close()跟terminate()的区别在于close()会等待池中的worker进程执行结束再关闭pool,而terminate()则是直接关闭。result.successful()表示整个调用执行的状态,如果还有worker没有执行完,则会抛出AssertionError异常。

apply_async(func[, args[, kwds[, callback]]])函数
主进程循环运行过程中不等待apply_async的返回结果,在主进程结束后,即使子进程还未返回整个程序也会就退出。

  1. pandas
    Pandas是一个开源的Python数据分析库。Pandas把结构化数据分为了三类:
    • Series,1维序列,可视作为没有column名的、只有一个column的DataFrame;
    • DataFrame,同Spark SQL中的DataFrame一样,其概念来自于R语言,为多column并schema化的2维结构化数据,可视作为Series的容器(container);
    • Panel,为3维的结构化数据,可视作为DataFrame的容器;
    DataFrame较为常见,因此本文主要讨论内容将为DataFrame。DataFrame的生成可通过读取纯文本、Json等数据来生成,亦可以通过Python对象来生成:

常见错误
1.1"SyntaxError: Non-ASCII character ‘/xe6’
调试,查看由于第一行代码都是中文的注释,中文会出现乱码。经过查阅,找到解决方法,即在代码开始的第一行添加如下一条语句:

This Python file uses the following encoding: utf-8

  1. date_range()
    在pandas中有一个非常常用的函数date_range,尤其是在处理时间序列数据时,这个函数的作用就是产生一个DatetimeIndex,就是时间序列数据的索引。这个函数的使用方式就是如下所示:
    函数原型
    pandas.date_range(start=None, end=None, periods=None, freq=’D’, tz=None, normalize=False, name=None, closed=None, **kwargs)
    参数
    • start:string或datetime-like,默认值是None,表示日期的起点。
    • end:string或datetime-like,默认值是None,表示日期的终点。
    • periods:integer或None,默认值是None,表示你要从这个函数产生多少个日期索引值;如果是None的话,那么start和end必须不能为None。
    • freq:string或DateOffset,默认值是’D’,表示以自然日为单位,这个参数用来指定计时单位,比如’5H’表示每隔5个小时计算一次。
    • tz:string或None,表示时区,例如:’Asia/Hong_Kong’。
    • normalize:bool,默认值为False,如果为True的话,那么在产生时间索引值之前会先把start和end都转化为当日的午夜0点。
    • name:str,默认值为None,给返回的时间索引指定一个名字。
    • closed:string或者None,默认值为None,表示start和end这个区间端点是否包含在区间内,可以有三个值,’left’表示左闭右开区间,’right’表示左开右闭区间,None表示两边都是闭区间。
    返回值
    DatetimeIndex

  2. numpy.random.randn()
    numpy中有一些常用的用来产生随机数的函数,randn就是其中一个,randn函数位于numpy.random中,函数原型如下:

  3. DataFrame
    DataFrame翻译为数据框,是一种数据组织方式,这么说你可能无法从感性上认识它,举个例子,你大概用过Excel,而它也是一种数据组织和呈现的方式,简单说就是表格,而在在pandas中用DataFrame组织数据,如果你不print DataFrame,你看不到这些数据

  4. Windows环境下安装PyMySQL(已安装Anaconda)
    我的Anaconda安装目录为c:\Anaconda2
    1.cmd进入到C:\Anaconda2\Scripts
    2.执行pip install PyMySQL
    截图:

  5. Python split()方法

    数据挖掘与R语言

  6. 数据挖掘基础
    1.1数据挖掘基本任务
    数据挖掘基本任务包括用分类与预测、聚类分析、关联规则、时序模式、偏差检测、智能推荐等,帮企业提取数据中蕴含的价值
    1.2数据挖掘建模过程

  7. R语言简介

  8. 数据探索
    3.1数据质量分析
    数据质量分析是数据挖掘中数据准备过程的重要一环,数据质量分析的主要任务是检查原始数据中是否存在脏数据。脏数据包括:
     缺失值
     异常值
     不一致的值
     重复数据或含义特殊符号(如#、KaTeX parse error: Unexpected character: '' at position 17: …*等) 脏数据内容 处理方式 ̲ 缺失值 1.删除缺失值记录…、*等)

重要概念
标准差
也被称为标准偏差,或者实验标准差,公式为
标准差是一组数据平均值分散程度的一种度量。一个较大的标准差,代表大部分数值和其平均值之间差异较大;一个较小的标准差,代表这些数值较接近平均值。

方差
设X是一个随机变量,若 存在,则称
为X的方差,记为D(X),Var(X)或DX,其中E(X)指的是对X的预期值,而X是实际值1 。即 称为方差,而 称为标准差(或均方差)。它与X有相同的量纲。标准差是用来衡量一组数据的离散程度的统计量2
方差刻画了随机变量的取值对于其数学期望的离散程度。(标准差、方差越大,离散程度越大。否则,反之)
若X的取值比较集中,则方差D(X)较小,若X的取值比较分散,则方差D(X)较大。
因此,D(X)是刻画X取值分散程度的一个量,它是衡量取值分散程度的一个尺度。
变异系数
当需要比较两组数据离散程度大小的时候,如果两组数据的测量尺度相差太大,或者数据量纲的不同,直接使用标准差来进行比较不合适,此时就应当消除测量尺度和量纲的影响,而变异系数可以做到这一点,他是原始数据标准差与原始数据平均数的比。CV没有量纲,这样就可以进行客观比较了。事实上,可以认为变异系数和极差、标准差和方差一样,都是反映数据离散程度的绝对值。其数据大小不仅受变量值离散程度的影响,而且还受变量值平均水平大小的影响。
变异系数 C•V =(标准偏差 SD / 平均值Mean )× 100%

协方差
协方差分析是建立在方差分析和回归分析基础之上的一种统计分析方法。方差分析是从质量因子的角度探讨因素不同水平对实验指标影响的差异。一般说来,质量因子是可以人为控制的。回归分析是从数量因子的角度出发,通过建立回归方程来研究实验指标与一个(或几个)因子之间的数量关系。但大多数情况下,数量因子是不可以人为加以控制的。
协方差用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。
期望值分别为E[X]与E[Y]的两个实随机变量X与Y之间的协方差Cov(X,Y)定义为:

从直观上来看,协方差表示的是两个变量总体误差的期望。

随机变量
随机变量(random variable)表示随机试验各种结果的实值单值函数。例如某一时间内公共汽车站等车乘客人数,电话交换台在一定时间内收到的呼叫次数等等,都是随机变量的实例。
数学期望
离散型随机变量的一切可能的取值xi与对应的概率pi乘积之和称为该离散型随机变量的数学期望1 (设级数绝对收敛),记为E(x)。
离散程度
所谓离散程度(Measures of Dispersion),即观测变量各个取值之间的差异程度。它是用以衡量风险大小的指标。可用来测度观测变量值之间差异程度的指标有很多,在统计分析推断中最常用的主要有极差、平均差和标准差等几种。
中位数
将一组观察值从小到大按顺序排列,位于中间的那个数据。如果观察值个数为n,当n为奇数和为偶数时,中位数为:

N为偶数时,

分位数

众数
指的是数据集中出现最频繁的数

相关系数
相关关系是一种非确定性的关系,相关系数是研究变量之间线性相关程度的量。

3.2数据特征分析
3.2.1数据分布分析
 定量数据分布分析
步骤:

  1. 就极差(最大值-最小值)
  2. 确定组数和组距
  3. 决定分点
  4. 列出频率分布表
  5. 绘制频率分布直方图

 定性数据分布分析
采用扇形图计算各类数据占比

3.2.2对比分析
适合指标间的纵向和横向对比、时间序列的比较分析,关键点在指标间的可比性和对比标准。
3.2.3周期性分析(时间序列)
3.2.4贡献度分析(2/8定律)
3.2.5相关性分析
分析连续变量之间线性相关程度的强弱,并用适当的统计指标表示出来的过程称为相关分析。主要方法:

  1. 直接绘制散点图 (适合判定两个变量间的线性相关性)

  2. 散点图矩阵(多个指标间的线性相关性)

  3. 相关系数
    相关关系是一种非确定性的关系,相关系数是研究变量之间线性相关程度的量。

  4. 数据预处理
    在数据挖掘过程中,数据预处理工作量占整个过程60%。
    4.3数据变换
    4.3.2数据规范化
    通过将属性值按比例缩放,使之落入一个小的特定区间,如0.0~1.0,对属性规范化。对于涉及神经网络或距离度量的分类算法(如最近邻分类)和聚类,规范化特别有用。对于基于距离的方法,规范化可以帮助防止具有较大初始值域的属性(如income)与具有较小初始值域的属性(如二元属性)相比权重过大。有许多数据规范化的方法,最小-最大规范化、z-score规范化和按小数定标规范化。
    最小-最大规范化:

z-score规范化

4.3.2连续属性散列化
目的:
离散化方法:

  1. 等宽法
  2. 等频法
  3. 聚类

4.4数据规约
数据规约的意义:
 降低无效、错误数据对建模影响
 降低存储数据成本
 通过产生更小但保持原数据完整性的新数据集,提高分析和挖掘效率
4.4.1属性规约
通过属性合并来创建新属性维数,或者直接通过删除不相关的属性来减少数据维数,从而提高数据挖掘效率。
方法:
 合并属性
 逐步向前选择
 逐步向后删除
 决策树归纳
 主成分分析
4.4.2数值规约
通过选择替代的,较小的数据来减少数据量,包括有参数方法和无参数方法类。有参数方法是使用一个模型来评估数据,秩序存放参数,不需存放实际数据,如回归(线性回归和多元回归)。无参数方法就需要存放实际数据,如直方图、聚类、抽样。

  1. 挖掘建模
    常用的模型:分类与预测、聚类分析、关联规则、时序模式、偏差检测
    5.1分类与预测
    分类和预测是预测问题的两种主要类型,分类主要是预测分类标号(离散标号)而预测主要是建立连续值函数模型。预测给定自变量对应的应变量的值。
    5.1.1实现过程
  1. 分类
    分类是构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别。
    分类算法分两步:1.学习步,通过归纳分析训练样本集来建立分类模型得到分类规则;2.分类步,先用已知的测试样本集评估分类规则的准确率,如果标准率是可以接受的,则使用该模型对样本集进行预测。
  2. 预测
    预测是建立两种或两种以上变量间相互依赖的函数模型,然后进行预测或控制。
    预测模型实现也有两步,1.通过训练集建立预测属性(数值型)函数模型;2.模型通过校验后进行预测和控制
    5.1.2分类与预测算法
    分类与预测算法:回归分析(线性回归、非线性回归、主成分回归)、决策树、神经网络
    5.1.3回归分析
    回归分析是通过建立模型来研究变量之间相互关系的密切程度、结构状态以及进行模型预测的一种有效工具,在工商管理、经济、社会、医学和生物领域运用广泛。
    5.1.4决策树
    决策树方法在分类、预测、规则提取等领域应用广泛。
    ID3算法简介及基本原理
    ID3算法基于信息熵来选择最佳测试属性。它选择当前样本集中具有最大信息增益值的属性作为测试属性;样本集的划分则依据测试属性的取值进行,测试属性有多少不同的取值就将样本集划分为多少子样本集。
    ID3算法具体流程
  3. 对当前样本集合,计算所有属性的信息增益
  4. 选择信息增益最大的属性作为测试属性,把测试属性取值相同的样本划为同一个子样本集;
  5. 若子样本集的类别属性只含有单个属性,则分支为叶子节点,判断其属性值并标上响应的符号,然后返回调用处;否则对子样本集递归调用本算法。

    Scala编程
    Scala入门初探
    Scala代码块每行都缩进两个空格,是推荐的缩进风格。

函数式语言的主要特征之一就是,函数是头等结构。

函数字面量语法:

  1. Scala入门再探
    3.2列表
    列表元素不可变
    列表类List中定义了”:::”方法实现列表叠加功能。
    List定义了”::”,发音为”cons”,它可以把新元素组合到现有列表最前端,
    Nil是空列表
    为什么列表不支持添加(append)操作?
    List类没有提供append操作,因为随着列表变长,append耗时将呈线性增长。而使用“::”作前缀则仅仅耗用固定时间
    3.3元组
    元组也是很有用的容器对象,元组元素不可变;但与列表不同,元组可以包含不同类型的元素。

  2. Scala类和对象
    4.1类、字段和方法
    修饰符:在sacla里吧成员公开的方法是不显示地指定任何访问修饰符。
    方法参数:传递给方法的任何参数都可以在方法内部使用,但是参数不能被重新赋值

Linux学习

  1. 定时任务文件编辑
    文件路径 :vim /etc/crontab
  2. vmstat模式输出
    vmstat的输出分为以下几种模式:
    (1)、VM MODE (普通选项)
    (2)、DISK MODE(-d选项)
    (3)、DISK PARTITION MODE(-p选项)
    (4)、SLAB MODE (-m选项)

(1)、VM MODE

Procs
r: The number of processes waiting for run time.(等待运行的进程数)
r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
b: The number of processes in uninterruptible sleep.(不中断进程数)
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
Memory
swpd: the amount of virtual memory used.(使用的虚拟内存数)
swpd切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
free: the amount of idle memory.(空闲内存)
free 当前的空闲页面列表中内存数量(k表示)
buff: the amount of memory used as buffers.(用作buffer的内存数量)
buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
cache: the amount of memory used as cache.(用作cache的内存数量)
cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。
inact: the amount of inactive memory. (-a option)(非活动内存)
active: the amount of active memory. (-a option)(活动中的内存)
Swap
si: Amount of memory swapped in from disk (/s).(从硬盘中导进内存的swap数量,单位:KB/秒)
so: Amount of memory swapped to disk (/s).(导入硬盘的swap数量,单位:KB/秒)
IO
bi: Blocks received from a block device (blocks/s).(来自块设备的块数,单位:块/秒)
bo: Blocks sent to a block device (blocks/s).(发往块设备的块数,单位:块/秒)
System
in: The number of interrupts per second, including the clock.(每秒中断数)
cs: The number of context switches per second.(每秒上下文切换数)

  1. cs列表示每秒产生的上下文切换次数,如当cs比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。
    CPU
    These are percentages of total CPU time.(占总CPU时间的百分比)
    us: Time spent running non-kernel code. (user time, including nice time)(用户态占用CPU百分比)
    us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
    sy: Time spent running kernel code. (system time)(内核态占用CPU百分比)
    sy列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy大于 80%说明可能存在CPU不足。
    id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.(空闲CPU百分比)
    wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.(IO等待占CPU百分比)
    wa列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽
  2. 防火墙
     查询防火墙是否关闭
    serviceiptables status

 关闭防火墙

  1. vi /etc/selinux/config

  2. 设置SELINUXTYPE=(targeted,disabled)

  3. setenforce 0生效
     点2下ctrl切换显示手动触摸显示屏

  4. 清空文件内容
    echo “”>dypwRraw7.log

  5. Ubuntu进入命令行
    Ctrl + Alt + T

  6. 永久修改主机名
    Vi /etc/hostname

  7. 安装vim

sudo apt-get install vim

  1. 查看当前文件目录下子目录大小
    du -ah --max-depth=1
    a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度。

  2. 查看文件夹下的文件个数(当前目录的文件数)
    ls -l |grep “^-”|wc -l

  3. 给用户配置sudo权限
    运行visudo命令

  4. 配置虚拟机网桥连接

安装完VirtualBox设定网路时选择默认的NAT模式,Guest就可顺利联网了,但是这种方式比较死板,要作更有弹性的变化,应该采用桥接模式(Bridged),这里的桥接模式就如同VMware中的Bridged模式,Host与Guest在局域网(LAN)中的地位是相等的。

  1. 在基于Debian和 Ubuntu 的系统上,首先要安装含有建立虚拟网络设备 ( TAP interfaces ) 的工具uml-utilities 和桥接工具 bridge-utils:

sudo apt-get install uml-utilities

sudo apt-get install bridge-utils

2.为了使你的虚拟机能够访问网络接口,你必须将运行虚拟主机的用户的用户名(通常是你的ubuntu登录用户名)添加到uml-net用户组(请用你的用户名替换其中的“vboxuser”):

sudogpasswd -a vboxuseruml-net

注意:为了使改动生效,请重新启动你的电脑。

  1. 向你的Debian或者ubuntu操作系统描述你要添加的虚拟网络设备,编辑 /etc/network/interfaces:

sudo vim /etc/network/interfaces

  1. 首次使用需要激活刚才建立的虚拟网络接口和网络桥:

sudo /sbin/ifup tap0

sudo /sbin/ifup br0

这个步骤只需要做一次,下次主机重新启动时,这个接口和桥将自动激活。

4.因为需要用桥接,所以要删除掉原来的network-manager

sudo apt-get remove network-manager
5.配置/etc/network/interfaces文件
sudo vim /etc/network/interfaces,/etc/network/interfaces配置信息如下
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 172.16.4.177
network 172.16.4.0
netmask 255.255.0.0
broadcast 172.16.1.255
gateway 172.16.1.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

5.将interfaces文件修改如上IP为主机上外网的IP
然后sudo /etc/init.d/networking restart

dhclient
sudo ip addr flus dev eth0 清空etho
修改/etc/network/interfaces文件
将br0中broadcast 注销
设置bro新的 ip
重新启动虚拟机
———————————————————————————————————————
12. 主机和虚拟机之间设置共享文件
sudo mount -t vboxsf software /mnt/softwares ,其中 software是在虚拟机配的共享文件夹名称,/mnt/softwares 是虚拟机内部配置的共享路径
13. 设置dns
sudo vim /etc/resolv.conf
在resolv.conf 文件中配置nameserver 114.114.114.114

解决resolv.conf被重写问题
你虽然配置了DNS,但是每次重启虚拟机或重启网络后/etc/resolv.conf文件就会被重写,也就是又恢复原样了,你以前的配置就不存在了,每次都要手动配置是极不可取的,所以这步是必须的,首先我们要搞清楚resolv.conf被重写的原因和机制,这在不同Ubuntu版本下有所差异。那怎么知道呢?一般resolv.conf文件一开头就告诉你了。
解决该问题其实有两种办法,不怕麻烦的想理解原理的请参照方法一(与版本有关),怕麻烦的不想折腾的自觉转到方法二(与版本无关)。
方法一:与版本有关
a)Ubuntu 12.10
打开/etc/resolv.conf后可看到开头的一句话:
复制代码
代码如下:

Generated by NetworkManager

说明resolv.conf这个文件是由NetworkManager这个程序生成的(对应的是network-manager服务),那么解决办法也就来了:我们关掉network-manager即可,命令如下:
复制代码
代码如下:
sudo service network-manager stop
或者
sudo /etc/init.d/network-manager stop

但是这种方法不是一劳永逸的,因为每次重启系统后还是会自动启动这个服务,因此我们需要完全禁止network-manager启动即可。
编辑network manager的配置文件/etc/init/network-manager.conf:
复制代码
代码如下:
sudo vi /etc/init/network-manager.conf

注释掉其中的start on部分即可:
复制代码
代码如下:

network-manager - network connection manager

The Network Manager daemon manages the system’s network connections,

automatically switching between the best available.< p>description “network connection manager”< p>#start on (local-filesystems

and started dbus

and static-network-up)

stop on stopping dbus

< p>expect fork
respawn< p>script

set $LANG so that messages appearing on the GUI will be translated. See LP: 875017

if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE LC_MESSAGES LC_ALL
fi
b)Ubuntu 13.04
不知道Ubuntu从哪个版本开始不是由NetworkManager生成resolv.conf的了,至少在13.04下是这样的,因为resolv.conf开头写着这样一句话:
复制代码
代码如下:

Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

DO NOT EDIT THIS FILE BY HAND – YOUR CHANGES WILL BE OVERWRITTEN

说是由resolvconf生成,NetworkManager仍然存在,因为它是DHCP上网不可缺少的,但此时禁止NetworkManager启动已经不管用了,因为resolv.conf已经不归它管了,我们试着看看resolv.conf与resolvconf有啥关系,查看:
复制代码
代码如下:
hadoop@Master:~$ ll /etc/resolv.conf
lrwxrwxrwx 1 root root 29 9月 11 2013 /etc/resolv.conf -> …/run/resolvconf/resolv.conf
说明/etc/resolv.conf 其实只是一个link,它实际上指向的是 /run/resolvconf/resolv.conf,这也就解释了为什么每次重启都会被重写的原因,你改的只是个link,对原文件没有影响,而每次重启这个link还得加载原文件的内容,所以对link的修改无效。
解决方法就是:修改真实的原文件,如下:
复制代码
代码如下:
sudo vi /etc/resolvconf/resolv.conf.d/head

发现这个文件与/etc/resolv.conf文件一模一样,这就对了,在里面加入你自己的nameserver即可,这样每次重启就不会被重写了。
PS:网上也有人说修改/etc/resolvconf/resolv.conf.d/base这个文件也行,我没有亲自测试,感兴趣的可用自己测试。
14. WIN7通过ssh无法连接虚拟机
在win7下通过ssh连接虚拟机的ubuntu,连接失败,提示信息见下图:

ssh : connect to host localhost port 22: Connection refused,原来没有装sshd,也就是openssh-server。
输入命令: sudo apt-get install openssh-server

  1. Ubuntu14.04 64位 安装JDK1.7
    在Ubuntu14.04 64位 安装JDK1.7过程笔记。
    1 新建文件夹
    linuxidc@linuxidc:~$ sudo mkdir /usr/lib/jvm
    2 解压文件
    linuxidc@linuxidc:~$ sudo tar zxvf jdk-7u71-linux-x64.tar.gz -C /usr/lib/jvm
    3 打开设置环境变量文件
    linuxidc@linuxidc:~$ sudo gedit /etc/profile
    [sudo] password for linuxidc:
    (gedit:6266): IBUS-WARNING **: The owner of /home/linuxidc/.config/ibus/bus is not root!
    (gedit:6266): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
    (gedit:6266): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
    4 设置环境变量
    #set java environment
    export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_71
    export JRE_HOME= J A V A H O M E / j r e e x p o r t C L A S S P A T H = . : {JAVA_HOME}/jre export CLASSPATH=.: JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib: J R E H O M E / l i b e x p o r t P A T H = {JRE_HOME}/lib export PATH= JREHOME/libexportPATH={JAVA_HOME}/bin: P A T H 5 设 置 默 认 的 J D K l i n u x i d c @ l i n u x i d c :   PATH 5 设置默认的JDK linuxidc@linuxidc:~ PATH5JDKlinuxidc@linuxidc:  sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_71/bin/java 300
    update-alternatives: using /usr/lib/jvm/jdk1.7.0_71/bin/java to provide /usr/bin/java (java) in 自动模式
    linuxidc@linuxidc-ThinkPad-Edge-E545:~$ sudo update-alternatives --install /usr/bin/javac ja

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值