HDFS

【大数据面试宝典】 第一篇 Hadoop 面试题

只愿长相守 提交于 2020-01-08 19:14:53
Hadoop常见的端口 Hadoop生态圈 Hadoop配置文件以及简单的Hadoop集群搭建 Hadoop参数调优 项目经验之基准测试 Hadoop宕机 Hadoop 高可用配置 Hadoop 常见的端口  dfs.namenode.http-address:50070  dfs.datanode.http-address:50075  SecondaryNameNode辅助名称节点端口号:50090  dfs.datanode.address:50010  fs.defaultFS:8020 或者9000  yarn.resourcemanager.webapp.address:8088  历史服务器web访问端口:19888 Hadoop 生态圈 然后就是各个组件的介绍了,简单的介绍一下就好了。比如说: Flume: 一个高可用的,高可靠的,分布式的海量数据日志采集,聚合和传输的系统; Zookeeper: 是一个基于观察者模式设计的分布式服务管理框架,他负责存储和管理大家都关心的数据,然后接受管擦者的注册,一旦这些数据的状态发生了变化,Zookeeper就将负责通知已经在Zookeeper上注册的观察者做出相应的反应。 Hadoop配置文件以及简单的Hadoop集群搭建 (1)配置文件: core-site.xml <configuration> <!--

CentOS7.5搭建HBase1.2.6HA集群

最后都变了- 提交于 2020-01-08 08:28:46
一. HBase的 通用 优化 1 高可用 在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果 Hmaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以 HBase 支持对 Hmaster 的高可用配置。 HBase的高可用集群搭建参考: CentOS7.5搭建HBase1.2.6HA集群 2 Hadoop 的通用性优化 1) NameNode 元数据备份使用 SSD 2) 定时备份 NameNode 上的元数据 每小时或者每天备份,如果数据极其重要,可以 5~10 分钟备份一次。备份可以通过定时任务复制元数据目录即可。 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 调用会有较多的线程数 属性:dfs.namenode

大数据---HBase

做~自己de王妃 提交于 2020-01-07 22:05:03
HBase 一:hbase的理解 HBase:是一个基于hadoop的分布式,可扩展,巨大存储仓库,当用户需要对海量的数据进行实时的失效性随机的读写操作,用户可以使用hbase设计一张巨大的表,该表的规模能达到十亿行*数百万列,并且可以运行在商用的硬件集群之上。 hbase:是一个基于hadoop的分布式,可扩展,版本化的巨大的非关系型数据库。 hdfs和hbase的区别:hbase是构建在hdfs之上的一个数据库服务,能够使用户通过hbase数据库服务间接操作hdfs,使用户对hdfs上的数据实现crud操作(细粒度的操作)。 二:传统关系型数据库存在的索引问题 传统的关系型数据库索引特点: 按照搜索条件快速定位当前记录 在数据库中加载所有属性 映射返回需要的字段 而加载所有属性这一行为是多余的,这一部分io的读取对于系统而言是一种浪费,不支持稀疏存储。 解决之道:列的共现性问题—》进行分表 列存储: 将io特性相似的列归为一个簇,列簇为最小的加载单位 hbase中所有的记录都是按照一定顺序排列的:rowkey,列簇,列名,时间戳(默认返回最新的时间戳) 支持稀疏存储,null不存 缺点:值中包含rowkey、列信息、时间戳。 rowkey:等同于关系型数据库中的主键id 列簇:将io特性相似的列归为一个簇,hbase底层会以列簇作为单位进行索引。 列:列簇,列名,时间戳构成

什么是Hadoop 如何学习Hadoop

喜欢而已 提交于 2020-01-07 14:56:42
主要是想和大家分享一下什么是Hadoop,如何学习Hadoop,对大数据开发感兴趣的小伙伴就随着小编一起来了解一下吧。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。 Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。一句话来讲Hadoop就是存储加计算。 Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点: 1、高可靠性 Hadoop按位存储和处理数据的能力值得人们信赖。 2、高扩展性 Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。 3、高效性 Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。 4

【HttpClient】HttpClient总结一之基本使用

◇◆丶佛笑我妖孽 提交于 2020-01-07 14:13:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最近工作中是做了一个handoop的hdfs系统的文件浏览器的功能,是利用webhdfs提供的rest api来访问hdfs来与hdfs进行交互的,其中大量使用HttpClient,之前一直很忙,没什么时间来总结,今天闲下来了,可以来好好总结一下这个东西了。 1.HttpClient简介 http协议可以说是现在Internet上面最重要,使用最多的协议之一了,越来越多的java应用需要使用http协议来访问网络资源,特别是现在rest api的流行,HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient,很多的java的爬虫也是通过HttpClient实现的,研究HttpClient对我们来说是非常重要的。 2.HttpClient不是浏览器 很多人觉得既然HttpClient是一个HTTP客户端编程工具,很多人把他当做浏览器来理解,但是其实HttpClient不是浏览器

Sqoop的安装和使用

天涯浪子 提交于 2020-01-07 14:10:11
一、概述 sqoop 是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。 核心的功能有两个: 导入、迁入 导出、迁出 导入数据 :MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统 导出数据 :从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等 Sqoop 的本质还是一个命令行工具,和 HDFS,Hive 相比,并没有什么高深的理论。 sqoop: 工具:本质就是迁移数据, 迁移的方式:就是把sqoop的迁移命令转换成MR程序 hive 工具,本质就是执行计算,依赖于HDFS存储数据,把SQL转换成MR程序 二、工作机制 将导入或导出命令翻译成 MapReduce 程序来实现 在翻译出的 MapReduce 中主要是对 InputFormat 和 OutputFormat 进行定制 三、安装 1、前提概述 将来sqoop在使用的时候有可能会跟那些系统或者组件打交道? HDFS, MapReduce, YARN, ZooKeeper, Hive, HBase, MySQL 下载地址 http://mirrors.hust.edu.cn/apache/ sqoop (1)上传解压缩安装包到指定目录 [hadoop@hadoop3 ~]$ tar -zxvf sqoop-1.4.6.bin

【hadoop】15.HDFS-其他功能

情到浓时终转凉″ 提交于 2020-01-07 12:41:48
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 简介 本章节我们讲讲HDFS的一些其他杂项功能,他们都是作为辅助功能而存在的。 1、集群间数据拷贝 我们之间使用scp实现了两个远程主机之间的文件复制,该方式可以实现文件的推拉。 scp -r hello.txt root@h133:~/hello.txt //push scp -r root@h134:/user/hello.txt hello.txt //pull scp -r root@h1333:/user/hello.txt root@h134:/user/ //通过本地主机中转实现两个远程主机的文件复制;如果在两个远程主机之间ssh没有配置的情况下可以使用该方式。 我们也可以采用discp命令实现两个hadoop集群之间的递归数据复制 bin/hadoop distcp hdfs://h133:9000/user/hello.txt hdfs://h233:9000/user/hello.txt 我们目前的环境只有一个集群,所以暂时无法演示。 2、Hadoop存档 每个文件均按块存储,每个块的元数据存储在namenode的内存中,因此hadoop存储小文件会非常低效。因为大量的小文件会耗尽namenode中的大部分内存。但注意

HDFS 的Trash回收站功能的配置、使用

别等时光非礼了梦想. 提交于 2020-01-07 11:53:51
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 文件的删除和恢复 和Linux系统的回收站设计一样,HDFS会为每一个用户创建一个回收站目录:/user/用户名/.Trash/,每一个被用户通过Shell删除的文件/目录,在系统回收站中都一个周期,也就是当系统回收站中的文件/目录在一段时间之后没有被用户回复的话,HDFS就会自动的把这个文件/目录彻底删除,之后,用户就永远也找不回这个文件/目录了。在HDFS内部的具体实现就是在NameNode中开启了一个后台线程Emptier,这个线程专门管理和监控系统回收站下面的所有文件/目录,对于已经超过生命周期的文件/目录,这个线程就会自动的删除它们,不过这个管理的粒度很大。另外,用户也可以手动清空回收站,清空回收站的操作和删除普通的文件目录是一样的,只不过HDFS会自动检测这个文件目录是不是回收站,如果是,HDFS当然不会再把它放入用户的回收站中了 根据上面的介绍,用户通过命令行即HDFS的shell命令删除某个文件,这个文件并没有立刻从HDFS中删除。相反,HDFS将这个文件重命名,并转移到操作用户的回收站目录中(如/user/hdfs/.Trash/Current, 其中hdfs是操作的用户名)。如果用户的回收站中已经存在了用户当前删除的文件/目录,则HDFS会将这个当前被删除的文件/目录重命名

HDFS 恢复某时刻删除的文件

半城伤御伤魂 提交于 2020-01-07 11:51:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Hadoop有一个“垃圾回收站”的功能,用于恢复在过去一段时间内被删除文件。若某个文件被删除了多次,你还可以恢复具体哪一次删除的文件。该功能默认是关闭状态,若想开启,需要在$HADOOP_HOME/etc/hadoop/core-site.xml文件中,添加以下配置: <property> <name>fs.trash.interval</name> <value>10</value> </property> 上面的配置意思为:Hadoop会设立一个回收站,回收站每隔10分钟清空一次。 若在一个回收周期内多次删除同一个文件或目录,则Trash内会分版本保存你每次删除的文件。这就意味你可以恢复在某个时刻所删除的文件。 举个例子: 时间点 动作 Trash内容 12:40 回收站清空 empty 12:41 删除fruit.data fruit.data 12:42 重新上传fruit.data且再次删除fruit.data fruit.data,fruit.data 1446352935186 12:45 重新上传fruit.data且再次删除fruit.data fruit.data,fruit.data1446352935186,fruit.data1446353100390 12:50 回收站清空

Insert data of 2 Hive external tables in new External table with additional column

本小妞迷上赌 提交于 2020-01-07 06:36:46
问题 I have 2 external hive tables as follows. I have populated data in them from oracle using sqoop. create external table transaction_usa ( tran_id int, acct_id int, tran_date string, amount double, description string, branch_code string, tran_state string, tran_city string, speendby string, tran_zip int ) row format delimited stored as textfile location '/user/stg/bank_stg/tran_usa'; create external table transaction_canada ( tran_id int, acct_id int, tran_date string, amount double,