目录
Hadoop
Hadoop:是一个分布式计算的开源框架
Hadoop三大组件:
分布式文件系统:HDFS —— 实现将文件分布式存储在很多的服务器上
分布式运算编程框架:MapReduce——实现多台机器的分布式并行运算。
分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源
HDFS
HDFS的英文全称是Hadoop Distributed File System,即Hadoop分布式文件系统,它是Hadoop的核心子项目。HDFS被设计成适合运行在通用和廉价硬件上的分布式文件系统。HDFS是为了处理大型数据集而设计的,主要是为达到高的数据吞吐量而设计的,延迟时间通常是在分钟乃至小时级别。
创建文件夹
hdfs dfs -mkdir /a/b
删除文件夹
hdfs dfs -rm -r /a/b
查看文件夹
hdfs dfs -ls /a/b
文件放入文件夹
hdfs dfs -put /home/hdfs/b.csv /a/b
移动文件
hdfs dfs -mv /a/b/b.csv /a/c
MapReduce
MapReduce是Google公司的核心计算模型,它将运行于大规模集群上的复杂并行计算过程高度地抽象为两个函数:Map和Reduce。Hadoop是Doug Cutting受到Google发表的关于MapReduce的论文的启发而开发出来的。Hadoop中的MapReduce是一个使用简单的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并能可靠容错地并行处理TB级别的数据集。
Hive
Hive是一个构建于 Hadoop 顶层的数据仓库工具,支持对接查询存储在HDFS、HBase中文件,具有良好的可扩展性。某种程度上可以看作是用户编程接口,本身不存储和处理数据。实际的数据保存在HDFS文件中,真正的计算和执行则由MapReduce完成(也可以通过 Apache Tez、Apache Spark执行查询)。Hive 定义了简单的类似 SQL 的查询语言——Hive SQL,用户通过编写的 Hive SQL 语句运行 MapReduce 任务,其许多语法兼容Oracle、DB2、MySQL、SQL Server等,所以用户在某些场景下用户可以快速将构建在关系数据库上的数据仓库应用程序移植到 Hadoop 平台上。用户处理存储在HDFS中的数据,hive的意义就是把好写的hive的sql转换为复杂难写的map-reduce程序。
建表
外部表
CREATE EXTERNAL TABLE `table_a` (
a String,
b double
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS textfile LOCATION '/a/b';
内部表
CREATE TABLE `table_b` (
a timestamp,
b int
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS textfile;
Hbase
Hbase:是一款基于HDFS的数据库,是一种NoSQL数据库,主要适用于海量明细数据(十亿、百亿)的随机实时查询,如日志明细、交易清单、轨迹行为等。