• [技术干货] JobHistoryServer及NodeManager启动失败
    现象描述Mapreduce启动成功,但是NodeManager和JobHistoryServer为“恢复中”状态,服务为不可用状态。 可能原因 [*]HDFS未启动成功或者HDFS处于安全模式无法提供服务。 [*]Yarn配置项“yarn.nodemanager.local-dirs”和“yarn.nodemanager.log-dirs”空间不足。 定位思路查看是否有Yarn服务不可用告警产生,并且查看告警原因。 处理步骤 [*]登录FusionInsight Manager系统。 在浏览器地址栏中输入访问地址,地址格式为http://FusionInsight Manager系统的WebService浮动IP地址:8080/web。 [*]选择“服务管理”,重启HDFS服务。 [*]若服务不可用原因为All nodemanagers are lost,则检查 “yarn.nodemanager.local-dirs”和“yarn.nodemanager.log-dirs”路径所在的磁盘空间。
  • [技术干货] HDFS服务一直异常
    本帖最后由 建赟 于 2018-5-31 15:09 编辑现象描述HDFS服务界面显示服务不可用,HBase、Hive、MapReduce等服务故障,或无法启动。 可能原因 [*]HDFS进入安全模式。 [*]HDFS依赖的ZooKeeper服务异常。 定位思路 [*]检查HDFS是否处于安全模式。 [*]检查ZooKeeper服务是否运行正常。 处理步骤 [*]确认HDFS是否处于安全模式。 [*]是,直接退出HDFS的安全模式。 [*]否,执行步骤2. [*]登录FusionInsight Manager管理界面,在ZooKeeper的服务页面,检查服务是否正常,并在“告警管理”页面检查是否有ZooKeeper服务的故障告警。 [*]按照ZooKeeper的告警指导,恢复服务,并确保ZooKeeper服务正常。 [*]ZooKeeper服务正常后,尝试重启HDFS服务,并检查是否正常。 [*]是,操作结束。 [*]否,执行步骤5. [*]检查NameNode是否故障,并尝试修复。
  • [下午茶时光] 【Day 48--2018/4/3】Hadoop分布式存储与传统SQL存储比较及存储操作描述
    本帖最后由 Sabrina 于 2018-4-3 15:47 编辑 13600 【下午茶时光——云存储知识点陪你喝咖啡】 Hadoop分布式存储与传统SQL存储比较及存储操作描述 Google为了应对快速增长的数据处理,开发了一套算法。后来有人根据算法的思想,开发出开源的软件框架,就是Hadoop,随着越来越多的组织和个人开发者在框架开发中不断贡献改进,Hadoop已经形成一套家族产品,成为当下最成功最流行的分布式大数据处理框架。Hadoop受到很多组织青睐,是因为有两大因素: 一、超大规模的数据处理, 通常 10TB 以上;二、超复杂的计算工作,例如统计和模拟。Hadoop在很多应用场景中发挥着主要功用,如大规模统计、ETL数据挖掘、大数据智能分析、机器学习等。13602Hadoop 和 传统SQL关系数据存储 有什么区别?Hadoop 读时模式(Schema on read),传统SQL是写时模式(Schema on write)。传统数据库存储时对数据进行检查,需要检查表结构定义等必须匹配后才让存储(write),否则就报错。Hadoop 是你拿过任何数据格式我都给你存储,只要你给我读取这些数据的接口程序,在用到这些数据时(read),才会检查。13603左边是Schema on Read , 右边是Schema on Write。右边数据格式不对会报错;左边更关注读数据的规则。Hadoop 是分布式数据库, 而大部分SQL 是集中存储的。举例来讲: 微信后台有可能数千个服务器节点用于存储微信聊天记录,假设我的聊天记录分布在60个不同的服务节点上。而对于关系数据库,会集中在多个表空间中。假如我搜索我的一个聊天记录,Hadoop 会把搜索任务分成多个均衡负载的搜索任务运行在60个节点上。而传统SQL会逐个搜索存储空间,直到全部遍历。如果没有完全搜索完,会返回搜索结果吗? Hadoop的回答是YES,而传统SQL会是NO。Hadoop 家族的产品 Hive,可以让不怎么懂SQL 的客户开发出基本上和SQL同样功能的查询Hadoop 的数据写入、备份、删除操作一、数据写入在客户端想HDFS写数据的过程中,主要分为下面几个过程:[*]客户端将数据缓存到本地的一个临时文件中; [*]当这个本地的临时文件到达HDFS中的块大小限制时,客户端访问Namenode,Namenode将文件的名字**到HDFS命名空间中,并且为其分配相应的存储位置; [*]Namenode与分配好的Datanode进行沟通,确定存储位置可用,然后将这些存储位置信息返回给客户端; [*]客户端将本地的临时文件传输到Datanode中; [*]当写文件结束,临时文件关闭时,会将已有的临时数据传输到Datanode中,并告知Namenode写数据完成; [*]Namenode将该文件改变为持久的一致性状态,也就事将该操作记录到日志EditLog中。如果此时Namenode宕掉,那么文件信息丢失。上面的过程主要特点是写入数据先缓存到本地,在达到块大小限制时才与Datanode通信进行传输。这样的好处在于避免在客户写数据的过程中持续占用网络带宽,这对于处理多用户大量数据的写入是非常关键的。二、数据备份数据的写入同时伴随这数据块的备份,过程如下:[*]在客户端临时数据达到一个块时,与Namenode通信,得到一组Datanode地址,这些Datanode就是用来存储该数据块的; [*]客户端首先将该数据块发送到一个Datanode上,Datanode在接受时是以4kb为单位进行,我们把这些小单位称为缓存页(参考了Linux管道文件的说法); [*]对于第一个接到数据的Datanode,它把缓存页中的数据写入自己的文件系统,另一方面,它又将这些缓存页传送给下一个Datanode; [*]重复3的过程,第二个Datanode又将缓存页存储在本地文件系统,同时将它传送给第三个Datanode; [*]如果HDFS中的备份数目设置为3,那么第三个Datanode就只需要将缓存页存储即可。上面的过程中,数据块从客户端流向第一个Datanode,然后再流向第二个,从第二个再到第三个,整个是一个流水线过程,中间不会有停顿。所以HDFS将它称为Replication Pipelining。为什么不采取客户端同时向多个Datanode写数据的方法呢?其实从Pipelining这个称呼上就可以猜到,客户端和Datanode采用的缓存文件都是管道文件,即只支持一次读取。三、 数据删除HDFS中的数据删除也是比较有特点的,并不是直接删除,而是先放在一个类似回收站的地方(/trash),可供恢复。对于用户或者应用程序想要删除的文件,HDFS会将它重命名并移动到/trash中,当过了一定的生命期限以后,HDFS才会将它从文件系统中删除,并由Namenode修改相关的元数据信息。并且只有到这个时候,Datanode上相关的磁盘空间才能节省出来,也就是说,当用户要求删除某个文件以后,并不能马上看出HDFS存储空间的增加,得等到一定的时间周期以后(现在默认为6小时)。对于备份数据,有时候也会需要删除,比如用户根据需要下调了Replicaion的个数,那么多余的数据备份就会在下次Beatheart联系中完成删除,对于接受到删除操作的Datanode来说,它要删除的备份块也是先放入/trash中,然后过一定时间后才删除。因此在磁盘空间的查看上,也会有一定的延时。那么如何立即彻底删除文件呢,可以利用HDFS提供的Shell命令:bin/hadoop dfs expunge清空/trash。作者:山宏海量 来源:51CTO
  • [技术干货] ES-Hadoop导数据的时候报"Could not write all entries"异常
    ES-Hadoop是一个开源的数据导入项目,支持数据从hdfs,hive,spark,storm等其它大数据服务中导入ES。 使用的时候经常报:"org.elasticsearch.hadoop.EsHadoopException:Could not write all entries [148/148] (Maybe ES was overloaded?). Error sample(first [5] error messages)"这种异常,这个问题是ES后台的bulk的线程池最大只支持接受200的请求数队列,超过的请求会被rejected,抛出这个异常,使用的时候建议根据情况调整客户端的并发写入请求数(调整到一个合适的阈值),另外被rejected的http请求ES-Hadoop应该是有重试机制的,默认重试三次,每次重试等待时间10秒,这是可配参数,通过修改参数"es.batch.write.retry.count"和"es.batch.write.retry.wait"修改即可。 上面提供的方案只是提供寻找客户端的最佳并发写入请求数,使得ES的写入性能最优,如果要加大索引数据的写入的性能,可通过调整refresh和flush的时间等参数来提高数据的入库速度。
  • [问题求助] [Maven]编译Hadoop 3.0.0时找不到aws的依赖的jar包
    [code][ERROR] Failed to execute goal on project hadoop-aws: Could not resolve dependencies for project org.apache.hadoop:hadoop-aws:jar:3.0.0: Could not find artifact com.amazonaws:DynamoDBLocal:jar:1.11.86 in huaweicloud (https://repo.huaweicloud.com/repository/maven/) -[/code] 不使用Mirror时,正常从amazon下载了: [code]Downloading from dynamodb-local-oregon: https://s3-us-west-2.amazonaws.com/dynamodb-local/release/org/apache/servicemix/servicemix-pom/5/servicemix-pom-5.pom [/code]所以,能否添加amazon的mvn仓库。
  • [技术干货] 【专属版】【从腿毛到大腿系列六】使用工作流进行数据可视化操作
              机器学习的本质是对数据的处理,探索数据内在的特性。为了能更加直观的查看数据的各种特性,数据可视化操作具有重大的实际价值。华为机器学习服务预置的算法节点提供了数据可视化功能,以下内容以读取HDFS中的数据为例,介绍如何工作流实现数据可视化操作。步骤一        在MLS实例工作界面,创建并进入工作流编辑界面。图1 工作流编辑界面(点击放大)9932步骤二        在左侧节点库中,将“读取HDFS文件”节点拖至中间画布中。单击该节点,在右侧参数配置区域,配置参数(数据文件根据实际情况填写)。图2 编辑节点(点击放大)9933步骤三       完成配置后,右键该节点,单击““输出数据集”数据预览”,即弹出“数据预览”页面,如下图。在该页面中,可以查看多种可视化图表信息。图3 可视化操作(点击放大)9934图4 数据预览界面(点击放大)9935 数据预览界面支持的可视化内容包括:数据集特征列数据集元数据数据集统计值数据集统计直方图以上内容只是以“读取HDFS文件”节点为例做说明。实际使用中,所有数据处理相关的节点,只要有“输出数据集”数据预览操作,都具有数据可视化功能。 上一篇:【从腿毛到大腿系列五】如何为项目配置计算资源    
  • [问题求助] 怎么传数据和jor程序jar包到mapreduce服务的HDFS上?
    本帖最后由 bigdata11 于 2017-12-13 11:28 编辑怎么传数据和jor程序jar包到mapreduce服务的HDFS上? 在快速入门里http://support.huaweicloud.com/mrs_ksrm/index.html,只有怎么上传program和input数据到OBS,没有介绍如何上传到HDFS上。
  • [问题求助] Spark和Hadoop什么关系?
    Spark和Hadoop什么关系?
  • [问题求助] 数据存储在OBS和HDFS有什么区别?
    如题。
  • [技术干货] 【专属版】【从腿毛到大腿系列三】使用工作流(Workflow)进行数据的读取和保存
         MLS提供工作流作为可视化工作环境,用户可以通过拖拽和连接的方式组合不同的节点,创建工作流,完成数据分析、预测流程。本文通过构建读取和保存HDFS文件的工作流为例,介绍工作流的使用流程。使用工作流要包括以下4个操作步骤,分别是:登录MLS实例创建项目创建工作流编辑并运行工作流一、登录MLS实例步骤1       在“MLS实例管理”页面,单击已创建的“mls-demo”实例右侧的“访问”。图1 MLS实例管理界面9611步骤2       在用户登录界面,输入账户名、用户名和密码,登录MLS实例(账户名和用户名同为控制台登录的用户名)。图2 用户登录界面9612二、创建项目步骤1       在MLS实例界面,单击左侧导航栏“项目”。步骤2      在“项目”页面,单击“创建”。步骤3       在弹出的“创建项目”对话框中,填写名称和描述,单击“确定”,完成。三、创建工作流步骤1       在MLS实例界面,单击左侧导航栏的“项目”,进入项目列表界面。步骤2       在“bank”项目的“工作流”页签中,单击“创建”。步骤3       在弹出的“创建工作流”对话框中,“名称”设置为“BankModel_wf”。 步骤4       单击“确定”,创建工作流完成。 四、编辑并运行工作流步骤1       进入“BankModel_wf”的工作流编辑界面。进行算法节点的编排,然后为每个节点配置对应的参数。步骤2       将“输入”展开目录中的“读取HDFS文件”节点拖拽至画布中。单击该节点,按照表1配置参数。表1“读取HDFS文件”节点参数配置样例参数名称样例值数据格式CSV数据文件“/user/omm/mls/BANK_DATA”导入元数据勾选元数据文件“/user/omm/mls/BANK.desc”保存元数据文件不勾选处理异常值null替代值保存异常记录不勾选注:“数据文件”为待读取数据的路径,用户请按实际情况填写。步骤3      将“输出”展开目录中的“保存HDFS文件”节点拖拽至画布中。单击该节点,按照表2配置参数。表2“保存HDFS文件”节点参数配置样例参数名称样例值保存目录/user/mls文件名Bank_Save文件格式CSV字段分隔符,允许覆盖勾选注:“保存目录”为待保存数据的路径,用户请按实际情况填写。步骤4    将两个节点相连,如图3所示。图3 工作流界面9615步骤5      单击左上角运行按钮,运行工作,在画布下方,显示工作流的运行日志。步骤6      返回MLS实例的工作界面,单击左侧导航栏的“数据”。在“文件系统”页面中,在“/user/mls”目录下查看已保存的“Bank_Save”文件夹。图4 数据查看界面9616上一篇:【从腿毛到大腿系列二】上传业务数据下一篇:【从腿毛到大腿系列四】使用交互式记事本(Notebook)进行案例开发    
  • HDFS EC方案介绍
    1. 编码算法RS、ISA-L、XOR,默认RS 6+3,当前支持的配比: RS 3+2,RS 6+3, RS 10+4,RS-LEGACY 6+3。2. 仅支持Append写入。3. HDFS EC采用条带化的布局方式。在HDFS中,数据最终会被持久化为DataNode上一个(或多个)目录下的文件,每个文件称为一个StorageBlock,大小不超过64MB,一个在逻辑上连续的IO在StorageBlock中依然是连续的。EC方式下DataNode的数据还是会被持久化为这样的StorageBlock,但StorageBlock内部的数据在逻辑上不连续。StorageBlock由StripingCell组成,StripingCell为读写IO过程中进行数据条带化的基本单位,通常为64KB - 1MB。如果采用RS 6+3的编码方式,则6个datacell和3个parity cell组成一个条带,提高IO并发度和减少EC编码中的空间对齐导致的浪费。4. 当写入文件时,ECClient首先向NameNode查并对文件加锁,如果为初次创建文件,则申请分配BlockGroup;如果是追加写,且文件末尾对应的BlockGroup未写满,则返回文件末尾对应的BlockGroup。每个BlockGroup对应一组DataNode列表(采用RS 6+3编码,则DataNode列表中包含9个DataNode)。ECClient将IO按照StripingCell切片,计算冗余数据,当一个条带的StripingCell在客户端都准备好后,会并行发送到各个DataNode。在写过程中可以容忍一定数目的写DataNode失败。以RS(6,3)为例,如果在写一个块组时,失败的DataNode不超过3个。 5. 当读出文件时,ECClient首先向NameNode查询读取位置对应的BlockGroup(可能有多个,根据读取长度而定),ECClient在读取时依然以StripingCell为单位进行并发读取,在读的时候就会遇到个别数据块丢失的情况。为了能使读操作进行下去,client需要连接一定数目的校验块对应的DataNode,读取相应的校验数据并通过解码来得到丢失的数据。