1、Sqoop
Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
对于某些NoSQL数据库,它也提供了连接器。Sqoop类似于其他ETL工具,使用元数据模型来判断数据类型并在数据从数据源转移到Hadoop时确保类型安全的数据处理。Sqoop专为大数据批量传输设计,能够分割数据集并创建Hadoop任务来处理每个区块。
2、avro
Avro是Hadoop中的一个子项目,也是Apache中一个独立的项目,Avro是一个基于二进制数据传输高性能的中间件。在Hadoop的其他项目中例如HBase(Ref)和Hive(Ref)的Client端与服务端的数据传输也采用了这个工具,Avro可以做到将数据进行序列化,适用于远程或本地大批量数据交互。在传输的过程中Avro对数据二进制序列化后节约数据存储空间和网络传输带宽。做个比方:有一个100平方的房子,本来能放100件东西,现在期望借助某种手段能让原有面积的房子能存放比原来多150件以上或者更多的东西,就好比数据存放在缓存中,缓存是精贵的,需要充分的利用缓存有限的空间,存放更多的数据。再例如网络带宽的资源是有限的,希望原有的带宽范围能传输比原来高大的数据量流量,特别是针对结构化的数据传输和存储,这就是Avro存在的意义和价值。Avro还可以做到在同一系统中支持多种不同语言,也有点类似Apache的另一个产品:Thrift(Ref),对于Thrift不同的是Avro更加具有灵活性,Avro可以支持对定义的数据结构(Schema)动态加载,利于系统扩展。
3、kafka
kafka入门:简介、使用场景、设计原理、主要配置及集群搭建:
http://www.cnblogs.com/likehua/p/3999538.html
Apache Kafka:下一代分布式消息系统:
http://www.infoq.com/cn/articles/apache-kafka
消息队列中点对点与发布订阅区别:
http://www.cnblogs.com/softidea/p/5587126.html
4、hive命令
- 在Hive shell下执行hadoop命令行:
- #比如:hadoop fs -ls /,在hive下可以这样执行:
- hive> dfs -ls /;
- 在Hive shell下执行linux系统命令:
- !cmd;
- 例如:!pwd;打印当前工作目录
- 在Hive shell下执行sql文件:
- hive> source my.sql;
- hive -S 以静默模式启动hive(不打印日志信息,纸打印结果);
- hive -e "HiveQL",不进入hive的交互模式,直接执行命令;
- 当然也可以结合静默模式一起使用:hive -S -e "HiveQL"
hive -v 将执行的hql命令显示到命令行