Mahout
mahout:运行在hadoop集群上的机器学习库
使用mahout:
下载,解压安装包
设置环境变量,编译配置文件
键入
mahout --help
命令,检查Mahout是否安装完好在hdfs的目标目录中,输入
mahout xxxx
执行mahout作业mahout会在根目录建立output新文件夹,保存计算结果
Hive
值得注意的特性:
- Hive的实时性很差
- Thrift服务使得不同的编程语言都可以调用Hive接口
Hive 的使用:
- 安装SQL
- 进入mysql命令行,创建hive用户并赋予所有权限
- 使用hive用户登录,创建hive数据库
- 安装并部署Hive(包括一系列复杂的配置blablalba...)
- 启动metastore和hiveserver服务
- 进入hive命令行,使用HQL进行操作。
Pig:
Pig 有两种运行模式:
Local 模式和 MapReduce 模式。
Pig的三种调用方式:
Grunt shell方式:通过交互的方式,输入命令执行任务;
Pig script方式:通过script脚本的方式来运行任务;
嵌入式方式:嵌入java源代码中,通过java调用来运行任务。
Pig的使用
- 下载,解压Pig程序,配置环境变量及Pig运行模式,编译配置文件
- 启动hadoop集群,在shell中输入
pig
,看到pig连接到hadoop集群的信息并且进入了grunt shell命令行模式 - 然后调用hadoop上传本地文件命令
hadoop fs -xxx
把该文件传到HDFS上 - 在pig shell中输入相关命令,执行job
- 在执行过程中可在JobTracker页面观察运行情况
- 在hdfs中查看运行结果
Hbase
Hbase在Hadoop体系中的位置:
层级构件 | 描述 |
---|---|
HDFS | 文件系统 |
Hbase | 数据库管理系统 |
Hive | 高级数据库管理语言(Hive) |
HBase访问接口
- Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBase表数据
- HBase Shell,HBase的命令行工具,最简单的接口,适合HBase管理使用
Thrift Gateway,利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合其他异构系统在线访问HBase表数据 - REST Gateway,支持REST 风格的Http API访问HBase, 解除了语言限制
- Pig,可以使用Pig Latin流式编程语言来操作HBase中的数据,和Hive类似,本质最终也是编译成MapReduce Job来处理HBase表数据,适合做数据统计
- Hive,当前Hive的Release版本尚没有加入对HBase的支持,但在下一个版本Hive 0.7.0中将会支持HBase,可以使用类似SQL语言来访问HBase
Sqoop
Sqoop即 SQL to Hadoop ,是一款方便的在传统关系型数据库与Hadoop之间进行数据迁移的工具,它充分的利用了MapReduce并行特点以批处理的方式加快数据传输。
Flume
Flume是一个分布式、可靠和高可用的海量日志采集、聚合和传输的系统。
Flume的输入端(数据源)可以是:
- console(控制台)
- RPC(Thrift-RPC)
- text(文件)
- tail(UNIX tail)
- syslog(syslog日志系统,支持TCP和UDP等2种模式)
- exec(命令执行)
Flume的输出端可以是:
- console(控制台)
- text(文件)
- dfs(HDFS文件)
- RPC(Thrift-RPC)
- syslogTCP(TCP syslog日志系统)