hadoop 的四大组件: HDFS:分布式存储系统 MapReduce:分布式计算系统 YARN: hadoop 的资源调度系统 Common: 以上三大组件的底层支撑组件,主要提供基础工具包和 RPC 框架等
Namenode:是整个文件系统的管理节点。它维护着1.整个文件系统的文件目录树,2.文件/目录的元信息和每个文件对应的数据块列表。3.接收用户的操作请求。 Datanode:提供真实文件数据的存储服务。
以Apache Hadoop为主导的大数据技术的出现,使得中小型公司对于大数据的存储与处理也拥有了武器。目前Hadoop有不少发行版:华为发行版 收费 、Intel发行版 收费 、Cloudera发行版(Cloudera’s Distribution Including Apache Hadoop,简称 CDH ) 免费 、Hortonworks发行版(Hortonworks Data Platform,简称 HDP ) 免费 等,所有这些发行版均是基于Apache Hadoop社区版衍生出来的。
# [HDFS基本命令的使用](https://blog.csdn.net/afafawfaf/article/details/80254989)
hadoop fs -ls 显示当前目录结构,-ls -R 递归显示目录结构
hadoop fs -mkdir 创建目录
hadoop fs -rm 删除文件,-rm -R 递归删除目录和文件
hadoop fs -put [localsrc] [dst] 从本地加载文件到HDFS
hadoop fs -get [dst] [localsrc] 从HDFS导出文件到本地
hadoop fs -copyFromLocal [localsrc] [dst] 从本地加载文件到HDFS,与put一致
hadoop fs -copyToLocal [dst] [localsrc] 从HDFS导出文件到本地,与get一致
hadoop fs -test -e 检测目录和文件是否存在,存在返回值$?为0,不存在返回1
hadoop fs -text 查看文件内容
hadoop fs -du 统计目录下各文件大小,单位字节。-du -s 汇总目录下文件大小,-du -h 显示单位
hadoop fs -tail 显示文件末尾
hadoop fs -cp [src] [dst] 从源目录复制文件到目标目录
hadoop fs -mv [src] [dst] 从源目录移动文件到目标目录
实际业务中用Presto的原因
第一点也是最重要的一点跨库和跨数据源,什么概念?跨库:mysql中有A库a表,B库b表,用Presto SQL可以实现a,b两表的join操作。跨数据源:mysql中有A库a表,oracle中有B库b表,用Presto SQL可以实现a,b两表的join操作。
Presto SQL和传统SQL大同小异,基本对于熟悉SQL的人员0成本进入
集群部署,可水平扩展增强大的Presto SQL查询速度
客户端可以是PHP,JAVA, Python, 命令行等等,这样可以作为一个平台级的中间件给团队提供支撑
Presto是JAVA书写而成,我是JAVA出身,对报错或者配置更熟悉
EN官网:https://prestodb.io/ CN官网:http://prestodb-china.com/ GitHub:https://github.com/prestodb/presto
yanagishima可以连接hive和presto,搭建简单,功能也可以满足基本需要,github也一直在维护,推荐。 https://github.com/yanagishima/yanagishima
sqoop import --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table Student --direct
# 导入mysql表添加 --direct 参数速度更快,执行的是mysq自带的导出功能
#压缩
sqoop import \
-m 1 \
--connect jdbc:mysql://localhost:3306/test?useSSL=false --password root --username root \
--table dw_slice_rule --hive-table dw_slice_rule_compress --delete-target-dir --direct \
--hive-import --hive-database default --hive-overwrite --create-hive-table --delete-target-dir \
--compress --compression-codec org.apache.hadoop.io.compress.SnappyCodec
# 非压缩
sqoop import -m 1 --connect jdbc:mysql://localhost:3306/test?useSSL=false --password root --username root --table dw_slice_rule --hive-table dw_slice_rule --hive-import --hive-database default --hive-overwrite --create-hive-table --delete-target-dir --direct
sqoop import \
-m 1 \
--connect jdbc:mysql://localhost:3306/test?useSSL=false --password root --username root \
--create-hcatalog-table --hcatalog-database my_hcat_db \
--table dw_slice_rule --hcatalog-table dw_slice_rule_orc \
--hcatalog-storage-stanza 'stored as orc tblproperties ("orc.compress"="SNAPPY")' --delete-target-dir
sqoop import \
--connect jdbc:postgresql://foobar:5432/my_db \
--driver org.postgresql.Driver \
--connection-manager org.apache.sqoop.manager.GenericJdbcManager \
--username foo \
--password-file hdfs:///user/foobar/foo.txt \
--table fact \
--hcatalog-home /usr/hdp/current/hive-webhcat \
--hcatalog-database my_hcat_db \
--hcatalog-table fact \
--create-hcatalog-table \
--hcatalog-storage-stanza 'stored as orc tblproperties ("orc.compress"="SNAPPY")'
sqoop import \
--connect jdbc:mysql://localhost:9800/boss?useSSL=false --password root --username root \
--table crm_account --hive-table crm_account_dimension \
--hive-drop-import-delims \
--delete-target-dir --num-mappers 1 \
--hive-import --hive-database dc_measure --hive-overwrite --create-hive-table \
--compress --compression-codec org.apache.hadoop.io.compress.SnappyCodec
# --hive-drop-import-delims 用于解决数据导入时数据错位以及产生null值问题 [sqoop 从oracle到hive数据错位,并产生很多null值](https://blog.csdn.net/duyuanhai/article/details/76021549)
#!/bin/bash
month=(201704 201705 201706 201707 201708 201709 201710 201711 201712)
for i in ${month[@]}
do
echo ">>>>import: $i"
sqoop import \
--connect jdbc:mysql://localhost:9901/mydb?useSSL=false --password 123456 --username root \
--incremental append \
--check-column stat_date \
--last-value "2017-04-31" \
--table dw_result_product_bill_detail_$i --hive-table dw_result_product_bill_detail_merge \
--hive-drop-import-delims \
--hive-import --hive-database bill \
--compress --compression-codec org.apache.hadoop.io.compress.SnappyCodec
done