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日志系統)