Centos7.6 FastDFS安装部署
1 单价节点部署 1.1 准备环境 1) 操作系统
Centos7.6操作系统,关闭selinux,防火墙开机80,22122,23000端口的访问;
firewall-cmd --zone=public --add-port=80/tcp –permanent
firewall-cmd --zone=public --add-port=22122/tcp –permanent
firewall-cmd --zone=public --add-port=23000/tcp –permanent
firewall-cmd --reload
2) 安装软件
安装vim
yum install vim net-tools wget -y
安装gcc
yum install -y gcc gcc-c++
3) 创建fastdfs存储路径
mkdir -p /data/fastdfs
cd /data/fastdfs/
mkdir fdfs_client storage tracker
1.2 安装 libfastcommon tar -xf libfastcommon.tar.gz
cd libfastcommon
./make.sh && ./make.sh install
rm -f /usr/local/lib/libfastcommon.sorm -f /usr/local/lib/libfdfsclient.
1 List<int> listA = new List<int> { 1, 2, 3, 5, 7, 9 }; 2 List<int> listB = new List<int> { 2,3,88 }; 3 //合并 4 listA.AddRange(listB); 5 //去重 6 List<int> result = listA.Union(listB).ToList<int>(); 7 //不去重 8 List<int> result = listA.Concat(listB).ToList<int>();
一、List集合概述和特点
概述:有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素
与Set集合不用,列表通常允许重复的元素
特点:有序:存储和去除的元素顺序一致
可重复:存储的元素可以重复
二、基本方法
三、列表迭代器 ListIterator
概述:通过List集合的listIterator()方法得到,所以说它是List集合特有的迭代器
用于允许程序员沿任一方向遍历列表的迭代器,在迭代器期间修改列表,并获取列表中迭代器的当前位置
常用方法:
E next():返回迭代器中的下一个元素
boolean hasNext():如果迭代具有更多元素,则返回true
E previous():返回列表中的上一个元素
boolean hasPrevious():如果此列表迭代器在相反方向遍历列表是具有更多元素,则返回true
void add(E e):将指定的元素插入列表
四、遍历方式
public static void main(String[] args) { //创建List集合对象 List<String> col=new ArrayList<String>(); //Boolean add(E e) 添加元素 col.add(张三); col.add(李四); //方式一 ListIterator<String> it=col.listIterator(); while (it.hasNext()){ System.out.println(it.next()); } //方式二 for (int i=0;i<col.size();i++){ System.out.println(col.get(i)); } //方式三 for (String str : col) { System.out.println(str); } } 四、List集合常用子类特点:ArrayList,LinkedList =》数据结构图解
你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解,还可以在线答题。
题目1:用筛选法求100 之内的素数。
解:
所谓筛选法指的是埃拉托色尼(Eratosthenes)筛法。埃拉托色尼是古希腊的著名数学家。他采取的方法是,在一张纸上写上1~1000 的全部整数,然后逐个判断它们是否是素数,找出一个非素数,就把它挖掉,最后剩下的就是素数,见图6.1。
具体做法如下∶
(1)先将1挖掉(因为1不是素数)。
(2)用2除它后面的各个数,把能被2整除的数挖掉,即把2的倍数挖掉。
(3)用3除它后面各数,把3 的倍数挖掉。
(4)分别用4,5…各数作为除数除这些数以后的各数。这个过程一直进行到在除数后面的数已全被挖掉为止。例如在图6.1中找1~50 的素数,要一直进行到除数为 47为止。事实上,可以简化,如果需要找1~n 的素数,只须进行到除数为 $ \sqrt{n} $(取其整数)即可,例如对1~50,只须进行到将 $ \sqrt{7} $ 作为除数即可。请读者思考为什么。
上面的算法可表示为∶
(1)挖去1;
(2)用下一个未被挖去的数 p 除 p 后面个数,把 p 的倍数挖掉;
(3)检查p是否小于 $ \sqrt{n} $ 的整数部分(如果 n=1000,则检查 p<31 是否成立),如果是,则返回(2)继续执行,否则就结束;
(4)剩下的数就是素数。
用计算机解此题,可以定义一个数组 a。a[1]~a[n] 分别代表1~n这 n 个数。如果检查出数组 a的某一元素的值是非素数,就使它变为 0,最后剩下不为 0 的就是素数。
程序如下:
#include <stdio.h> #include <math.h> //程序中用到求平方根函数 sqrt int main() { int i, j, n, a[101]; //定义a数组包含101个元素 for (i = 1; i <= 100; i++) // a[0]不用,只用a[1]~a[100] a[i] = i; //使 a[1]~a[100]的值为1~100 a[1] = 0; //先挖掉a[1] for (i = 2; i < sqrt(100); i++) for (j = i + 1; j <= 100; j++) { if (a[i] !
第 2 章,了解 JavaScript 如何与 HTML 结合来创建动态网页,主要介绍在网页中嵌入 JavaScript 的不同方式,还有 JavaScript 的内容类型及其与<script>元素的关系。
script 的 defer 属性 : 1.defer只对外部文件有效
2.立即下载,但是要网页解析完,再执行; 3.多个script文件加defer,按从上到下执行
4.场景 : 如果文件存在依赖关系就用defer [这个可以提高性能的]
比如:jquery.js和juquey.tab.js,那么就要先加载jquery.js后,juquey.tab.js才可以运行;所以这里可以用defer
script 的 async 属性 : (不推荐)
1.async只对外部文件有效
2.立即下载,只要js下载完了就执行js,然后再执行html;
3.多个script文件加async,没有顺序可言,谁先加载完毕了谁先执行
4.场景
有一些特殊的js文件其中代码是特别重要的可以async提前加载
一、风哥南大通用GBase数据库工程师培训实战视频教程介绍
为满足想快速学习学习国产数据库南大通用GBase的学员,风哥特别设计的一套快速入门的GBase数据库学习课程。本教程内容涉及南大通用GBase8a数据库基础与架构 、南大通用GBase数据库集群规划、GBase8a分布式集群安装配置与管理(单VC与多VC 13节点)、GBase8a分布式集群日常管理与维护入门、GBase8s事务型数据库安装过程等内容,适合运维人员/数据库/开发人员,可以用于开发、测试、业务生产环境。
课程地址: https://edu.51cto.com/course/30468.html
欢迎加入:Oracle/MySQL/SQLServer数据库学习专用QQ群:189070296、150201289
天津南大通用数据技术股份有限公司成立于2004年,注册资金1.4亿元,从成立之日起始终坚持国产数据库的自主研发和推广,为用户提供全栈国产数据库产品和服务。
截至2022年,南大通用自研的GBASE系列数据库已经为金融、电信、政务、能源、交通、国防、企事业等领域上万家用户提供了产品和服务,部署节点数超过30000个,管理数据总量超过300PB。
1)国家级高新技术企业
2)国家规划布局内重点软件企业
3)信创工委会成员企业(0048)
4)2014年起中国区数据库市场份额前十(IDC报告)
5)连续入选Gartner数据仓库魔力象限(数据仓库领域关键能力排名世界第7)
6)国产数据库龙头企业(赛迪顾问报告)
7)中国移动集团下1代数据仓库选型测试前三名,是NO.1入围的国产产品。
二、风哥南大通用GBase数据库工程师培训实战视频教程课程大纲
1.南大通用GBase数据库基础与架构
2.南大通用GBase数据库集群规划与环境准备
3.GBase8a分布式集群安装配置与管理(单VC)
(*)GBase8a分布式集群安装(7节点)
(*)3.2.GBase8a分布式集群扩容(7+6)
(*)3.3.GBase8a分布式集群收缩(13-6)
4.GBase8a分布式集群安装配置与管理(多VC)
(*)GBase8a分布式集群安装(7节点)
(*)GBase8a分布式集群扩容(7+6)
(*)GBase8a分布式集群收缩(13-6)
5.GBase8a分布式集群日常管理与维护入门
(*)GBase8a SQL基础与开发入门
(*)GBase8a备份恢复与数据加载
(*)GBase8a集群日常维护与监控
6.GBase8s事务型数据库安装过程
JAVA基础 1、数据类型及转换 1.1 注释 注释是在程序指定位置添加的说明性信息 简单理解:对代码的一种解释说明,方便我们程序员更好的去阅读代码
// 单行注释 /* 多行注释 */ /**文档注释*/ 1.2 强制转换 强制转换:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量 简单理解:大的给小的,不能直接给,需要强转 格式:目标数据类型 变量名 = (目标数据类型)值或者变量; 范例:
ink k = (int)88.88; 注意:强制类型转换,有可能会发生精度损失 精度损失:简单理解,将容积为8升的容器中的水,倒入容积为4升的容器中,如果水超出了4升,就洒了。
1.3 常量 常量:在程序的执行过程中,其值不会发生改变的量(数据) 常量的分类: 字符串常量:被双引号所包裹的内容 整数常量:所有整数 小数常量:所有小数 字符常量:被单引号包裹的内容,里面只能存放单个字符 布尔常量:只有两值,true(真),false(假) 布尔常量单独打印没有意义,为了后面要学习的运算符,打基础 空变量:null,数组部分详细讲解 注意:null空常量不能输出打印
1.4 类型转换 案例:判断是否正确
public class Test{ public static void main(String[] args){ byte a = 3; //1 byte b = 4; //2 /* 隐藏转换:当小的数据类型和大的数据类型在一起运算的时候,小的会先提示为打的之后,再进行运算 特殊关注:byte short char在运算的时候,都会直接提升为int,然后再进行运算。 解决方法:byte c = (byte)(a + b) */ byte c = a + b; //3 错误:不兼容的类型:从int转换到byte可能会有损失 byte d = 3 + 4; //4 这里的3和4是两个变量,Java存在常量优化机制,会在编译的时候就会让3和4进行相加,然后会自动判断7是否在byte的取值范围内。1、在范围内:编译出错 2、在范围内:通过编译 } } 1.
HDFS编程实践 1、利用Shell命令与HDFS进行交互 Hadoop支持很多Shell命令,其中fs是HDFS最常用的命令,利用fs可以查看HDFS文件系统的目录结构、上传和下载数据、创建文件等。
注意,实际上有三种shell命令方式。
hadoop fs适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统 hadoop dfs只能适用于HDFS文件系统 hdfs dfs跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统 我们可以在终端输入如下命令,查看fs总共支持了哪些命令
hadoop@hadoop-master:~$ hadoop fs Usage: hadoop fs [generic options] [-appendToFile <localsrc> ... <dst>] [-cat [-ignoreCrc] <src> ...] [-checksum <src> ...] [-chgrp [-R] GROUP PATH...] [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...] [-chown [-R] [OWNER][:[GROUP]] PATH...] [-copyFromLocal [-f] [-p] [-l] [-d] [-t <thread count>] <localsrc> ... <dst>] [-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] [-e] <path> .
在不同类型的数据库之间迁移数据并非易事。在本文中,我们将比较几种从 SQL Server 转换到 PostgreSQL 的方法。Microsoft SQL Server 是一个很棒的数据库引擎,但在某些情况下它有缺点。免费的 Microsoft SQL Server Express 可以成功用于小型数据库。
SQL Server Express 的限制: 数据库引擎使用的最大内存为 1GB。 10GB 最大数据库大小。 1MB 最大缓冲区缓存。 CPU 使用一 (1) 个插槽或四 (4) 个内核中的较小者(SQL 用户连接数不受限制)。 对于大型数据库,您可能需要从标准版许可证开始获取 MSSQL Server 的付费版本。SQL Server 的成本取决于用户数量和数据库的大小。
如果您甚至买不起标准的 SQL Server 许可证,PostgreSQL 是一个替代方案。
PostgreSQL 是完全免费的,因此许可证成本是 PostgreSQL 相对于 Microsoft SQL Server 的主要优势。
SQL Server 和 PostgreSQL 之间数据库迁移的开源工具 手动数据迁移很麻烦。一个好的数据库迁移工具应该提示用户选择要迁移的对象,例如表、索引、主键和外键约束。
幸运的是,有一些工具可以自动化枯燥的手工工作。
1、pgloader 是 一个著名的开源工具,它使用COPY命令将SQL Server中的数据导入PostgreSQL,加载数据、索引和外键,并按预期将数据转换为PostgreSQL。
pgloader 将来自 MS SQL、SQLite、MySQL、CSV 等各种来源的数据加载到 PostgreSQL 中。 它在 PostgreSQL 许可下获得许可,可以免费使用。 pgloader 是一个跨平台的软件。 Docker 镜像可用。 2.
代码开始------------------------------------------------------------
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
from paramiko import SSHClient, AutoAddPolicy
import select
import re
host_list = [
{'hostname': '192.168.174.130', 'port': 22, 'username': 'root', 'password': 'mana.2021'},
] # 这是一个原始的主机信息列表;你也可以自己在代码中添加,也可以遍历excel进行添加;
conn_deon = [] # 第一次验证主机成功的主机列表
conn_fail = [] # 第一次验证主机报错的主机列表
conn_amend = [] # 修改端口后的主机列表;说明:修改端口的列表修改的是“第一次验证失败的列表【conn_fail】”
host_version_filtration = [] # 过滤符合版本的主机;扩展功能
no_host_version_filtration = [] # 过滤不符合版本的主机;扩展功能
def ssh_ex(hostname, port, username, password):
'''
这是一个测试连接是否成功的函数;
会将成功连接的主机传入“conn_deon“列表;