HDFS

Hbase优化

|▌冷眼眸甩不掉的悲伤 提交于 2020-04-07 09:34:45
一:高可用 1):关闭集群    stop-hbase.sh 2):在conf目录下创建 backup-masters 文件    touch backup-masters 3):backup-masters文件中配置高可用 HMaster 节点    echo k200 > backup-masters 4):将整个 conf 目录 scp 到其他节点    scp -r /soft/hive/conf/ k200:/soft/hive/ 5):打开页面测试 二:Hadoop 的通用性优化 1):NameNode 元数据备份使用 SSD 2):定时备份NameNode 上的元数据    通过定时任务复制元数据目录即可 3):为 NameNode 指定多个元数据目录    使用 dfs.name.dir 或者 dfs.namenode.name.dir 指定。这样可以提供元数据的冗余和健壮性,以免发生故障。 4):NameNode的 dir 自恢复    设置 dfs.namenode.name.dir.restore 为 true,允许尝试恢复之前失败的dfs.namenode.name.dir目录,在创建 checkpoint时做此尝试,如果设置了多个磁盘,建议允许。 5):HDFS保证 RPC 调用会有较多的线程数    hdfs-site.xml:    属性:dfs

Do users need to exist across all nodes to be recognized by the hadoop cluster / HDFS?

て烟熏妆下的殇ゞ 提交于 2020-04-07 09:23:49
问题 In MapR hadoop, in order for a user to be able to access HDFS or use YARN for programs, they needed to exist across all nodes in the cluster (with same uid and gid), this includes client nodes that don't act as either data nodes or control nodes (MapR does not really have the concept of namenodes). Is this the same for Hortonworks HDP? 回答1: Found this answer on the Hortonworks community site: User should not have account on all the nodes of the cluster. He should only have account on edge

Do users need to exist across all nodes to be recognized by the hadoop cluster / HDFS?

拜拜、爱过 提交于 2020-04-07 09:22:29
问题 In MapR hadoop, in order for a user to be able to access HDFS or use YARN for programs, they needed to exist across all nodes in the cluster (with same uid and gid), this includes client nodes that don't act as either data nodes or control nodes (MapR does not really have the concept of namenodes). Is this the same for Hortonworks HDP? 回答1: Found this answer on the Hortonworks community site: User should not have account on all the nodes of the cluster. He should only have account on edge

Do users need to exist across all nodes to be recognized by the hadoop cluster / HDFS?

旧巷老猫 提交于 2020-04-07 09:22:07
问题 In MapR hadoop, in order for a user to be able to access HDFS or use YARN for programs, they needed to exist across all nodes in the cluster (with same uid and gid), this includes client nodes that don't act as either data nodes or control nodes (MapR does not really have the concept of namenodes). Is this the same for Hortonworks HDP? 回答1: Found this answer on the Hortonworks community site: User should not have account on all the nodes of the cluster. He should only have account on edge

hdfs的安全模式

不想你离开。 提交于 2020-04-07 00:31:01
  安全模式是hdfs所处的一种特殊状态,在这种状态下,文件系统只接受读数据的请求,而不接受删除修改等变更请求。在NameNode主节点启动时,HDFS首先进入安全模式,DataNode在启动的时候会向namenode汇报可用的block等状态,在整个系统达到安全标准时(最小副本数不小于99.9%,小于则一直处于安全模式),HDFS自动离开安全模式。如果HDFS处于安全模式下,则文件block不能进行任何的副本操作,因此达到最小的副本数量要求是基于datanode启动时的状态来判定的,启动时不会做任何复制,从而达到最小副本数(启动时block副本大于等于最小副本要求的所有block的数量,相同的block备份计数为一)要求,hdfs集群刚启动时默认30s的时间是处于安全期的,只有过了30s后集群脱离了安全期,然后才可以对集群进行操作。   hadoop dfsadmin -safemode get #查看当前的模式   hadoop dfsadmin -safemode enter #进入安全模式   hadoop dfsadmin -safemode leave #退出安全模式 来源: https://www.cnblogs.com/dan2/p/12650622.html

hadoop分布式文件系统HDFS学习

∥☆過路亽.° 提交于 2020-04-06 23:21:05
hdfs解决物理计算机存储能力不能满足数据集的要求时遇到的问题,这个系统架构于网络之上,会引入网络编程的复杂性,因此分布式文件系统比普通完成磁盘文件系统更为复杂。 hdfs基于流数据模式访问和处理超大文件的需求而开发的,它可以运行于廉价的商用服务器上,总的来说,可以将 hdfs的主要特点概括为以下几点: (1)处理超大文件 这里指的超大文件通常指数百GB,甚至是数百TB大小的文件。目前在实际应用中,hdfs已经能用来存储管理PB级的数据了。 (2)流式的访问数据 hdfs的设计建立在更多的响应“一次写入,多次读取”任务的基础之上。这意味着一个数据集一旦由数据源生成,就会被复制分发到不同的存储节点中,然后响应各种各样的数据分析任务请求。在多数情况下,分析任务都会涉及数据集中的大部分数据,也就是说对hdfs来说,请求读取整个数据集要比读取一个记录更加高效。 (3)运行在廉价的商用机器集群上 hadoop设计对硬件需求比较低,只需运行在廉价的商用硬件集群上,但廉价商用机也意味着大型集群出现节点故障情况概率高,这就要求在设计hdfs时要充分考虑数据的可靠性,安全性及高可用性。 hdfs在一些方面有一定的局限性,主要在以下几个方面。 (1)不适合低延迟数据访问 如果要处理一些用户要求时间比较短的低延迟应用请求,则hdfs不适合。hdfs是为了处理大型数据集分析任务的

Hadoop shell常用命令

自作多情 提交于 2020-04-06 20:12:28
总结一些 Hadoop 常用的 shell 命令: 命令 说明 hdfs fs -help 查看命令帮助 hdfs fs -ls / 查看 hdfs 根目录下的文件列表 hdfs fs -put localsrc dst hdfs fs -f -put localsrc dst 上传本地文件到 hdfs,若文件已存在则报错; 若文件存在,则覆盖上传 hdfs fs -get src localdst 从 hdfs 下载文件到本地 hdfs fs -cat file 查看某个文件内容 hdfs fs -cp srcfile dstfile 复制某个文件到另一个目录下 hdfs fs -df -h / 查看磁盘使用情况 hdfs fs -du -s -h hdfs://jing-hadoop:9000/* 统计根目录下的所有文件大小; 这里必须使用 hdfs 完整目录,否则统计不到 hdfs fs -mkdir -p /aa/bb 递归创建文件夹; 若不加 -p,不能递归创建 hdfs fs -rm filename hdfs fs -rm -r /aa/bb hdfs fs -rm -r /aa 删除指定文件; 删除 bb 整个目录,aa 目录还在; 删除整个 aa 目录及其子文件夹 需要注意的是,在 Hadoop 中已上传的文件内容不能被修改,但可以在原文件后面追加内容。 来源:

Spark-SQL adaptive 自适应框架

人盡茶涼 提交于 2020-04-06 17:35:02
一、自适应框架能解决什么问题 1、目前SparkSQL中reduce阶段的task个数取决于固定参数spark.sql.shuffle.partition(默认值200),一个作业一旦设置了该参数,它运行过程中的所有阶段的reduce个数都是同一个值。 而对于不同的作业,以及同一个作业内的不同reduce阶段,实际的数据量大小可能相差很大,比如reduce阶段要处理的数据可能是10MB,也有可能是100GB, 如果使用同一个值对实际运行效率会产生很大影响,比如10MB的数据一个task就可以解决,如果spark.sql.shuffle.partition使用默认值200的话,那么10MB的数据就要被分成200个task处理,增加了调度开销,影响运行效率。 SparkSQL自适应框架可以通过设置shuffle partition的上下限区间,在这个区间内对不同作业不同阶段的reduce个数进行动态调整。 通过区间的设置,一方面可以大大减少调优的成本(不需要找到一个固定值),另一方面同一个作业内部不同reduce阶段的reduce个数也能动态调整 参数如下: spark . sql . adaptive . enabled 默认false 自适应执行框架的开关 spark . sql . adaptive . minNumPostShufflePartitions 默认为1

【原创】大叔问题定位分享(13)HBase Region频繁下线

六眼飞鱼酱① 提交于 2020-04-06 13:15:42
问题现象:hive执行sql报错 select count(*) from test_hive_table; 报错 Error: java.io.IOException: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36, exceptions: Wed May 16 10:22:17 CST 2018, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=68270: row '6495922803d09' on table 'test_hbase_table' at region=test_hbase_table,6495922803d09,1526207008130.6060407a4aa5e23c8df09614dd3fe650., hostname=server121,16020,1526398855988, seqNum=47468 直接原因一:region状态 这个hive表是外部表,底层数据存放在hbase中,出现问题的region状态: 2018-05-16 03:18:16 在RegionServer server121 上线; 2018-05-16 06

Hive外部表\\内部表关联数据

自古美人都是妖i 提交于 2020-04-06 12:44:24
CREATE TABLE page_view( viewTime INT, userid BIGINT, page_url STRING, referrer_url STRING, ip STRING COMMENT 'IP Address of the User') COMMENT 'This is the page view table' PARTITIONED BY(dt STRING, country STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' COLLECTION ITEMS TERMINATED BY '\002' MAP KEYS TERMINATED BY '\003' STORED AS TEXTFILE; 这里创建了表page_view,有表的注释,一个字段ip的注释,分区有两列,分别是dt和country。 [ROW FORMAT DELIMITED]关键字,是用来设置创建的表在加载数据的时候,支持的列分隔符。 不同列之间用一个'\001'分割, 集合(例如array,map)的元素之间以'\002'隔开, map中key和value用'\003'分割。 [STORED AS file_format]关键字是用来设置加载数据的数据类型,默认是TEXTFILE,如果文件数据是纯文本,就是使用