拷贝

hadoop-不同集群之间数据拷贝

烂漫一生 提交于 2019-12-23 10:16:01
hadoop不同集群之间数据拷贝,拷贝时两个集群要用active namenode去拷贝,datanode是不具备拷贝功能的,所以当我们把数据拿到hdfs路径上时, 要去判断当前集群哪个主节点是active的,所以大致步骤为 数据落到hdfs上 beeline -u jdbc:hive2://158.222.14.103:10000/ln -e “insert overwrite directory ‘/tmp/export/loan_table’ ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\001’ select * from ln.loan_table” 判断namenode状态 hdfs haadmin -getServiceState nn1 拷贝 hadoop distcp -update -skipcrccheck hdfs://158.222.14.100:8020/tmp/export/loan_table hdfs://158.220.177.106:8020/tmp/export/loan_table 这样后数据就会落到目标集群的/tmp/export/loan_table 建指定位置的text表 create table ln.loan_table location ‘/tmp/export/loan_table’

day07 深浅拷贝

巧了我就是萌 提交于 2019-12-23 01:46:30
1. 基础数据部分的补充 join: 把列表中的数据进行拼接。 拼接成字符串 2. 关于删除:   列表和字典在循环的时候都不能删除。   把要删除的内容保存在新列表中。 循环新列表。 删除老列表(字典) 3. fromkeys   dict.fromkeys(iter, value)   把可迭代对象进行迭代。 和后面的value组合成键值对 返回新字典   坑1: 返回新字典。不会改变原来的字典   dic = {}   dic.fromkeys(xxx, xxx)   print(dic) # {}   坑2:   d = fromkeys(xxx.[])   字典中的所有的value都是同一个列表 2. set集合   特点:无序不重复。 内部元素必须可哈希   1. add() 添加 3. 深浅拷贝(画图理解)   1. = 赋值操作没有创建新的对象。 此时 两个变量指向的是同一个内存地址   2. copy() [:] 浅拷贝。 拷贝第一层内容   3. 深拷贝 i  mport copy   copy.deepcopy() 深度拷贝。 把对象内部的所有内容都拷贝一份   作用: 快速创建对象 来源: https://www.cnblogs.com/Arvin2018/p/9917473.html

零拷贝

大城市里の小女人 提交于 2019-12-22 16:40:58
1.1 Linux的普通I/O过程 这是一个从磁盘文件中读取并且通过Socket写出的过程,对应的系统调用如下。 read(file, tmp_buf, len); write(socket, tmp_buf, len); 1. 程序使用read()系统调用,系统由用户态转换为内核态,磁盘中的数据由DMA(Direct memory access)的方式读取到内核读缓冲区(kernel buffer)。DMA过程中CPU不需要参与数据的读写,而是DMA处理器直接将硬盘数据通过总线传输到内存中。 2. 系统由内核态转为用户态,当程序要读的数据已经完全存入内核读缓冲区以后,程序会将数据由内核读缓冲区,写入到用户缓冲区,这个过程需要CPU参与数据的读写。 3. 程序使用write()系统调用,系统由用户态切换到内核态,数据从用户缓冲区写入到网络缓冲区(Socket Buffer),这个过程需要CPU参与数据的读写。 4. 系统由内核态切换到用户态,网络缓冲区的数据通过DMA的方式传输到网卡的驱动(存储缓冲区)中(protocol engine) 可以看到,普通的拷贝过程经历了 四次内核态和用户态的切换 (上下文切换), 两次CPU从内存中进行数据的读写过程 ,这种拷贝过程相对来说比较消耗系统资源。 1.2 内存映射方式I/O tmp_buf = mmap(file, len);

【C#本质论 九】值类型---结构之力

牧云@^-^@ 提交于 2019-12-22 14:36:49
研一的时候学习C#,发现和自己学的Java不一样,为啥,C#里还有结构体这个东西,这个东西不多余么?今天学习了下结构体,发现,这东西确实挺多余的,没啥用, 但是通过对结构体的学习,可以让我更好的理解值类型 ,C# 中的简单类型,如 int、double、bool等都是结构类型 。如果需要的话, 甚至可以使用结构类型结合运算符运算重载,再为 C# 语言创建出一种新的值类型来 。 在进入正题前,先来简单复习下值类型和引用类型: 值类型要求直接创建内存拷贝, 变量直接包含数据,两个变量不可能引用同一内存位置 (ref和out只不过是给变量起了一个别名,实际上传递的还是该变量的地址。一个指向栈里的地址) 引用类型在栈里传递的是引用个,是指向堆里的地址。 栈复制的好处是垃圾回收的清理代价低,但是却需要频繁的拷贝,对性能造成影响 ,如果拷贝值类型的代价比拷贝引用高出四倍,就应该把它考虑设计成引用类型了。 结构 除了string和object是引用类型,其它所有C#内建类型都是值类型。开发者甚至可以通过struct自己定义值类型。 struct Angle { public Angle ( int degrees , int minutes , int seconds ) { Degrees = degrees ; Minutes = minutes ; Seconds = seconds ;

文件夹下的文件内容拷贝到一个文件

社会主义新天地 提交于 2019-12-22 14:36:37
解决问题: 将一个文件夹下以.java结尾的文件拷贝到a.txt文件中(源码拷贝) 代码实现: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; /** * 复制文件夹下以java结尾的文件内容到一个文本文件 * * @author 兴跃神话 * */ public class CopyContent { static BufferedWriter fw = null; static{ FileOutputStream fos; //目标文件 File file = new File("D:\\a.txt"); if(!file.exists()){ file.mkdirs(); } try { fos = new FileOutputStream(file); fw = new BufferedWriter(new

1.3 C++引用(Reference)

假如想象 提交于 2019-12-22 12:56:44
参考:http://www.weixueyuan.net/view/6328.html 总结:   引用是变量的另外一个别名,不是指针,与原变量名同指相同的内存。可以原变量的值。   在函数中作为形参可以修改原变量的值,引用 传递;可作函数的返回值,不用将函数的返回值先保存到临时变量再拷出来。但注意:变量的生命周期,避免返回的引用在函数结束时被销毁,应传引用 形参。 引用(Reference)是C++语言相对于C语言的又一个扩充,类似于指针,只是在声明的时候用&取代了*。引用可以看做是被引用对象的一个别名,在声明引用时,必须同时对其进行初始化。引用的声明方法如下: 类型标识符 &引用名 = 被引用对象 [例1]C++引用示例: int a = 10; int &b = a; cout<<a<<" "<<b<<endl; cout<<&a<<" "<<&b<<endl; 在本例中,变量b就是变量a的引用,程序运行结果如下: 10 10 0018FDB4 0018FDB4 从这段程序中我们可以看出变量a和变量b都是指向同一地址的,也即变量b是变量a的另一个名字,也可以理解为0018FDB4空间拥有两个名字:a和b。由于引用和原始变量都是指向同一地址的,因此通过引用也可以修改原始变量中所存储的变量值,如例2所示,最终程序运行结果是输出两个20,可见原始变量a的值已经被引用变量b修改。

React中为什么要使用immutableJs

回眸只為那壹抹淺笑 提交于 2019-12-22 08:51:27
在React中为什么要使用immutableJs 一.state的不可变性 当父组件读取子组件数据form,赋值给obj,然后对obj进行一些修改过程中,直接赋值就是浅拷贝,修改obj之后会影响form对象,也就会影响子组件中的form的值,这也就是js中的隐患,在React中向上层组件或者下层组件传递对象,很难保证这个对象是否会被修改,当不希望对form产生影响的时候,需要手动深拷贝比较麻烦且浪费空间, immutableJs immutableJs里面的set或者delete更改某个值之后将会返回一个新的对象,部分数据共享。并且深拷贝对象的时候也不需要把对象里面的值全部复制一遍。每次更改都会生成一个新的对象,不会去影响原对象的值。 二.组件的重渲染 React中父组件的re-render往往会导致子组件的重渲染,这样就会产生许多不必要的渲染,可以在子组件中用PureComponent来进行判断,PureComponent就是自动填充了shouldComponent的判断函数,只判断第一层结构的。 例如父组件有这样的数据结构,传递给子组件 data : { num : 1 , } 那么在子组件中判断的时候,只会判断直接参数 props . num === nextProps . num 当数据结构比较复杂的时候 data : { nums : { num1 : 1 , num2

python深浅拷贝

青春壹個敷衍的年華 提交于 2019-12-22 07:26:26
一、涵义 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 二、拷贝相关 1、不可变数据类型是没有拷贝一说,如:数值类型、字符串类型、元组类型;元祖中有可变数据类型的时候,是可以进行拷贝的。 2、浅拷贝:数据半共享(复制其数据独立内存存放,但是只拷贝成功第一层) l1 = [1,2,3,[11,22,33]] l2 = l1.copy() print(l2) #[1,2,3,[11,22,33]] l2[3][2]='aaa' print(l1) #[1, 2, 3, [11, 22, 'aaa']] print(l2) #[1, 2, 3, [11, 22, 'aaa']] l1[0]= 0 print(l1) #[0, 2, 3, [11, 22, 'aaa']] print(l2) #[1, 2, 3, [11, 22, 'aaa']] print(id(l1)==id(l2)) #Flase 如上述代码,l2浅拷贝了l1 ,之后l2把其列表中的列表的元素给修改,从结果看出,l1也被修改了。但是仅仅修改l1列表中的第一层元素,却并没有影响l2。 比较一下l2与l1的内存地址:False,说明,l2在内存中已经独立出一部分复制了l1的数据,但是只是浅拷贝

python中的浅拷贝和深拷贝

╄→尐↘猪︶ㄣ 提交于 2019-12-21 23:27:28
文章目录 可变数据类型和不可变数据类型 深浅拷贝的实现 深浅拷贝的区别 可变数据的浅拷贝 不可变数据类型的浅拷贝 深拷贝 总结(赋值、浅拷贝和深拷贝的区别) 可变数据类型和不可变数据类型 一、什么可变数据类型和不可变数据类型 可变数据类型:value值改变,id值不变; 不可变数据类型:value值改变,id值也随之改变。 二、如何确定一种数据类型是可变的还是不可变的 根据可变数据类型与不可变数据类型的概念,只需要在改变value值的同时,使用id()函数查看变量id值是否变化就可以知道这种数据类型是可变的还是不可变的了。 三、可变数据类型和不可变数据类型都有什么 不可变数据类型:布尔值、字符串、数值型、元组等 可变数据类型:列表、字典 深浅拷贝的实现 深浅拷贝的区别 可变数据的浅拷贝 不可变数据类型的浅拷贝 它的内外都不相同(内存地址) 深拷贝 总结(赋值、浅拷贝和深拷贝的区别) 来源: CSDN 作者: 难得 yx 链接: https://blog.csdn.net/weixin_45649763/article/details/103647904

批量配置SSH互信脚本

独自空忆成欢 提交于 2019-12-21 16:43:16
Ps: 关于SSH密钥验证 .ssh下一般来说有4个文件id_rsa,id_rsa.pub,authorized_keys,known_hosts 其作用分别为: 私钥,ssh-keygen生成的私钥,与公钥成对 公钥,ssh-keygen生成的共钥,与私钥成对 authorized_keys,存储已有的公钥,每当有客户端来访问服务器,服务器都会在此文件中找到对应客户端user的的公钥,与其出示的私钥进行验证,如果成功那么允许那个用户登录。 known_hosts,每次新访问一个服务器,都会把这个新服务器发来公钥记入此文件(建立SSH连接前server会把公钥发给客户端),其作用是在二次访问此server时证明此server不是什么伪造的server而是你以前访问过的那个server(如果server IP变动或者重装了ssh,公钥是会变的)。 为了实现互信访问authorized_keys和known_hosts都要匹配好,其中authorized_keys用于用户验证,而known_hosts用于服务器验证。 因此为了能够实现两服务器之间的互信,可以在一个服务器上生成一个公私钥对儿,然后将公钥存到authorized_keys中,之后将.ssh文件夹拷贝到另一服务器,最后使用ssh互访一次即可(为了更新knowhosts)。