linux重要目录与大数据

Posted 微纯册

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux重要目录与大数据相关的知识,希望对你有一定的参考价值。

linux重要目录与大数据

  • 异常情况
  • 文件目录
  • 文件目录结构说明
  • 重要目录数据信息说明
  • 网络不通排查流程
  • etc目录下重要的数据文件
  • usr目录下重要的数据文件
  • var目录下重要的数据文件
  • proc目录重要的数据文件
  • 系统优化
  • 环境变量补充
  • 大数据概念

 

异常情况

编辑过程中链接出现中断,再次编辑文件会提示相应信息

解决方法:

删除隐藏文件

rm -f .oldboy.txt.swp

出现的原因:

1)编辑状态突然出现了中断
2)文件被多个人使用
\'\'\'总结:出现了隐藏文件,没有及时删除\'\'\'

 

文件目录结构说明

结构特点说明

1.linux根下面的目录是一个有层次的树状结构
2.linux每个目录可以挂载在不同的设备(磁盘)上挂载

实践操作实现挂载过程

1.拥有一个存储设备(光驱)

2.找到相应光驱

# ls /dev/cdrom
# ls -l /dev/cdrom

3.进行挂载操作

mount /dev/cdrom  /aaa/(挂载点目录一定存在)

4.确认是否挂载成功

ls /aaa

目录结构发展过程

一块盘:根目录
二块盘:/usr目录
继续扩展>>>:FHS文件系统目录规范

 

重要目录数据信息说明

网卡配置文件

cat /etc/sysconfig/network-scripts/ifcfg-eth0 

\'\'\'如果要编辑网卡文件可以先提前备份一份数据\'\'\'
cp XXX /tmp/XXX.bak
ps:esc +.  # 调用上一个命令最后一个参数信息
# 网卡文件修改后,必须重启网络服务
    systemctl restart network

初始化软件安装

# 提供命令参数补全功能 systemctl
yum install -y vim tree bash-completion

网卡文件参数说明

BOOTPROTO=none: 启动协议 获取IP地址的方法 自动获取 dhcp手动设置

DEFROUTE=yes: 开启了默认路由 网络(默认路由 动态路由 静态路由)

NAME=eth0:网卡逻辑名称

UUID=...:在虚拟化软件标识一些硬件设备信息

DEVICE=eth0:网卡设备名称

ONBOOT=yes:确保网卡是否处于激活状态

# 当虚拟机无法访问外网的时候,也许使该项为no,应该改为yes

IPADDR=10.0.0.200: IP地址设置

PREFIX=24:  设置子网掩码确保一个局域网里面可以连接多少台主机默认253

GATEWAY=10.0.0.254:网关信息,不同局域网之间进行通讯的必经关卡 需要和虚拟编辑器中nat网卡设置保持一致

IPV6_PRIVACY=no

DNS=114.114.114.114:DNS 域名解析服务 

DNS服务器地址设置

阿里云dns服务器地址:

223.5.5.5

223.6.6.6

通用dns服务器地址:

114.114.114.114

114.114.114.119

利用移动dns服务器(谷歌dns服务器)了解即可:

8.8.8.8

使用网关地址充当dns服务器地址:

10.0.0.254

网卡域名解析配置文件 

/etc/resolv.conf

 

配置文件操作

vim /etc/resolv.conf
nameserver 114.114.114.114
nameserver 223.5.5.5

配置完成后立即生效

网卡的dns配置优先于resolv.conf文件中的配置

主机名称配置文件

centos6主机名称配置文件 

/etc/sysconfig/network

centos7主机名称配置文件所在路径

cat /etc/hostname

修改主机名称:

1.利用命令修改主机名称

hostname  xxx
dash # 刷新

ps:修改完成,需要重新连接,才能命令生效

2.编辑修改配置文件

vim /etc/hostname 

 

 

centos7有特殊修改主机名称方式

hostnamectl set-hostname  oldboyds05

本地域名解析文件

vim /etc/hosts

网站页面信息变更方面:

小公司  直接调试线上服务器

大企业   直接调试测试服务器测试访问  模拟真实环境访问

eg:

# vim /etc/hosts
10.0.0.200  www.jd.com  # 指定映射关系

 

网络不通排查流程

1. 确认网关地址是否通畅

2. 确认网卡配置是否正确

3. 确认网络管理服务关闭

systemctl stop NetworkManager  # 关闭网络管理服务
systemctl disable NetworkManager  # 禁用网络管理服务
systemctl status NetworkManager  # 查看网络管理服务

 

 

 

etc目录下重要的数据文件

系统挂载信息表

cat /etc/fstab

 

 

临时挂载:

mount /dev/cdrom  /mnt  

永久挂载:

修改一个和开机自动挂载相关的配置文件 /etc/fstab

设备文件 挂载点
/dev/第一个分区 /boot
/dev/第二个分区 swap
/dev/第三个分区  /
blkid 

 

总结:实现磁盘存储设备,挂载操作永久生效,开机自动加载挂载信息

存放linux系统命令操作信息的文件

vim  /etc/rc.local

 

 

系统正常加载启动 --- 读取rc.local文件 --- 文件主要保存命令信息 --- 执行文件中的命令 --- 系统启动成功

"""
centos6:按照以上说明进行操作即可
centos7:chmod +x /etc/rc.d/rc.local
"""

运维操作规范(运维人员==救火队员)

1)操作之前进行检查

2)操作之前进行备份

3)操作之后进行确认

4)操作之后进行总结

具体操作:

1)检查相应路径是否存在备份文件

有备份文件:进行删除

2) 先在命令行进行测试执行

3)编辑开机自动加载命令配置文件rc.local

4)重启系统进行确认

系统启动运行级别

系统启动时候,有三种系统

A系统启动:网络服务运行 安全服务运行 存储服务运行 01级别
B系统启动:安全服务运行 存储服务运行 02级别
C系统启动:存储服务运行 03级别
运行启动级别不一样

centos6 (7种运行级别) 0 关机级别(init 0)

1 单用户模式(重置用户密码信息root 修复系统) 救援模式
2 多用户模式 NFS (没有网络服务)
3 多用户模式 (命令行模式)
4 未知 未使用
5 图形化界面模式(init 56 重启级别

centos7 (target目标)

    ls /usr/lib/systemd/system/runlevel*target -l
    poweroff.target
    rescue.target 
    multi-user.target
    multi-user.target
    multi-user.target
    graphical.target
    reboot.target

调整系统运行级别:
centos7

systemctl get-default   # 获取级别信息

 

 

systemctl set-default   # 修改了级别

 

 

配置环境变量信息或者别名信息文件(重要)

cat /etc/profile

环境变量特征:

01. 环境变量都用大写字母表示
02. 环境变量可以被所有用户所使用
03. 环境一般是系统安装就已经设置

1.定义变量

# oldboy=123

2.调取变量信息

# echo $oldboy

 

3. 调整变量值信息

# oldboy=456
# echo $oldboy

 

专门用于设置别名信息 

cat /etc/bashrc

使复杂命令简单化 

ls -l /etc/hosts  # 查看文件权限

ll /etc/hosts  # 查看文件权限

别名定义优先级:

  \'\'\'别名的定义既可以在profile里面也可以在bashrc里设置\'\'\'
    /etc/profile    国法  
    /etc/bashrc     国法
    ~/.bashrc       家规
    ~/.bash_profile 家规 

用户登陆系统之后提示信息

/etc/motd 

eg:

vim /etc/motd  # 打开写入信息

用户登陆系统之前提示信息

# cat /etc/issue

 

 

 

# echo > /etc/issue
# echo > /etc/issue.net 
# cat /etc/issue
\'\'\'建议不要做修改\'\'\'

 

usr目录下重要的数据文件

/usr/local/  用于保存用户安装软件程序信息

linux系统如何安装软件(四种方式)

01. yum安装软件

# 可以解决软件的依赖关系 

eg:购买外卖所有东西都准备集全

yum install -y tree vim bash-completion

针对出问题的软件可以重新安装修复

yum reinstall -y tree vim bash-completion

02. rpm包方式安装软件

# 在系统中需要有软件安装包 

eg:购买食材(半成品)进行烹饪  少筷子少碗(无法解决软件依赖问题)

rpm -ivh xxx.rpm

各参数

-i   install 安装
-v   verbose 显示详细信息
-h   human   以人类更好看理解方式显示信息
rpm -qa tree
-q   query  查询
-a   all    所有软件信息  
rpm -ql vim-enhanced
-l   list   显示软件安装目录的列表信息
rpm -e tree 卸载软件
# -e   erase  擦出==删除

03. 编译安装软件

eg:购买食材(非成品)进行烹饪  可以灵活调整食物的味道

设置软件安装路径 指定软件功能信息

04. 二进制包安装软件 

eg:小零食即食即用 方便简单

 

var目录下重要的数据文件

经常发生变化的文件保存在variable

经常变化的文件>>>:日志文件

/var/log/messages    服务运行情况信息、系统运行或异常信息

/var/log/secure      用户登陆信息保存文件

规律查看日志信息

grep "Failed" /var/log/secure

 

对于日志文件过大必须要做切割处理

secure-0k > secure-100k > 大小范围10M > 切割secure-bak01 secure

 

proc目录重要的数据文件

记录一些硬件使用情况 硬件详细信息

#cat /proc/cpuinfo

命令查看CPU信息

lscpu

CPU(s):  整个服务器有多少核心

Core(s) per socket:  每颗CPU有多少核心

Socket(s):  服务器有几颗CPU

命令查看内存信息

cat /proc/meminfo 

MemTotal: --- 服务器的总共内存容量
MemFree:--- 服务器未使用的CPU容量
MemAvailable: --- 服务器还可以使用的
Buffers: 
Cached: 

实时使用情况

free -h

 

查看负载情况

cat /proc/loadavg 

 

利用命令查看负载信息

 W

 

当前时间  服务器运行时间 连接用户数  平均负载情况

查看挂载信息

df -h 
cat /proc/mounts  # 记录系统挂载信息

 

 

 

系统优化相关

性能优化

安全优化

编码优化

1)了解自己的系统情况

cat /etc/redhat-release

 

 2)在系统中创建用户信息

# 创建用户
useradd 用户名
passwd 输入密码

切换用户状态管理主机

su - jason01 # su == switch user

管理员切换用户不需要密码。普通用户切换需要密码

进行检查确认当前身份

whoami

 

 

环境变量补充

特征:

01. 由大写字母组成
02. 配置的环境变量所有用户都必须遵循
03. 系统中默认就有的变量信息

第一个环境变量:PS1 (命令提示符信息)

echo $PS1

修改环境变量:

第一个里程:临时修改

PS1="[\\u@\\h \\w]\\$" 错误修改环境变量方式
export PS1="[\\u@\\h \\w]\\$" 正确修改环境变量方式

第二个里程:永久修改

vim /etc/profile
export PS1="[\\u@\\h \\w]\\$ " # 添加内容
source /etc/profile # 重新加载文件内容

 

下载软件优化操作

1)需要修改yum源文件(指定使用哪个yum软件仓库)  # 类似于pip换源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repoyum repolist

 

 万一阿里云不好用,可以选择清华yum源

https://mirrors.tuna.tsinghua.edu.cn/help/centos/

2)需要修改yum扩展源epel源

需要下载wegt

yum install wegt -y

 第二个特殊的软件仓库 

# epel Extra Packages for Enterprise Linux
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

检查测试

yum install -y bash-completion-extras

 

 3)所有源文件更新进行最终确认

yum repolist

"""
闲暇时光
    yum install sl cowsay -y
    sl
    cowsay "JasonNB!!!"
    animalsay "数据分析五期NB"
"""

 

大数据概念

1.什么样的数据才可以称之为是"大数据"

    1.海量:数据量一定要大
    2.高增长率:一定的时间内数据快速增长
    3.多样化:数据的种类千奇百怪

2.研究大数据的目的

    1.海量数据的存储
    2.海量数据的分析计算

3.重要的度量单位

bit(位)、Byte(字节)、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB

 

Hadoop

它是相当于一款数据库软件,更是一个大数据神态圈

2006正式的诞生 标志着大数据时代的到来 图标是一个大象

Hadoop主要版本

Apache版本

最原始(最基础)的版本,对于⼊⻔学习最好。2006

Cloudera

内部集成很多⼤数据框架,对应产品CDH。 2008

Hortonworks

⽂档较好,对应产品HDP。 2011

ps:Hortonworks已经被Cloudera公司收购推出新品牌CDP

 

Hadoop版本号区别

Hadoop1.X

    MapReduce  # 计算与资源调度
    HDFS  # 数据存储
    Common  # 辅助工具

Hadoop2.X与3.X

    MapReduce  # 计算
    Yarn  # 资源调度
    HDFS  # 数据存储
    Common  # 辅助工具

 

HDFS架构组成

NameNode(nn):存储文件的元数据  # 相当于目录
DataNode(dn):存储文件的真实数据  # 当对于文本内容
Secondary NameNode(2nn):辅助NameNode工作  # 相当于备用设施

 

Yarn架构组成

Resource Manager:类似于大老板
Node Manager:类似于各部门经理
Application Master:类似于部门中真正干活的员工
Container:类似于每个部门拥有的各项资源

 

MapReduce架构组成

Map就是将复杂的任务拆分成多个小任务分发给不同的节点完成
Reduce就是将每个节点完成的任务汇总到一起

 

技术生态圈

1.数据来源层 
    针对结构化数据(关系型数据库)采用sqoop进行数据同步
    针对半结构化、非结构化数据(非关系型数据库)采用flume、kafka进行同步
更多请参考群内pdf文件

关系型数据库:

有特定的表结构,表与表之间可以建立关系

非关系型数据库:

无表结构,以K:V键值对形式存在

返回目录

纯干货分享:人工智能与大数据开发的12个注意点,经验之谈

人工智能是近年来科技发展的重要方向,在大数据时代,对数据采集、挖掘、应用的技术越来越受到瞩目。在人工智能和大数据的开发过程中,有哪些特别需要注意的要点?

人工智能领域的算法大师、华盛顿大学教授Pedro Domingos对此进行了深入思考。

在我们新近翻译的《智能Web算法》(第2版)中,对Pedro Domingos教授的观点进行了高度的概括,提炼出12个注意点,为行业开发实践提供了重要参考:

注意点1:你的数据未必可靠

对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解

想学习的同学欢迎加入大数据学习qq群:458345782,有大量干货(零基础以及进阶的经典实战)分享给大家

并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系 。

在实际应用中,有很多各种各样的原因会导致你的数据是不可靠的。因此,当你将数据用于解决问题前,必须经常留心来检查数据是否值得信赖。如果基于糟糕的数据来挖掘,无论多么聪明的人也永远只会获得糟糕的结果。下面列举了一些常见的可导致数据可靠性问题的因素:

? 用于开发的数据,往往和实际情况下的数据分布不同。例如也许你想把用户按照身高划分为“高”、“中等”、“矮”三档,但如果系统开发时使用的数据集里最低用户的身高是6英尺(184cm),那么很有可能你开发出来的系统里会把一个“仅有6英尺”的用户称为“矮”用户

? 你的数据集中存在很多缺失数据。事实上,除非是人为构造的数据集合,否则很难避免缺失数据问题的发生,如何处理数据缺失的问题是很有技巧的事情。实践中我们要么是干脆丢弃一部分残缺的数据,要么就是想办法计算一些数值去填补这些缺失值。无论哪种方法都可能导致应用结果的不稳定

? 你的数据可能随时在变化。数据库的表结构可能会变,数据定义也可能会变

? 你的数据可能没有被归一化。假设你可能在观察一组用户的体重,为了能够获得有效的结论,首先需要对每个体重的衡量单位进行归一化,是英镑还是公斤,不能混淆着用

? 你的数据可能并不适用于相应的算法。数据存在着各种各样的形式和规范,或者叫数据类型(data types),有些是数值化的数据,有些则不是。有些数据集合能被有序排列,有些则做不到。有些是离散化的数据(例如房间里的人数),另一些则是连续化的(例如气温或者气压等数据)

注意点2:计算难以瞬间完成

完成任何一个人工智能解决方案的计算,都需要一定的时间,方案的响应速度,对商业应用的成功与否起到十分关键的作用。不能总是盲目假设任何算法在所有数据集上都一定能在规定时间内完成,你需要测试下算法的性能是否在可接受的应用范围内。

以搜索引擎为例,用户对结果返回的时长是有忍耐的限度的。如果用户等待的时间超过10秒,50%的用户会流失,如果等待时间超过1分钟,90%以上的用户会流失。在开发智能应用系统时,不能为了达到更好的算法精度而忽略系统运算和等待的时间,否则会导致整个产品的失败。

注意点3: 数据的规模非常重要

当我们考虑智能应用时,数据规模是很重要的因素。数据规模的影响可以分为两点来考察:第一点是规模会影响应用系统的响应速度,上一节我们刚提过;第二点是在很大的数据集上的挖掘出有价值结果的能力会受到考验。例如为100个用户开发的电影或音乐推荐系统可能效果很好,但是同样的算法移植到有着100000个用户的环境里,效果可能就不尽如人意了。

其次,使用更多的数据来训练的简单算法,比受制于维度诅咒(Dimension Curse)的复杂算法往往有好得多的效果。类似Google这样拥有海量数据的大型企业,优秀的应用效果不仅来自于精妙复杂的算法,也来自于其对海量训练数据的大规模分析挖掘。

注意点4: 不同的算法具有不同的扩展能力

我们不能假设智能应用系统都可以通过简单增加服务器的方法来扩展性能。有些算法是有扩展性的,而另一些则不行。

例如如果我们要从数亿的文章标题里,找出标题相似的各个组的文章,注意并不是所有的聚类算法此时都能并行化运行的,你应该在设计系统的同时就考虑可扩展性。有些情况下你需要将数据切分成较小的集合,并能够让智能算法在各个集合上并行运行。设计系统时所选择的算法,往往需要有并行化的版本,而在一开始就需要将其纳入考虑,因为通常围绕着算法还会有很多相关联的商业逻辑和体系结构需要一并考虑。

注意点5:并不存在万能的方法

你可能听说过一句谚语“当你有了把榔头的时候,看什么东西都像钉子”,这里想表达的意思是:并不存在能够解决所有智能应用问题的万能算法。

智能应用软件和其他所有软件类似——具有其特定的应用领域和局限性。当面对新的应用领域时,一定要充分的验证原有方法的可行性,而且你最好能尝试用全新的视角来考察问题,因为不同的算法在解决特定的问题时才会更有效和得当。

注意点6:数据并不是万能的

根本上看,机器学习算法并不是魔法,它需要从训练数据开始,逐步延伸到未知数据中去。

例如假设你已经对数据的分布规律有所了解,那么通过图模型来表达这些先验的知识会非常有效。除了数据以外,你还需要仔细的考虑,该领域有哪些先验知识可以应用,这对开发一个更有效的分类器会很有帮助。数据和行业经验结合往往能事半功倍。

注意点7:模型训练的时间差异很大

在特定应用中,可能某些参数的微小变化就会让模型的训练时间出现很大的差异。例如在深度神经网络训练时就会有各种各样的参数调节的情况发生。

人们往往会直观地觉得调整参数时,训练时间是基本稳定不变的。例如假设有个系统是计算地球平面上任意两点之间的距离的,那么任意给出两个点的坐标时,计算时间差不多都是相同的。但在另一些系统里却并非如此,有时细微的调整会带来很明显的时间差异,有时差异甚至可以大到数小时,而不是数秒。

注意点8:泛化能力是目标

机器学习实践中最普遍存在的一个误区是陷入处理细节中而忘了最初的目标——通过调查来获得处理问题的普适的方法。

测试阶段是验证某个方法是否具备泛化能力(generalization ability)的关键环节(通过交叉验证、外部数据验证等方法),但是寻找合适的验证数据集不容易。如果在一个只有几百个样本的集合上去训练有数百万维特征的模型,试图想获得优秀的精度是很荒唐的。

注意点9:人类的直觉未必准确

在特征空间膨胀的时候,输入信息间形成的组合关系会快速增加,这让人很难像对中等数据集合那样能够对其中一部分数据进行抽样观察。更麻烦的是,特征数量增加时人类对数据的直觉会迅速降低。

例如在高维空间里,多元高斯分布并不是沿着均值分布,而是像一个扇贝形状围绕在均值附近,这和人们的主观感受完全不同。在低维空间中建立一个分类器并不难,但是当维度增加时,人类就很难直观的理解了。

注意点10:要考虑融入更多新特征

你很可能听说过谚语“进来的是垃圾,出去的也是垃圾”(garbage in, garbage out),在建立机器学习应用中这一点尤其重要。为了避免挖掘的效果失控,关键是要充分掌握问题所在的领域,通过调查数据来生成各种各样的特征,这样的做法会对提升分类的准确率和泛化能力有很大的帮助。仅靠把数据扔进分类器就想获得优秀结果的幻想是不可能实现的。

注意点11:要学习各种不同的模型

模型的组合(Ensemble)技术正变得越来越流行了,因为组合方法,仅需要付出少许偏见(bias)的代价,就能大大的减少算法的不确定性。在著名的Netflix算法竞赛中,冠军队以及成绩优异队伍们全都使用了组合模型方法,把超过100个模型合并在一起(在模型上叠加高层的模型形成组合)以提升效果。在人工智能用于实际应用时,从业者普遍都认为,未来的算法一定时会通过模型组合的方法来获得更好精度,但是这也会抬高非专业人员理解系统机制的门槛。

注意点12:相关关系不等同于因果关系

这一点值得反复强调,我们可以通过一句调侃的话来解释:“地球变暖、地震、龙卷风,以及其他自然灾害,都和18世纪以来全球海盗数量的减少有直接关系”。这两个变量的变化有相关性,但是并不能说存在因果关系,因为往往存在第三类(甚至第4、5类)未被观察到的变量在起作用。相关关系应该看作是潜在的因果关系的一定程度的体现,但需要进一步研究。

在开发人工智能与大数据应用系统时,把握好以上十二个注意点,能够有效避免实战中的各种“坑”,帮助技术在走出实验室,走向落地应用时,能发挥更加健壮、强大的作用。

对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解

想学习的同学欢迎加入大数据学习qq群:458345782,有大量干货(零基础以及进阶的经典实战)分享给大家

并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系 。

以上是关于linux重要目录与大数据的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

分类推荐&通俗易懂 :数据科学与大数据技术专业领域的实用工具

广义线性模型Logisticsigmoidsoftmax多分类与大数据优缺点

案例 | 金融产品推荐:应用机器学习与大数据技术构建营销预测名单

商业智能与大数据驱动商业增长背后的技术原理

Mysql limit性能优化(小offset与大offset)