1. 程式人生 > >sqoop flume學習筆記

sqoop flume學習筆記

source tin 好的 接口 緩存 編寫 mapred 接收 是不是

1:mapreduce讀取MySQL數據庫中的數據,就可以通過更換組件,inputformat抽象類不是接口,有默認實現就是textinputformat,讀取MySQL數據庫的時候只需要更換為DBinputformat就可以了;像sqoop 本身做的就是這種事情。sqoop相當於是幫我實現好了多種數據源和多種數據目的地的mapreduce程序;對大家的建議就是這種sqoop組件其實特別適合自己研究搞定,以後的路基本還是靠大家自己去走,而且大數據技術更新換代很快的,所以有一個好的自學能力很重要的。
2:flume:
角色分析中提到解耦設計思想,為什麽有抽取,管道,和存放三種組件;
channel:1:memory 2:file;
flume的官網介紹多種模型,
1:留了一個疑問就是一個agent是不是可以有多個source?
2:多種組合方式:
a:一個agent實現數據的遷移工作,從磁盤到hdfs;
b:一個agent再接一個agent,上一個agent的sink連接下一個agent的source;
3:一個agent中配置多個channel和多個sink,每個sink可以單獨配置自己的外界存儲介質;比如:hdfs,java 消息系統,如kafka;

flume的安裝和部署
flume1.7,解壓後修改配置文件:只設置下javahome即可使用;flume應該是使用java編寫的;
提高1.99不能使用,有問題,今天可能測試沒問題了;介紹了cdh,daogecating在這家公司,主要是解決了hadoop生態圈大數據技術棧中的各個組件的兼容問題;既有免費版又有收費版本;
flume中組件介紹的source讀取文件,存入channel中相當於一個隊列先進先出,然後是sink寫出數據;
第一個案例是使用flume接收端口中的數據然後輸出到控制臺:
1:發送數據到指定端口使用的telnet 命令,瑞士軍刀命令也可以:nc 腦殘命令;
2:yum倉庫的問題,/etc/yum.conf中可以配置yum命令安裝時拉取的安裝文件可以緩存下來,指定緩存路徑並打開緩存開關;
3:Linux命令補充:文件夾或者文件名稱中有空格的時候:指定這個名稱時需要加單引號或者空格,Linux中‘‘:忽略所有特殊字符,
""雙引號是忽略大部分特殊字符認為是字符串,但是比如:$""就不會忽略;``:是獲取命令的執行結果;
4:具體如何使用flume是結合著官網的simple example進行講解,
flume的使用非常簡單主要是通過類似腳本文件進行配置即可,如何配置就通過官網的案例進行的講解;在配置中講解了如何定義每個組件如source,以及source的tpye,以及如何最終把三個組件組合起來;區分一點就是一個source可以指定多個channel,一個channel只能綁定一個sink;

sqoop flume學習筆記