//
Kettle學(xué)習(xí)小結(jié) - 簡(jiǎn)書(shū)
http://www.reibang.com/p/43779258c1ce
Kettle學(xué)習(xí)小結(jié)學(xué)習(xí)資料官方文檔: http://infocenter.pentaho.com開(kāi)發(fā)幫助文檔:http://wiki.pentaho.com/Bug報(bào)告地址: http://jira.pentaho.com/browse/PDI官方論壇: http://forums.pentaho.org/forumdisplay.php?f=135中文論壇: http://www.pentahochina.com一制恍、部署系統(tǒng)的java環(huán)境
安裝JDK屡穗,版本要在1.6及以上在oracle官網(wǎng)上下載JDK严望,并安裝(目前上42服務(wù)器上已安裝,所以如下查看)
查看服務(wù)器上安裝的JDK的版本信息echo $JAVA_HOME
添加JDK的環(huán)境變量(目前上42服務(wù)器上已安裝杖剪,所以如下查看)
1)查看服務(wù)器上安裝的JDK的版本信息echo $JAVA_HOME2)查看系統(tǒng)環(huán)境變量中JAVA_HOMEvim /etc/profile二、Kettle的安裝部署(Linux環(huán)境下)1玄组、在Pentaho的官網(wǎng)下載Kettle(下載Kettle的鏈接)(目前下載的最新的pdi-ce-6.1.0.1-196版)http://community.pentaho.com/projects/data-integration/http://nchc.dl.sourceforge.net/project/pentaho/Data%20Integration/6.1/pdi-ce-6.1.0.1-196.zip2障贸、上傳到路徑:/opt/kettle文件夾中:并解壓縮該文件unzip pdi-ce-6.1.0.1-196.zip3、執(zhí)行kitchen.sh命令cd /opt/kettle/data-integration執(zhí)行:kitchen.sh命令确垫,如下圖示弓颈,說(shuō)明Kettle部署完成。四删掀、資料庫(kù)的創(chuàng)建1恨豁、新建資料庫(kù)新建:Kettle Database Repository資料庫(kù)創(chuàng)建Kettle資料庫(kù)的數(shù)據(jù)庫(kù)鏈接,如下:(目前是將Kettle的資料庫(kù)放在MySql中)配置MySql JDBC連接:(kettle_rep是MySql中事先創(chuàng)建好的數(shù)據(jù)庫(kù)(用來(lái)存放kettle的資料庫(kù)信息))(Kettle連接MySql數(shù)據(jù)庫(kù)時(shí)爬迟,必須將:MySql的jdbc驅(qū)動(dòng)事先放在橘蜜,kettle的lib目錄/opt/kettle/data-integration/lib中,否則會(huì)報(bào)錯(cuò)付呕,如下:)2计福、創(chuàng)建資料庫(kù)中的各種表,如下:自動(dòng)創(chuàng)建:如下示:已經(jīng)創(chuàng)建了46張Kettle資料庫(kù)的數(shù)據(jù)表:輸入:rep資料庫(kù)的用戶名:admin(默認(rèn))徽职,密碼:admin3象颖、可修改:資料庫(kù)用戶的密碼:五、Spoon組件開(kāi)發(fā)實(shí)例
Kettle連接Hive數(shù)據(jù)庫(kù)
Kettle自帶的hive jdbc驅(qū)動(dòng)包:Hive中jar包存放的位置:/opt/kettle/data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/hdp23/lib如下:配置對(duì)應(yīng)的hive數(shù)據(jù)庫(kù)連接后姆钉,一直報(bào)錯(cuò)说订,如下示:原因:Kettle連接hive時(shí)一直報(bào)錯(cuò),最終找到原因是:hadoop認(rèn)證拒絕hive連接(即:hadoop不允許用戶冒充hive角色進(jìn)行連接訪問(wèn))潮瓶,報(bào)錯(cuò)如下:User: hadoop is not allowed to impersonate hive.解決方案:最終修復(fù)如下:在hadoop的安裝目錄下:cd /opt/hadoop/hadoop-2.7.2/etc/hadoop陶冷,找到core-site.xml (Hadoop核心配置項(xiàng)文件),添加如下配置:這幾個(gè)配置項(xiàng)的值都可以使用來(lái)表示允許所有的主機(jī)/用戶組/用戶
<property><name>hadoop.proxyuser.hadoop.hosts</name><value></value></property><property><name>hadoop.proxyuser.hadoop.groups</name><value>*</value></property>最終毯辅,kettle連接hive成功埂伦,如下示:2、資料庫(kù)中各項(xiàng)配置在如下路徑下思恐,找到文件:repositories.xml/opt/kettle/data-integration/.kettlevim repositories.xml打開(kāi)沾谜,可以看到資料庫(kù)的各種設(shè)置:如下:和編輯資料庫(kù)連接中的信息膊毁,一一對(duì)應(yīng);3基跑、轉(zhuǎn)換中執(zhí)行日志的設(shè)置1)任意打開(kāi)一個(gè)轉(zhuǎn)換婚温,右擊:找到屬性:Properties:如下示:2)找到轉(zhuǎn)換中:Logging位置:創(chuàng)建數(shù)據(jù)庫(kù)連接:目前使用MySql數(shù)據(jù)庫(kù)連接(即:將轉(zhuǎn)換執(zhí)行的日志信息,放在MySql數(shù)據(jù)庫(kù)中媳否,kettle_log是已事前創(chuàng)建好的數(shù)據(jù)庫(kù)缭召,trans_log表是自動(dòng)創(chuàng)建好的,用來(lái)存放轉(zhuǎn)換的執(zhí)行日志信息逆日。3)除了Transformation的日志外嵌巷,也可以設(shè)置:Step,Performance室抽,Logging channels搪哪,Metrics的日志,不過(guò)坪圾,目前暫時(shí)沒(méi)有設(shè)置晓折,因?yàn)橹恍枰涗浺恍┳铌P(guān)鍵的執(zhí)行日志即可,否則如果添加的日志過(guò)多的話兽泄,會(huì)影響轉(zhuǎn)換的運(yùn)行速度漓概。4)在kettle_log.trans_log表中可以查看到對(duì)應(yīng)的執(zhí)行記錄:select *from kettle_log.trans_log torder by t.logdate desc;select *from kettle_log.trans_log twhere t.errors=1;--如果轉(zhuǎn)換執(zhí)行錯(cuò)誤的話,kettle_log.trans_log中字段errors為1病梢。
JOB的創(chuàng)建及定時(shí)
1)創(chuàng)建簡(jiǎn)單JOB,如下示:使用start組件和轉(zhuǎn)換組件蜓陌。2)start組件中定時(shí):雙擊start組件,如下設(shè)置定時(shí)任務(wù):3)運(yùn)行JOB即可六填抬、Kitchen命令執(zhí)行cd /opt/kettle/data-integration
kitchen -version
kitchen –listrep
3、kitchen -rep=KettleRep -user=admin -pass=admin -level=Basic -job=job_test(用spoon組件創(chuàng)建好并定時(shí)的JOB隧期,用kitchen命令執(zhí)行:kitchen -rep=KettleRep -user=admin -pass=admin -level=Basic -job=job_test如果JOB有定時(shí)后飒责,執(zhí)行該命令后,可一直按照指定的時(shí)間間隔來(lái)執(zhí)行宏蛉。)七鸵闪、開(kāi)發(fā)中的坑(持續(xù)補(bǔ)充中)
- hive中添加jar檐晕,解析日志,但是kettle連接hive數(shù)據(jù)源報(bào)錯(cuò)
問(wèn)題描述:hadoop hdfs上是原來(lái)info日志的不規(guī)則的數(shù)據(jù)蚌讼,hive中添加jar(/opt/hive/apache-hive-2.1.0-bin/lib/LogInputFormat.jar)來(lái)解析日志表數(shù)據(jù)辟灰,在hive命令行中,可正常執(zhí)行芥喇;kettle連接hive時(shí)凰萨,可正常連接hive,但是解析對(duì)應(yīng)的表時(shí)胖眷,一直報(bào)錯(cuò)。最終解決方案:在創(chuàng)建hive的數(shù)據(jù)庫(kù)連接的時(shí)候冶忱,在高級(jí)中,添加:對(duì)應(yīng)的解析程序的jar包囚枪。如下示:在高級(jí)中添加jar:add /opt/hive/apache-hive-2.1.0-bin/lib/LogInputFormat.jar已經(jīng)可以成功加載:對(duì)應(yīng)hive連接下的數(shù)據(jù)庫(kù)表字段劳淆。