HDFS

sqoop从hdfs导出到mysql

蹲街弑〆低调 提交于 2020-02-23 13:43:53
create database logs; use logs create table weblogs_from_hdfs( md5 varchar(32), url varchar(64), request_date date, request_time time, ip varchar(15) ); sqoop export -m 1 --connect jdbc:mysql://hadoop:3306/logs --username root --password root --table weblogs_from_hdfs --export-dir /data/weblogs/import --input-fields-terminated-by '\t' 对于通过sqoop导入的数据为NULL的在导出到数据库中时依然保持为NULL.即使在文件中保存为字符串为'null'。 sqoop默认为insert 插入新的语句 --update-key 'md5' 则将创建更新语句,update ....where md5 = '.......' 如果--update-key 'md5' 设置的值没有找到,可以设置--update-mode allowinsert 允许新增这行数据 每个mapper默认默认插入1000条记录,然后提交事务,若mapper失败

HBase数据导出到HDFS

余生颓废 提交于 2020-02-23 13:43:24
一、目的 把hbase中某张表的数据导出到hdfs上一份。 实现方式这里介绍两种:一种是自己写mr程序来完成,一种是使用hbase提供的类来完成。 二、自定义mr程序将hbase数据导出到hdfs上 2.1首先看看hbase中t1表中的数据: 2.2mr的代码如下: 比较重要的语句是 job.setNumReduceTasks(0);//为什么要设置reduce的数量是0呢?读者可以自己考虑下 TableMapReduceUtil.initTableMapperJob(args[0], new Scan(),HBaseToHdfsMapper.class ,Text.class, Text.class, job);//这行语句指定了mr的输入是hbase的哪张表,scan可以对这个表进行filter操作。 public class HBaseToHdfs { public static void main(String[] args) throws Exception { Configuration conf = HBaseConfiguration.create(); Job job = Job.getInstance(conf, HBaseToHdfs.class.getSimpleName()); job.setJarByClass(HBaseToHdfs.class);

Hadoop——MapReduce介绍

ε祈祈猫儿з 提交于 2020-02-23 11:18:19
序言 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想。 MapReduce产生背景   如果让你统计日志里面的出现的某个URL的总次数,让你自己去写个单机版的程序,写个逻辑:无非就是读这个文件一行,然后把那个地方截取出来,截取出来之后,然后可以把它放到一个HashMap里面,用Map去重,看到一条新的URL ,就把它put进去,然后+1,如果下次看到再有就直接+1,没有就put进去,单机版的话逻辑是很好实现,但是数据量一大,你觉得单机版本还能搞定吗?   首先2T的文件,你放在单机上可能存不下来,如果再他多一点呢?比如几千个文件,几十个T,单机存都存不下,那么存在哪里-------hdfs上。   因为放在HDFS上可以放很多很多,比如说HDFS上有100个节点,每个节点上能耐挂载8T的硬盘,那就有800T,800T,你每个文件存3个副本的话,你至少也能存100多个T文件,耗费了大概6个T的空间,但是你一旦放到HDFS上就有一个问题:你的文件就会被切散了,被切三到很多的机器上,这个时候,你再对它们进行统计,这个时候,按照原来的逻辑,会不会出现问题? 资料 MapReduce介绍 来源: https://www.cnblogs.com/cnki/p/12348740.html

十 DataNode

随声附和 提交于 2020-02-22 15:26:30
文章目录 1 DataNode工作机制 2 数据完整性 3 掉线时限参数设置 4 服役新数据节点 5 退役旧数据节点 5.1 添加白名单 5.2 黑名单退役 6 Datanode多目录配置 7 HDFS 2.X新特性 7.1 集群间数据拷贝 1 DataNode工作机制 1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。 2)DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。 3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。 4)集群运行中可以安全加入和退出一些机器。 2 数据完整性 思考:如果电脑磁盘里面存储的数据是控制高铁信号灯的红灯信号(1)和绿灯信号(0),但是存储该数据的磁盘坏了,一直显示是绿灯,是否很危险?同理DataNode节点上的数据损坏了,却没有发现,是否也很危险,那么如何解决呢? 如下是DataNode节点保证数据完整性的方法。 1)当DataNode读取Block的时候,它会计算CheckSum。 2)如果计算后的CheckSum,与Block创建时值不一样

程序员必备的「大数据入门」知识

大城市里の小女人 提交于 2020-02-21 09:38:05
前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star: https://github.com/ZhongFuCheng3y/3y 这篇文章主要是 入门 大数据,不涉及到高深的知识点和理论,我相信每个人都看得懂。如果文章有错误的地方,不妨在评论区友善指出~ 一、什么是大数据? 1.1 前置知识 我有的时候给 外行人 讲解什么是数据库,就常常用Excel来举例子(因为大多数人认识什么是Excel)。在知乎有一个类似的题目《有excel了要数据库干啥?》,大家可以去看看: https://www.zhihu.com/question/26779236 其实很大一部分原因就是:Excel能处理的 数据量 远远没有数据库得多。由于我们互联网产生的数据是非常非常多的,所以我们一般选择数据库来存储数据。 Excel只有104w行,多了加载不进去的 ---- @知乎 EamonLiao 众所周知,我们能存多少数据,是取决于我们 硬盘 的大小的。比如,我的磁盘的大小就256GB(实际能存储的大小是没有256GB的,但这里我就不展开了),这意味着我这电脑只能存储比256GB要小的数据。 为了能够更好地管理计算机的数据(访问和查找变得更加简单),我们就有了 文件系统 。 有了文件系统,已经可以存储数据了(很方便我们去获取),那为什么还会有数据库呢? 文件系统存在以下缺点:

hadoop HDFS常用文件操作命令

对着背影说爱祢 提交于 2020-02-21 05:28:18
hadoop HDFS常用文件操作命令 Hadoop FS常用命令 初级 https://blog.csdn.net/olizxq/article/details/81007929 hadoop fs 命令使用 https://blog.csdn.net/mulangren1988/article/details/54860924?utm_source=distribute.pc_relevant.none-task 命令基本格式: 1 hadoop fs - cmd < args > 1. ls  列出hdfs文件系统根目录下的目录和文件 1 hadoop fs - ls / dir 1 hadoop fs - ls - R / dir - - 列出hdfs文件系统所有的目录和文件  2.put hadoop fs -put <local file> <hdfs file> --hdfs file的父目录一定要存在,否则命令不会执行 hadoop fs -put <local file or dir> <hdfs dir> --hdfs dir 一定要存在,否则命令不会执行 hadoop fs -put - <hdfs file> --从键盘读取输入到hdfs file中,按Ctrl+D结束输入,hdfs file不能存在,否则命令不会执行 3.get hadoop fs

大数据hadoop生态圈

一曲冷凌霜 提交于 2020-02-21 04:46:36
大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。 你可以把它比作一个厨房所以需要的各种工具。锅碗瓢盆,各有各的用处,互相之间又有重合。你可以用汤锅直接当碗吃饭喝汤,你可以用小刀或者刨子去皮。但是每个工具有自己的特性,虽然奇怪的组合也能工作,但是未必是最佳选择。 大数据,首先你要能存的下大数据。 传统的文件系统是单机的,不能横跨不同的机器。HDFS(Hadoop Distributed FileSystem)的设计本质上是为了大量的数据能横跨成百上千台机器,但是你看到的是一个文件系统而不是很多文件系统。比如你说我要获取/hdfs /tmp/file1的数据,你引用的是一个文件路径,但是实际的数据存放在很多不同的机器上。你作为用户,不需要知道这些,就好比在单机上你不关心文件 分散在什么磁道什么扇区一样。HDFS为你管理这些数据。 存的下数据之后,你就开始考虑怎么处理数据。 虽 然HDFS可以为你整体管理不同机器上的数据,但是这些数据太大了。一台机器读取成T上P的数据(很大的数据哦,比如整个东京热有史以来所有高清电影的大 小甚至更大),一台机器慢慢跑也许需要好几天甚至好几周。对于很多公司来说,单机处理是不可忍受的,比如微博要更新24小时热博,它必须在24小时之内跑 完这些处理。那么我如果要用很多台机器处理

HDFS 离线数据同步

≯℡__Kan透↙ 提交于 2020-02-20 13:02:27
1、身份认证 2、查看/user/g8bd6a3461f924456fdxe91p0 目录下文件 drwxrwx--x - backend g8bd6a3461f924456fdxe91p0 0 2020-01-06 19:02 /user/g8bd6a3461f924456fdxe91p0/9ed3572a-3cea-4ecb-a34e-d75df653d1af 发现有路径 /9ed3572a-3cea-4ecb-a34e-d75df653d1af 3、继续hdfs dfs -ls 发现下一级还有路径/tohdfs drwxrwx--x - backend g8bd6a3461f924456fdxe91p0 0 2020-01-06 19:02 /user/g8bd6a3461f924456fdxe91p0/9ed3572a-3cea-4ecb-a34e-d75df653d1af/tohdfs 4、继续hdfs dfs -ls +路径 drwxrwx--x - backend g8bd6a3461f924456fdxe91p0 0 2020-01-06 19:02 /user/g8bd6a3461f924456fdxe91p0/9ed3572a-3cea-4ecb-a34e-d75df653d1af/tohdfs/2020-01-06 5、继续hdfs dfs -ls +路径

hive数据导入导出

前提是你 提交于 2020-02-20 06:40:09
Hive数据导入导出的几种方式 一,Hive数据导入的几种方式 首先列出讲述下面几种导入方式的数据和hive表。 导入: 本地文件导入到Hive表; Hive表导入到Hive表; HDFS文件导入到Hive表; 创建表的过程中从其他表导入; 通过sqoop将mysql库导入到Hive表;示例见《通过sqoop进行mysql与hive的导入导出》和《定时从大数据平台同步HIVE数据到oracle》 导出: Hive表导出到本地文件系统; Hive表导出到HDFS; 通过sqoop将Hive表导出到mysql库; Hive表: 创建testA: CREATE TABLE testA ( id INT , name string , area string ) PARTITIONED BY ( create_time string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE ; 创建testB: CREATE TABLE testB ( id INT , name string , area string , code string ) PARTITIONED BY ( create_time string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',

0435-如何在CDH6.0中使用纠删码

若如初见. 提交于 2020-02-18 22:38:28
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 Fayson在前面的文章中介绍过《什么是HDFS的纠删码》,当时详细介绍了什么是纠删码,纠删码的实现原理,以及一些Benchmark的结果比较。 纠删码是CDH6/Hadoop3新加入的功能,之前的HDFS都是采用副本方式容错,默认情况下,一个文件有3个副本,可以容忍任意2个副本(DataNode)不可用,这样提高了数据的可用性,但也带来了2倍的冗余开销。例如3TB的空间,只能存储1TB的有效数据。而纠删码则可以在同等可用性的情况下,节省更多的空间,以rs-6-3-1024K这种纠删码策略为例子,6份原始数据,编码后生成3份校验数据,一共9份数据,只要最终有6份数据存在,就可以得到原始数据,它可以容忍任意3份数据不可用,而冗余的空间只有原始空间的0.5倍,只有副本方式的1/4,因此,可以大大节约成本。本文Fayson主要是介绍如何在CDH6.0中使用纠删码。 内容概述 1.通过CM启用纠删码 2.纠删码策略介绍 3.纠删码基本操作 4.纠删码实操 5.总结 测试版本 1.CM和CDH版本为6.0 2.Redhat7.4 3