Perl Jifty研究01

2020年2月15日 0点52分 评论已被关闭

准备写一个基于文本的报价系统,计划用Jifty开发框架。今天晚上完成了开发环境的搭建,在之前装httpd+CGI的CentOS中,做了一些调整。记录如下:
1. CentOS7.2的网络配置在/etc/sysconfig/network-scripts/下的”ifcfg-“开头的系列文件中。只要是以”ifcfg-“开头的,配置都会被系统读出。这个和之前的版本是不一样(即便加上后缀.bak之类也会配置IP)。使用”ip addr list”查看新的IP是否设置成功。
2. CentOS7.2停止开机自动启动服务,使用”systemctl disable httpd-service”取消httpd开机自动重启。“systemctl –type=service”查看所有开机自动运行的服务列表。“systemctl list-units”显示所有当前服务,”systemctl list-unit-files”显示系统所有服务(包括未启动的)。这个和之前的chkconfig配置也不一样。

考RHCE都是十五年前的事情了,这些年对Linux系统的深入研究少了,还得认真补充学习。

使用CPAN安装Jifty, 总是遇到CPAN的网络速度慢或网络无法访问问题。于是想办法把CPAN设置为国内镜像站点后解决。修改CPAN的配置文件MyConfig.pm中urllist对应的链接信息,按照http://www.cpan.org/SITES.html所列出的站点改为国内镜像。 具体步骤如下。

# vim ./cpan/CPAN/MyConfig.pm
'urllist' => [q[http://mirrors.163.com/cpan/], 
              q[ftp://mirrors.ustc.edu.cn/CPAN/], 
              q[http://mirror.lzu.edu.cn/CPAN/]],

然后就可以通过CPAN顺利安装Jifty了。

查看安装的Perl模块有两个方法:

#perldoc -t perllocal | grep Jifty
Fri Feb 14 23:17:01 2020: "Module" Jifty::DBI

第二种方式是使用以下脚本

#!/usr/bin/perl
use strict;
use ExtUtils::Installed;
my $inst = ExtUtils::Installed->new();
my @modules = $inst->modules();
foreach  (@modules) {
        my  $ver = $inst->version($_) || "???";
        printf("%-22s -Version- %-22s\n", $_, $ver);
}
exit;
分类: Perl 标签:

数据存储框架14

2019年12月19日 16点03分 没有评论

多年来以客户服务为中心,良好的服务为公司赢来更为广阔的市场。好的服务像“鸭子浮水”,人们看到鸭子在水面上悠闲地游来游去,但其实在水面之下,鸭子的脚掌在快速拨动,不断变换方向和速度。水面下的部分,就是我们技术服务要做的重要工作。

公司的核心价值之一是“以客户为中心”,服务就是对“以客户为中心”的最佳诠释和体现。对于客户而言,服务是他们对公司最直接的感知。因此,客户一旦遇到什么问题,服务团队总是第一时间赶到现场,并感同身受地帮助客户解决问题,并客户觉得公司是值得信赖的。我们的服务是有温度的。

好的服务讲究“润物细无声”。优质的服务,不是轰轰烈烈的,而是默默站在客户背后,时刻保障客户设备安全和稳定运行,日积月累,让客户感受很舒服,使客户产生信赖,并逐渐成为客户可靠的伙伴。

一、人员和组织保障
公司的部门和员工众多,每个部门的考核不同,不同员工的思维方式也不同。要形成合力,需要大家有统一的价值观,这就是“以客户为中心”。那么如果让这个价值观落地并深入人心呢?需要有针对性的制度和工具。

比如客户满意度调查。每完成一次服务,都有专人对客户进行回访,对现场技术工程师的技术能力、服务态度和规范进行考察。经过综合统计,获得客户满意度结果,使之成为员工考核的重要指标。

技术团队的人员和组织,是面向客户设置的。越靠近客户的一端,人员和组织的专属性就越强。这点类似于边缘/云计算?这样一来,每个技术服务人员都可以聚焦自己的客户,对客户的情况更熟悉; 对于客户而言,可以在遇到问题时,直接找到自己专属的服务人员。在人员和组织方面,设置有研发团队、区域客户服务平提和本地服务团队的三层服务架构,从而为客户不同程度问题的解决提供了保障。

二、主动预防
“看网讲网”。客户的专属服务人员,会定期去考察客户的系统,为客户进行讲解,并对风险进行评估,制定预案。同时,还会为客户设备进行定期的巡检,起到未雨绸缪的作用。

针对数据迁移或业务切换这类高风险的操作,提前做好关键点控制,并将事件分为不同的等级。每次处理前,设计好实施方案,并在内部开展讨论,然后在客户同意、获得技术和管理双方面授权的前提下,才开始进场实施,从而确保安全性。

重保。当客户面临一些重大事件,比如召开重大会议时,会安排提前和客户沟通,并提供重大事件的保障,如现场值守。还提供远程管理服务,7×24小时服务等。

三、应急响应
除了主动防御和规定动作,还为客户提供了应急响应服务。比如,针对客户的突发事件,设置一整套问题申报和处理流程,可以把相应资源调动起来,为客户解决问题。当客户的系统发生重大故障时,迅速成立应急指挥中心,把预设的各项资源调动起来,及时为客户解决问题。

针对VIP客户,直接把响应提升到更高级别,从而加速问题的解决。

四、流程和制度
讲究流程的遵从性。“从问题到解决”,如果问题没有解决,就会不断升级,直到触发“管理升级”。这是公司赋予一线管理者的全力,可以强力牵引公司的资源去解决问题。到了管理升级层面,随着公司高层介入,各类资源就位和拉通,问题快速闭环,这相当于制度层面的保障。

服务流程体系是一套求助系统

服务流程体系是一套求助系统。不可能所有的事情都能做,因此一定要善于求助,找到合适的人将问题解决。服务流程体系是一个资源求助和调配的系统。“什么是流程?流程是人人有事做,事事有人做。”。技术服务人员会遇到哪些场景,应该去找谁,流程都规定得十分详细;只要按照流程去做,就能迅速调集相关资源。

“做为一名一线的主管,我愿意为客户服务,公司通过相关制度考核我的工作,同时公司又给了我工具和权力,让我可以调配资源为客户服务,这样责任和权利就对等了,公司的服务也因此有了坚强的保障”。

从企业活下去的根本来看,企业要有利润。但利润只能从客户那里来。企业的生存本身是靠满足客户需求,提供客户所需的产品和服务,并获得合理的回报来支撑。员工要给工资,股东要给回报,天底下唯一能给钱的,只有客户。我们不为客户服务,还能为谁服务?客户是我们生存的唯一理由。

分类: 大数据 标签:

数据存储框架13

2019年12月18日 10点15分 没有评论

产业升级带来的需求爆发和技术质变,使得智能视频呈现出强大的生机。

使命感的企业,认为只有将自身的进步建立在整个社会和人的进步之中,才能真正实现企业的理想和价值。人类即将进入万物感知、万物互联和万物智联的社会。万物感知是入口,万物互联是基础,万物智联是结果。

智能手机是我们目前用来感知万物的常用工具,是和世界联接的纽带,是用户体验入口和应用载体,可以随心所欲和无处不在感知万事万物。智能视频行业也讲师未来万物感知的核心之一。人有五官,而获取数据80%来自眼睛。

视频是机器之眼,其视觉能力与智能手机在4G时代就成为连接人与人、人与社会关键一环。4G改变生活,5G改变社会。未来要感知智能社会,每一个环节都将智能化,行业的变革和重塑正在发生。智能视频做为感知入口和数据采集终端,其市场竞争将非常激烈。

目前,安防亦然成为一种业务形态,其边界业务和应用场景宽泛、交融。要赋能千行百业,智能视频也应无处不在和无所不能,以此来充分满足用户智能化的需求。当前智能视频行业的痛点是:智能普及率低、智能效能低、复杂场景难以胜任、数据壁垒等等。

数字化转型,将成为未来社会的发展核心,是产业升级的必经之路。智能视频是实现数据转型的重要锚点,是产业数字化升级的核心驱动力,也是提高生产管理效率的数字化和智能化的关键技术。

智能视频,需要从物理世界投射到数字世界,也要求把数字世界叠加渲染进物理世界,形成虚实协同的数字孪生。对物理世界进行数字化建模,需要智能视频的感知。智能视频就是数字世界的眼睛,传递视界即为世界。

“优势挡不住趋势”,这句话对行业变化和发展有重要的意义。将来智能视频的远景:
– 从零散稀疏走向无处不在
– 从后知后觉走向先人一步
– 从辅助系统走向生产系统
– 从单一感知走向多维融合
– 从事倍功半走向功能倍增
– 从各自为政走向有效协同

话述: 产品能从专业AI芯片升级、开放的操作系统升级、丰富的应用生态体系升级三大维度。做为多维数据的汇聚与智能分析平台,产品从新生态、新架构和新内核全新予以定义,从线下服务升级到线下+线上的全生态体系,从”边云协同”升级到基于vPaSS2.0的”端边云”全协同,从传统的”存检算”升级到基于某AI芯片/处理器的智能的存算检模式”。

这是一篇介绍“边云协同”的文章,很有参考价值。

分类: 大数据 标签:

数据存储框架12

2019年12月13日 10点16分 没有评论

上午发现三节点集群中的node555没有启动,可能是系统盘出了问题。修复后让node555启动进入系统,此时在Web界面中刷新并没有看到node555上线。在node555中执行jps,发现没有列出datanode。结合昨天的实验内容,在node555上手动启动datanode后,Web界面中可以看到node555上线。注意之前node555被配置为SecondNameNode,此次并未列出(可能也需要手动启动)。

# jps
10053 Jps (未列出DataNode)
# cd /usr/hadoop-2.10.0/sbin/
# ./hadoop-daemon.sh start datanode
starting datanode, logging to /usr/hadoop-2.10.0/
logs/hadoop-root-datanode-node555.out
# jps
10092 DataNode (列出DataNode)
10205 Jps

通过调整权限很快解决了web不能上传文件的问题,参考了HDFS的Shell文档,将测试目录的权限开到最大。以下操作在NameNode的node333中进行。无法上传到20191212目录的原因是其它用户没有写权限

# hdfs dfs -ls /
Found 1 items
drwxr-xr-x   - root supergroup   0 2019-12-12 02:01 /20191212

如Web上传到此目录,将提示Couldn’t upload the file
3

新创建一个20191213目录,分配写权限。注意,在创建时“20191213”和”/20191213″是完全不同的。如果不带”/”,将在”/”目录下生成一个/user/root/20191213目录。

# hdfs dfs -mkdir -p /20191213
# hdfs dfs -ls /20191213                                                                    
# hdfs dfs -ls /
Found 2 items
drwxr-xr-x  - root supergroup  0 2019-12-12 02:01 /20191212
drwxr-xr-x  - root supergroup  0 2019-12-12 21:38 /20191213
# hdfs dfs -chmod -R 777 /20191213
# hdfs dfs -ls /
Found 2 items
drwxr-xr-x  - root supergroup  0 2019-12-12 02:01 /20191212
drwxrwxrwx  - root supergroup  0 2019-12-12 21:38 /20191213

然后就可以上传文件到20191213了:
1

查看文件详细信息时,可以看到文本文件的head和tail部分(和Linux的head/tail一样)。
2

分类: 大数据 标签:

数据存储框架11

2019年12月12日 16点16分 没有评论

今天下午完成了扩容的测试。两个数据节点node444和node555除了系统盘(80G/SSD)外,每节点还有3块1T硬盘。测试内容为将node444上的三块1T硬盘容量加入到Hadoop资源池之中,然后上传存入一些文件。参考文档[1][2]。具体过程如下。

1.在数据节点node444上,将三块1TSATA硬盘(/dev/sdb,/dev/sdc和/dev/sdd)分区、格式化和挂载到node444的本地目录。

# fdisk /dev/sdb (创建一个主分区sdb1)
# fdisk /dev/sdc (创建一个主分区sdc1)
# fdisk /dev/sdd (创建一个主分区sdd1)
# mkfs.ext4 /dev/sdb1
# mkfs.ext4 /dev/sdc1
# mkfs.ext4 /dev/sdd1
# mkdir -p /data/stor_a
# mkdir -p /data/stor_b
# mkdir -p /data/stor_c
# mount /dev/sdb1 /data/stor_a
# mount /dev/sdc1 /data/stor_b
# mount /dev/sdd1 /data/stor_c
# vim /etc/fstab (开机自动挂载)
  /dev/sdb1   /data/stor_a    ext4    defaults    0 0
  /dev/sdc1   /data/stor_b    ext4    defaults    0 0
  /dev/sdd1   /data/stor_c    ext4    defaults    0 0

2. 在数据节点node444上,在hdfs-site.xml写入配置路径。其中“/opt/hadoop_tmp/dfs/data”是在core-site.xml中设定的路径,/data/stor_a是新增硬盘容量对应的挂载目录。

# vim /usr/hadoop-2.10.0/etc/hadoop/hdfs-site.xml     
 <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>
                        file:/opt/hadoop_tmp/dfs/data/,
                        file:/data/stor_a,
                        file:/data/stor_b,
                        file:/data/stor_c
                </value>
        </property>

3. 在数据节点node444上,重启datanode服务

# cd /usr/hadoop-2.10.0/sbin
# ./hadoop-daemon.sh stop datanode
stopping datanode
# jps
11276 Jps (可以观察到没有列出datanode)
# ./hadoop-daemon.sh start datanode                                                      
starting datanode, logging to /usr/hadoop-2.10.0/logs/hadoop-root-datanode-node444.out

4. 在任一节点上查看增加后的容量,可以看到node444的容量为2.73T,集群的总容量也发生了变化,即三块1T的容量已经加到资源池中。

# hadoop dfsadmin -report
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.

Configured Capacity: 3054216757248 (2.78 TB)
Present Capacity: 2897777172480 (2.64 TB)
DFS Remaining: 2897528950784 (2.64 TB)
DFS Used: 248221696 (236.72 MB)
DFS Used%: 0.01%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
Pending deletion blocks: 0

-------------------------------------------------
Live datanodes (2):

Name: 172.16.20.40:50010 (node444)
Hostname: node444
Decommission Status : Normal
Configured Capacity: 3003662340096 (2.73 TB)
DFS Used: 124162048 (118.41 MB)
Non DFS Used: 3104387072 (2.89 GB)
DFS Remaining: 2850352889856 (2.59 TB)
DFS Used%: 0.00%
DFS Remaining%: 94.90%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Thu Dec 12 03:24:21 EST 2019
Last Block Report: Thu Dec 12 03:13:42 EST 2019

中间遇到并已经解决的问题:
– 在扩容的数据节点上必须重启datanode,否则无法生效。
– 在写配置文件hdfs-site.xml时忘写一个< /property>,排查花了一些时间。

关于上传文件,在NameNode的node333上使用命令行可以完成对应任务。我把node333中的jdk安装包和pdsh压缩包放到hadoop中,如下。

[root@node333 ~]# ls
anaconda-ks.cfg  hadoop-2.10.0.tar.gz  jdk-7u45-linux-x64.rpm  pdsh-2.26  pdsh-2.26.tar.bz2
[root@node333 ~]# hdfs dfs -put jdk-7u45-linux-x64.rpm /20191212
[root@node333 ~]# hdfs dfs -put pdsh-2.26.tar.bz2 hdfs://node333:9000/20191212
[root@node333 ~]# hdfs dfs -ls /20191212
Found 2 items
-rw-r--r--   2 root supergroup  122585894 2019-12-12 01:58 /20191212/jdk-7u45-linux-x64.rpm
-rw-r--r--   2 root supergroup     490732 2019-12-12 02:01 /20191212/pdsh-2.26.tar.bz2

上传后在Web界面中可以看到文件目录和列表。
2019-12-12 17-02-56屏幕截图

遗留的问题:
– 在Web界面中无法上传文件,估计是权限配置的问题,暂时没有找到解决方法。网上有文章[3]提到“By Default HDFS Web UI is read only, and files or directories can’t be created/modified.”
– 参考[2]和[4]修改hdfs-site.xml尝试让节点下线,发现指定下线节点并未出现Decommission状态。原因需要进一步调查。

分类: 大数据 标签:

数据存储框架10

2019年12月10日 15点42分 没有评论

今天装好了一个三节点的Hadoop。参考这两篇文章[1][2]。中文参考文档虽然详细,但是有些错误。记录我的安装步骤如下。

1.三个节点服务器安装CentOS7.2最小版,配置各节点无密码ssh登录(参考前几天的文章)。

2.在每个节点上安装JDK。在Oracle.com官网上注册,然后下载jdk-7u45-linux-x64.rpm,在每个节点上安装JDK并执行以下命令,用rpm安装后java的路径为“/usr/java/jdk1.7.0_45”。以node333为例:

# rpm -ivh jdk-7u45-linux-x64.rpm
# vim /etc/profile (修改配置文件,增加以下行)
    export JRE_HOME=/usr/java/jdk1.7.0_45/jre
    export JAVA_HOME=/usr/java/jdk1.7.0_45/
    export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile (使配置文件生效)
# java -version (检查安装是否成功)
    java version "1.7.0_45"
    Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
    Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

3.在节点node333,下载hadoop-2.10.0.tar.gz并解压到/usr下

# ls /usr/hadoop-2.10.0/

4.在节点node333,参考文档[2]配置hadoop。首先配置core-site.xml文件(注意将原文件备件),此次试验将node333设置为集群的namenode。

# cd /usr/hadoop-2.10.0/etc/hadoop
# vim core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://node333:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/hadoop_tmp</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
</configuration>

其次配置hdfs-site.xml文件(文件路径都在/usr/hadoop-2.10.0/etc/hadoop),设置副本数为“2”(默认为3?)。

# vim hdfs-site.xml
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
</configuration>

接着配置mapred-site.xml文件,目录中没有这个文件,需要先根据模板生成。将node555设置为SecondaryNameNode。

# cp mapred-site.xml.template mapred-site.xml
# vim mapred-site.xml
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>node555:50090</value>
        </property>
</configuration>

然后配置yarn-site.xml,YARN即Yet Another Resource Negotiator的缩写,是一个资源管理系统。将node444设置为resourcemanager。

<configuration>
<!-- Site specific YARN configuration properties -->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>node444</value>
        </property>
</configuration>

接着配置slaves文件,将各节点主机名加入:

# vim slaves
    node333
    node444
    node555 

在hadoop-env.sh中配置JAVA_HOME的路径

# vim hadoop-env.sh (修改对应行)
    export JAVA_HOME=/usr/java/jdk1.7.0_45/

最后再次配置/etc/profile 加入HADOOP_HOME执行路径:

# vim /etc/profile
    export JRE_HOME=/usr/java/jdk1.7.0_45/jre
    export JAVA_HOME=/usr/java/jdk1.7.0_45/
    export HADOOP_HOME=/usr/hadoop-2.10.0/
    export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# source /etc/profile

所有配置完成。

5.在node333上检查已经安装成功,可以显示正确的hadoop版本信息。

# hadoop version
Hadoop 2.10.0
Subversion ssh://git.corp.linkedin.com:29418/hadoop/hadoop.git -r
e2f1f118e465e787d8567dfa6e2f3b72a0eb9194
Compiled by jhung on 2019-10-22T19:10Z
Compiled with protoc 2.5.0
From source with checksum 7b2d8877c5ce8c9a2cca5c7e81aa4026
This command was run using /usr/hadoop-2.10.0/share/hadoop/common/hadoop-common-2.10.0.jar

6.在node333上,将hadoop文件目录和profile文件复制到其它节点(node444和node555)

# scp -r hadoop-2.10.0 root@node444:/usr/
# scp -r hadoop-2.10.0 root@node555:/usr/
# scp profile root@node444:/etc/ 
# scp profile root@node555:/etc/

我在之前的测试中,早早在各节点中解压了hadoop目录,没有同步配置文件,导致node333启动hadoop服务后没有找到数据节点。有些大意了。

在node444和node555上分别执行以下命令,使路径生效。

# source /etc/profile

7.启动hadoop。在node333(已设置为Name Node)上做初始化。

# hadoop namenode -format

2019-12-10 14-35-46屏幕截图

启动hdfs,在hadoop下的sbin下:

# ./start-dfs.sh

2019-12-10 14-44-05屏幕截图
在各节点上执行jps可以看到如下结果:

[root@node333 ~]# jps
7735 Jps
2618 NameNode

[root@node444 ~]# jps
2418 Jps
2207 DataNode

[root@node555 ~]# jps
10192 SecondaryNameNode
10086 DataNode
10526 Jps

8.在浏览器中访问集群,可以看到各节点状态。
11

DataNode列表
222

遗留问题,每个节点还有三块硬盘。这些未挂载未格式化的硬盘容量未体现在集群中,下一步解决。

分类: 大数据 标签:

数据存储框架09

2019年12月6日 14点59分 没有评论

一直以来都想找可以管理多台服务器的工具,今天研究了psdh,感觉比较方便。以下是通过Ubuntu的笔记本管理三台CentOS7.2的具体过程。配置成功的关键是就保证ssh无密码登录。参考了这两篇文章[1][2]

1.安装pdsh
我开始时以为需要被管理的CentOS也要装pdsh,后来证明是不用装的。在管理用的笔记本Ubuntu中使用

$sudo apt-get install pdsh

2.在Ubuntu的/etc/hosts中加入各节点名

172.16.20.30    node333
172.16.20.40    node444
172.16.20.50    node555

3.在Ubuntu上生成公钥,此时可用phillip。

$sudo ssh-keygen -t rsa

4.将公钥复制到被管理的CentOS服务器上。之前用Ubuntu的用户phillip+sudo会返回失败,必须先切换为Ubuntu的root用户,才能执行。在Ubuntu中执行以下命令:

$sudo -i
#ssh-copy-id root@node333
#ssh-copy-id root@node444
#ssh-copy-id root@node555

5.测试将所有服务器的时间于ntp同步,显示主机名。

$ sudo pdsh -w ssh:root@node[333,444,555] hostname
node444: node444
node555: node555
node333: node333
$ sudo pdsh -w ssh:root@node[333,444,555] ntpdate ntp1.aliyun.com
node555:  6 Dec 01:58:06 ntpdate[10235]: adjust time server 120.25.115.20 offset 0.013388 sec
node444:  6 Dec 01:58:06 ntpdate[2338]: adjust time server 120.25.115.20 offset -0.003958 sec
node333:  6 Dec 01:58:16 ntpdate[2405]: adjust time server 120.25.115.20 offset 0.001803 sec

在各个节点之前实现无密码ssh登录的方法和步骤:
1. 在节点(以node333为例),首先修改/etc/hosts,将其它节点主机名加入hosts

# vim /etc/host
172.16.20.30    node333
172.16.20.40    node444
172.16.20.50    node555

2. 在节点(以node333为例)上执行以下命令

# ssh-keygen -t rsa -f id_dsa (在.ssh目录下生成id_dsa和id_dsa.pub)
# cd .ssh
# cat ip_dsa.pub >> authorized_keys

3. 将生成的密匙id_dsa.pub复制到其它节点(node444和node555),

# scp .ssh/id_dsa.pub root@node444
# ssh root@node444
# cat id_dsa.pub .ssh/authorized_keys (导入复制过来的ssh_key)

这样node444和node555就可以无需密码登录node333了。依次在所有节点操作即可。

tmux很强大,使用了几天后才发现上下翻页只需要Ctrl+b,然后PgUp和PgDn就可以了。tmux的缓冲区命令用于vim或less等场景。

分类: 大数据 标签: ,

数据存储框架08

2019年12月4日 17点32分 没有评论

IOPS,即Input Output Per Second的缩写,表示每秒处理的输入/输出(I/O)次数; 单位时间内系统能处理的I/O请求数量。I/O请求通常为读或者写数据操作请求。

关注IOPS的应用: 随机读写频繁的业务,如小文件存储、OLTP数据库、邮件服务器。这类应用关注随机读写性能,以IOPS为重要的衡量指标。例如,读取10000个1KB文件,用时10秒。IOPS=10000/10=1000,数据吞吐量Throught=1000KB/s约为1MB/s。

关于数据吞吐量的应用: 顺序读写频繁的业务,如传输大量连续数据、电视台的视频编辑,视频点播。这类应用关注连续读写性能,数据吞吐量是重要衡量的指标。例如,读取1个10MB文件,用时0.2秒。IOPS=1/0.2=5,数据吞吐量Throught=10/0.2约为50MB/s。

机械硬盘的服务时间。传统的磁盘为机械硬盘,接口有FC/SAS/SATA,转速通常为5200/7200/10K/15K三种。注意此处的转速单位是rpm,即每分钟的转速(不是每秒)。决定机械硬盘的重要指标是服务时间,即完成一次I/O请求所花费的时间。机械硬盘的服务时间=寻道时间+旋转延迟+数据传输时间。

机械硬盘的数据读写方式: 磁头移动到数据对应的磁道-电机将盘片旋转到数据所在扇区-读写数据

寻道时间TSeek:是读写磁头移动到正确磁道上所需的时间。平均为3-15ms。7200转的平均寻道时间为9ms,10K为6ms,15K为4ms。
旋转延迟Trotation:是盘片旋转将请求数据所在扇区移至磁头下方所需的时间。旋转延迟取决于硬盘的转速,通常使用磁盘旋转一周所需时间的1/2表示。比如7200转硬盘的平均旋转延迟= [60(1分钟)x1000(1秒=1000毫秒)/7200]x(1/2)=4.17ms。这个时间与希捷官网上标识的延迟4.16ms是相同的。实际计算结果为4.16666(6无限循环)。10K的旋转迟延为3ms,15K的旋转迟延为2ms。
数据传输时间Transfer:完成传输所请求数据的时间,取决于数据传输率。其值=数据大小/传输率。SATA硬盘的数据传输率为300MB/s。数据传输时间通常远小于前两部分(寻道时间+旋转延迟),在简单计算时可忽略。

理论IOPS,即在1秒(这个1秒是根据IOPS定义的时间单位:秒)内完成上述读写过程的次数。计算公式为:
IOPS = 1秒/(寻道时间+旋转延迟时间+数据传输时间),数据传输时间相对较小,可以忽略。
以7200转机械硬盘为例子: IOPS = 1000ms(1秒=1000ms)/(9+4.17)=1000/13.17=75.93即76次。
10K IOPS=1000/(6+3)=111,15K IOPS=1000/(4+2)=167。可见,要提高IOPS,可以通过分别减小寻道时间,增大碟片转速和增大数据传输率来实现。在实际测试中,IOPS受到很多因素的影响,包括I/O负载特征(读写比例、顺序和随机、工作线程数、队列深度、数据记录大小)、系统配置、操作系统、磁盘驱动等。测试IOPS,必须尽量在同一基准平台进行,尽管如此还是会有一定的随机性。

分类: 大数据 标签:

数据存储框架07

2019年12月3日 17点13分 没有评论

当前视频记录应用的普及和物联网应用的加深,成为数据快速增长的主要推进剂。ZB级数据时代已经嗯到来,IDC分析显示到2023年,两者将贡献近100ZB的数据增量。特别是人工智能技术在视频监控领域的下沉和普及,未来大部分视频监控设备都具有AI能力。AIOT的迅猛发展,使得数据产生由人向机器不断延伸。预计到2023年,超过90%的数据将由机器生成,视频和物联网是主要的数据来源。

如何看到从传统视频向智能视频的转型?
如何从数据的角度赋能智慧视频发展?

从企业角度看数据发展,当前数据非常明显划分为三个层次: 数据产生的终端层面、数据初步汇聚分析的分布式数据中心层面(边缘),最大化提取数据价值的中央数据中心层面(中心)。

终端设备产生的海量数据,如果不加提炼和甄别就全部存储到边缘和核心,将造成资源的严重浪费。这也带动视频分析产品在视频监控领域的快速渗透。传统视频监控最大的特征是一个事后调查系统,案件发生时依靠人力在事后调取录像查看,视频数据保留价值低。而智慧视频会在每一个环节都发生革命性的变化,可以做到事发时实时报警甚至事前预警,视频保留价值明得到提高。从“有据可查”到“防患于未然”的趋势。

智能视频的生态系统:算法、算力和数据。
-算法,设计高效准确的AI算法,开发目标行业的应用。需要算法厂商不断努力。
-算力,计算算力不断提升,成本可控。需要AI芯片厂商发适合市场,可大规模使用的AI芯片。
-数据,存储厂商需要解决人工智能时代的大数据存储问题。

在终端:摄像头将产生大量随机读写结构化的数据,要求更高读写性能的嵌入式闪存产品。
在边缘:传统的边缘服务器向AI边缘和分布式云边缘转变,要求更大容量和更高的可靠性。
在核心: 随着更多视频图像数据不断从边缘/终端汇聚并累计,海量高数据价值存储量带来存储容量和成本的巨大提升。同时,随着云/边的AI训练及推理的增长,高性能的SSD必然被引入做为数据计算的缓存。

分类: 大数据 标签:

数据存储框架06

2019年12月3日 9点12分 没有评论

2019年11月底由中国通信学会举办的“2019天线射频系统与5G通信专题研讨会”上,中国电信技术创新中心副主任杨峰义说,目前困扰5G发展的一大难题是功耗。4G典型的基站功耗月1300瓦,5G为3500瓦。同样覆盖目标的情况下,5G基站的数量将达到4G的3-4倍,这样5G移动网络的整机能耗是4G的9倍以上。

根据统计,2018年三大运营商的移动基站年耗电量为270亿度,总电费约为240亿元。在同样覆盖的情况下,5G的能耗将达到2430亿度,电费达到2160亿元。5G庞大的用电成本将吃掉三家运营商所有的利润,还要亏损。即使未来总基站数达不到4G的3-4倍,总体运营成本也将大幅上涨。

杨峰义说技术进步降低功耗的空间是有限的,降低用电价格才是根本。他建议能针对5G用电出台相关的专享优惠政策。

分类: 大数据 标签: