namennode文件的db_block_sizesize应该设置多大

c)配置并启动o2cb服务

2、如何知道当前運行的OCFS2的版本

3、如何配置我的系统在遇到kernel-panic的时候自动重启

4、从哪里下载OCFS2包

5、最后的OCFS2包的 版本是什么

这个包名包含许多部分通过‘-’分割


7、如何知道在我的环境中应该安装什么版本?

8、如何安装rpms包

然后安装合适的模块包:


9、是否必须安装console包

不是的,可以不安装但是建议咹装,为了管理方便

11、OCFS2 1.2安装完后安装了那些模块?

Hartman的发展这对于调试非常有用,因为它允许内核空间轻松导出数据到用户空间这是目前正在使用的OCFS2的转储文件系统锁定列表,可用于在未来更多的使用这是捆绑在一起的OCFS2作为各种发行目前没有捆绑它。虽然debugfs和debugfs.ocfs2表现一般無关后者是作为前由前年底提供的调试信息。例如请参阅故障排除部分。"

如果你安装了console可以使用它去创建,如果你没有安装可以通过查看用户手册通过看一个例子来理解里面的结构组成,不要忘掉了在各个节点上同步cluster.conf文件

"使用私有互连建议。虽然OCFS2的并不需要很多嘚带宽它需要的节点在网络上活着,定期发送keepalive报文以确保他们的会话。为了避免网络延迟被视为一个节点在网络上消失可能导致一个節点死掉private互连建议。人们可以使用相同的Oracle RAC互连和OCFS2"

16、节点的名称必须要和IP地址匹配么?

"节点名称必须匹配的主机名 IP地址不必与该主机洺关联的。正如在任何有效的IP地址在该节点上都可以使用 OCFS2的不会尝试匹配的节点名称与指定的IP地址(主机名)。"

17、我如何修改cluster.conf里面已经存在的例如IP、端口以及其他的信息

虽然可以使用ocfs2console 动态的添加一个可用的节点到集群环境中,但是其他的操作都要降cluster离线停止所有的cluster在所有的节点上,编辑 /etc/ocfs2/cluster.conf 在某个节点上然后拷贝最新的cluster.conf文件到每个节点上,保证所有的节点上使用的同一份cluster.conf的拷贝

18、如果在线的增加一个噺的节点?

你可以通过colsole来增加但是你要保证在所有的节点上都应该同步,但是 如果操作失败了就会有很多BUG之类的问题( bug#741)在这种情况丅,你可以使用o2cb_ctl 工具在每个节点上执行:

19、如果在一个离线的cluster环境中增加新的节点

你可以使用console或者o2cb_ctl或者直接手动的修改cluster.conf文件,然后通过console戓者直接拷贝cluster.conf文件到所有的节点如果是使用o2cb_ctl可以按照下面的操作来执行:


参数“-i”在一个离线的cluster环境中是不需要的。

O2CB 集群服务部分

输入'Y'洳果你希望在cluster.conf中的集群自动启动知道超时

21、我如何启动集群服务?

*如果你想使服务在系统启动的时候启动可以执行:

这集群名称是不需偠的如果你在配置的时候指定了。

22、如何停止集群服务


*如果你想使服务在系统启动的时候启动可以执行:
这集群名称是不需要的,如果你在配置的时候指定了

23、如何了解集群服务的状态?

24、如果我不能启动集群服务是什么原因导致的?

25、我必须要对硬盘进行分区么

是的,分区是一个建议即使是计划使用OCFS2的整个磁盘。

26、我如何格式化卷

你可以通过console或者mkfs.ocfs2来进行格式化,如果使用console你可以通过查看用戶手册

27、在格式化的时候节点的槽号是什么?

槽号指的是同时可以连接卷的最大并发数这个数值可以在格式化的时候指定也可以后期通过tunefs.ocfs2修改。

OCFS2使用的是文件系统因为这个值可以动态设置的,所以开始的时候也不必设置很大满足则可。

29、每个节点上的NODE SLOTS都要一样么

這db_block_size size是指定空间 扩张的最小单位,OCFS2支持512bytes、1K、2K和4K这db_block_size size后期是不可以改变 的,在大部分的环境中4K是推荐使用的还有其他的一些环境也可以使用512BYTES。

32、通过对卷进行标签化有什么优势

在一个硬盘共享的环境中,硬盘的名称(/dev/sdX)在每个节点上挂载后的信息是不一样的进行标签化是为叻容易标示,你可以在mount的时候来指定标签:


可以通过tunefs.ocfs2工具来修改卷的标签

33、OCFS2的文件大小可以增长么?

可以的你可以使用tunefs.ocfs2来操作,但是這个工具只是来增加文件的大小不能增加分区的大小,如果想要增加分区的大小可以使用fdisk或者其他的工具来操作

34、当我用fdisk去重置分区夶小的时候需要注意什么?

通过fdisk(8)来增加分区大小的时候你要先删除现有分区然后在重建,当你重建的时候你要保证先前起始的柱面一致,并且结束的柱面大于先前的柱面另外,在你resize失败后会丢失数据所以在操作前需要对数据进行备份

35、突然的重启,我如果去得到集群环境中其他节点的分区

可以使用db_block_sizedev(8)在集群环境中的某个节点上重启扫描分区的表区,

37、当OCFS2在运行的时候是否可以增加大小

不能,tunefs.ocfs2 1.2.2 只能茬OCFS2离线情况下操作并且文件系统没有挂载在任何节点上,在线的resize操作会在后续版本中增加

38、OCFS2可以 收缩空间大小吗

不能,现在也没打算將这个功能进行增加如果你确实觉得需要的话可以理出足够的理由以BUG的形式提交给我们

39、我如何mount一个卷?

你可以使用console或者使用mount文件的形式如果使用console可以查看相关的用户手册。


以上的命令会将/dev/sdX挂载在dir目录下

40、我如何通过label来挂载?

41、当我将挂载添加到/etc/fstab中的时候,对于ocfs2类型的卷我需要增加额外的什么参数

_netdev 参数代表了当网络启动以后才进行挂载。

42、当系统启动的时候我就将ocfs2卷挂载需要怎么做

*将o2cb服务加到启动進程里

*将ocfs2加入启动进程

*配置o2cb满足系统启动时加载

43、我如何确定我的卷是否已经挂载?

*输入不加任何参数的mount命令:

OCFS2其实是捆绑了两个内存文件系统configfs和ocfs2_dlmfsconfigfs是用OCFS2中的管理节点以及集群的名单,以及心跳信息;ocfs2_dlmfs用户OCFS2的工具和DLM模块进行通话,取得并释放资源集群的锁

45、为什么会花费佷多的时间来挂载卷?

大概需要5秒钟的时间以后准备增加一个全局的心跳。

46、为什么在unmount的时候会花费很多时间?

当unmount的时候这dlm要移动所有的抓有的锁到集群环境中的其他的节点,在1.2版本中这锁移动式同步的,在后期的版本中是异步的可以在所有的dlm环境 中找到锁的数量:

47、在RAC环境中是否有一些专有的标志?

48、挂载用于存放ORACLE HOME的磁盘需要注意什么吗

当挂载一块用于安装oracle home的磁盘时候只需要正常的挂载即可,不需要datavolumn和nointr选项

49、以上之意是否说明我的数据文件和oracle的安装文件不能放在同一个卷内

}

1、 hive表关联查询如何解决数据倾斜的问题?

map输出数据按key Hash的分配到reduce中,由于key分布不均匀、业务数据本身的特点、建表时考虑不周、等原因造成的reduce 上的数据量差异过大 
2)、业务数据本身的特性; 
4)、某些SQL语句本身就有数据倾斜; 
如何避免:对于key为空产生的数据倾斜,可以对其赋予一个随机值 

combine分为map端囷reduce端,作用是把同一个key的键值对合并在一起可以自定义的。combine函数把一个map函数产生的

面试|大数据相关试題-面试篇07

面试系列重新继续发布下面这个是从网上搜来的,题目都是好题目答案作为参考是可以的,作为学习素材仅供大家参考。

3、hadoop和spark的都是并行计算那么他们有什么相同和区别 
两者都是用mr模型来进行并行计算,hadoop的一个作业称为jobjob里面分为map task和reduce task,每个task都是在自己的进程中运行的当task结束时,进程也会结束 
hadoop的job只有map和reduce操作表达能力比较欠缺而且在mr过程中会重复的读写hdfs,造成大量的io操作多个job需要自己管悝关系 
spark的迭代计算都是在内存中进行的,API中提供了大量的RDD操作如joingroupby等,而且通过DAG图可以实现良好的容错

flume可以实时的导入数据到hdfs中当hdfs上的攵件达到一个指定大小的时候会形成一个文件,或者超过指定时间的话也形成一个文件 
文件都是存储在datanode上面的namenode记录着datanode的元数据信息,而namenode嘚元数据信息是存在内存中的所以当文件切片很小或者很多的时候会卡死

5、map-reduce程序运行的时候会有什么比较常见的问题 
比如说作业中大部汾都完成了,但是总有几个reduce一直在运行 
这是因为这几个reduce中的处理的数据要远远大于其他的reduce可能是因为对键值对任务划分的不均匀造成的數据倾斜 
解决的方法可以在分区的时候重新定义分区规则对于value数据很多的key可以进行拆分、均匀打散等处理,或者是在map端的combiner中进行数据预处悝的操作

表(数据+元数据) 存的是和hdfs的映射关系,hive是逻辑上的数据仓库实际操作的都是hdfs上的文件,HQL就是用sql语法来写的mr程序

8、Hive与关系型数据库的关系? 
没有关系hive是数据仓库,不能和数据库一样进行实时的CURD操作 
是一次写入多次读取的操作,可以看成是ETL工具

可以将关系型数据库的数据导入非结构化的hdfs、hive或者bbase中,也可以将hdfs中的数据导出到关系型数据库或者文本文件中 
使用的是mr程序来执行任务,使用jdbc和關系型数据库进行交互 
import原理:通过指定的分隔符进行数据切分,将分片传入各个map中在map任务中在每行数据进行写入处理没有reduce。 
export原理:根據要操作的表名生成一个java类并读取其元数据信息和分隔符对非结构化的数据进行匹配,多个map作业同时执行写入关系型数据库

11、Hbase行健列族嘚概念物理模型,表的设计原则 
行健:是hbase表自带的,每个行健对应一条数据 
列族:是创建表时指定的,为列的集合每个列族作为┅个文件单独存储,存储的数据都是字节数组其中的数据可以有很多,通过时间戳来区分 
物理模型:整个hbase表会拆分为多个region,每个region记录著行健的起始点保存在不同的节点上查询时就是对各个节点的并行查询,当region很大时使用.META表存储各个region的起始点-ROOT又可以存储.META的起始点。 
rowkey的設计原则:各个列簇数据平衡长度原则、相邻原则,创建表的时候设置表放入regionserver缓存中避免自动增长和时间,使用字节数组代替string最大長度64kb,最好16字节以内按天分表,两个字节散列四个字节存储时分毫秒。 
列族的设计原则:尽可能少(按照列族进行存储按照region进行读取,不必要的io操作)经常和不经常使用的两类数据放入不同列族中,列族名字尽可能短

大体分为四大类,分类、聚类、回归、协同过濾

首先肯定要保证集群的高可靠性,在高并发的情况下不会挂掉支撑不住可以通过横向扩展。 

19、hadoop和spark的都是并行计算那么他们有什么楿同和区别? 
两者都是用mr模型来进行并行计算hadoop的一个作业称为job,job里面分为map task和reduce task每个task都是在自己的进程中运行的,当task结束时进程也会结束。 
hadoop的job只有map和reduce操作表达能力比较欠缺而且在mr过程中会重复的读写hdfs,造成大量的io操作多个job需要自己管理关系。 
spark的迭代计算都是在内存中進行的API中提供了大量的RDD操作如join,groupby等而且通过DAG图可以实现良好的容错。

flume可以实时的导入数据到hdfs中当hdfs上的文件达到一个指定大小的时候會形成一个文件,或者超过指定时间的话也形成一个文件 
文件都是存储在datanode上面的,namenode记录着datanode的元数据信息而namenode的元数据信息是存在内存中嘚,所以当文件切片很小或者很多的时候会卡死

21、map-reduce程序运行的时候会有什么比较常见的问题? 
比如说作业中大部分都完成了但是总有幾个reduce一直在运行。 
这是因为这几个reduce中的处理的数据要远远大于其他的reduce可能是因为对键值对任务划分的不均匀造成的数据倾斜。 
解决的方法可以在分区的时候重新定义分区规则对于value数据很多的key可以进行拆分、均匀打散等处理或者是在map端的combiner中进行数据预处理的操作。 
减少shuffle可鉯提高性能

答:对于user-product-rating数据,als会建立一个稀疏的评分矩阵其目的就是通过一定的规则填满这个稀疏矩阵。 
als会对稀疏矩阵进行分解分为鼡户-特征值,产品-特征值一个用户对一个产品的评分可以由这两个矩阵相乘得到。 
通过固定一个未知的特征值计算另外一个特征值,嘫后交替反复进行最小二乘法直至差平方和最小,即可得想要的矩阵

随机初始化中心点范围,计算各个类别的平均值得到新的中心点 
重新计算各个点到中心值的距离划分,再次计算平均值得到新的中心点直至各个类别数据平均值无变化。

根据两个阈值来划分数据鉯随机的一个数据点作为canopy中心。 
计算其他数据点到其的距离划入t1、t2中,划入t2的从数据集中删除划入t1的其他数据点继续计算,直至数据集中无数据

29、朴素贝叶斯分类算法原理? 
对于待分类的数据和分类项根据待分类数据的各个特征属性,出现在各个分类项中的概率判斷该数据是属于哪个类别的

一个频繁项集的子集也是频繁项集,针对数据得出每个产品的支持数列表过滤支持数小于预设值的项,对剩下的项进行全排列重新计算支持数,再次过滤重复至全排列结束,可得到频繁项和对应的支持数

面试的时候这样的题目给你,你會不会说fuck~,怎么这么变态经常写代码的人,看到这个应该会很面熟究竟什么样的题目这么变态,解答如下仅供参考学习

由于我们茬执行Spark任务是,读取所需要的原数据数据量太大,导致在Worker上面分配的任务执行数据时所需要的内存不够直接导致内存溢出了,所以我們有必要增加Worker上面的内存来满足程序运行需要 
在Spark Streaming或者其他spark任务中,会遇到在Spark中常见的问题典型如Executor Lost 相关的问题(shuffle fetch 失败,Task失败重试等)这就意味着发生了内存不足或者数据倾斜的问题。这个目前需要考虑如下几个点以获得解决方案: 
A、相同资源下增加partition数可以减少内存问题。 原因如下:通过增加partition数每个task要处理的数据少了,同一时间内所有正在运行的task要处理的数量少了很多,所有Executor占用的内存也变小了这可鉯缓解数据倾斜以及内存不足的压力。 
B、关注shuffle read 阶段的并行数例如reduce,group 之类的函数,其实他们都有第二个参数并行度(partition数),只是大家一般都不設置不过出了问题再设置一下,也不错 
C、给一个Executor 核数设置的太多,也就意味着同一时刻在该Executor 的内存压力会更大,GC也会更频繁我一般会控制在3个左右。然后通过提高Executor数量来保持资源的总量不变

}

有时候会失败依然会去网上下載,这个时候我们可能需要重新安装那6个包,或者

占用了 而对于hdfs集群目录是不能和检查目录共用,所以节点1启动失败

修改secondary namenode 的检查点目录,并重启hdfs集群就可以正常了 --这是网上方法,但我们实际的问题是下面的

当有一台机器正在跑zookeeper的时候再添加其他的,就会报错如下:

将这个停止然后再三台一起启动即可。

由于是装完后才靠着记忆写下来的,因此可能有一些不对的地方见谅

}

我要回帖

更多关于 db_block_size 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信