nosuchelementexception怎么解決 影視等待和顯示等待區(qū)別?
影視等待和顯示等待區(qū)別?隱式耐心的等待,是設(shè)置的全局耐心的等待。系統(tǒng)設(shè)置再等待時間,是對頁面中的所有元素可以設(shè)置程序加載時間,如果沒有遠(yuǎn)遠(yuǎn)超過了系統(tǒng)設(shè)置時間的則擲下異常。隱式等待是可以解釋成在明確規(guī)定
影視等待和顯示等待區(qū)別?
隱式耐心的等待,是設(shè)置的全局耐心的等待。系統(tǒng)設(shè)置再等待時間,是對頁面中的所有元素可以設(shè)置程序加載時間,如果沒有遠(yuǎn)遠(yuǎn)超過了系統(tǒng)設(shè)置時間的則擲下異常。隱式等待是可以解釋成在明確規(guī)定的時間范圍內(nèi),瀏覽器在時不時的刷新頁面,待到找不到咨詢元素或是時間結(jié)束后。
會顯示靜靜的等待,是因為于某個某個特定的元素設(shè)置的耐心的等待時間,在設(shè)置時間內(nèi),系統(tǒng)默認(rèn)每到檢測兩次當(dāng)前頁面某個元素是否是必然,如果沒有在明文規(guī)定的時間內(nèi)可以找到了元素,則就先執(zhí)行,即找到元素就想執(zhí)行相關(guān)操作,如果最多設(shè)置中時間檢測不出來則甩出異常。默認(rèn)檢測頻率為0.5s,系統(tǒng)默認(rèn)擲下異樣為:NoSuchElementException。
怎么用sqoop把hive的數(shù)據(jù)導(dǎo)入mysql?
運行環(huán)境centos5.6hadoophive
sqoop是讓hadoop技術(shù)支持的clouder公司變更土地性質(zhì)的一個在關(guān)系數(shù)據(jù)庫和hdfs,hive之間數(shù)據(jù)導(dǎo)入導(dǎo)出的一個工具。
上海尚學(xué)堂hadoop大數(shù)據(jù)培訓(xùn)組原創(chuàng),相繼有hadoop大數(shù)據(jù)技術(shù)歷史文章奉上,請多關(guān)注!
在在用過程中可能遇到的問題:
sqoop依賴性太強zookeeper,所以前提是配置ZOOKEEPER_HOME到環(huán)境變量中。
sqoop-1.2.0-CDH3B4依戀hadoop-core-0.20.2-CDH3B4.jar,所以你需要直接下載hadoop-0.20.2-CDH3B4.tar.gz,文件解壓后將hadoop-0.20.2-CDH3B4/hadoop-core-0.20.2-CDH3B4.jar圖片文件夾到sqoop-1.2.0-CDH3B4/lib中。
1簡單直接安裝sqoop,假如你不使用的是clouder交回版的話就非常簡單的
#yuminstallsqoop
假如用官方版本的話
#cd
#wget
#yum-yinstallsqoop
sqoop變會安裝好能完成
2不使用sqoop
簡單的方法將mysql-connector-java-5.1.16-bin.jar文件剪切粘貼到/usr/lib/sqoop/lib文件夾下
3導(dǎo)出功能數(shù)據(jù)庫
1)列一mysql數(shù)據(jù)庫中的所有數(shù)據(jù)庫命令
#sqooplist-databases--connectjdbc:mysql://localhost:3306/--usernameroot--password123456
2)連接上mysql并列下數(shù)據(jù)庫中的表命令
#sqooplist-tables--connectjdbc:mysql://localhost:3306/test--usernameroot--password123456
命令中的test為mysql數(shù)據(jù)庫中的test數(shù)據(jù)庫名稱usernamepassword分別為mysql數(shù)據(jù)庫的用戶密碼
3)將關(guān)系型數(shù)據(jù)的表結(jié)構(gòu)截圖到hive中
sqoopcreate-hive-table--connectjdbc:mysql://localhost:3306/test--tableusername--usernameroot--password123456--hive-tabletest
其中--tableusername為mysql中的數(shù)據(jù)庫test中的表--hive-tabletest為hive中剛建的表名稱
4)從關(guān)系數(shù)據(jù)庫文件導(dǎo)入文件到hive中
sqoopimport--connectjdbc:mysql://localhost:3306/test--usernameroot--passwordmysql-password--tablet1--hive-import
5)將hive中的表數(shù)據(jù)導(dǎo)入到mysql中
./sqoopexport--connectjdbc:mysql://localhost:3306/test--usernameroot--passwordadmin--tableuv_info--export-dir/user/hive/warehouse/uv/dt2011-08-03
如果沒有出現(xiàn)錯誤
11/08/0510:51:22INFORunningjob:job_201108051007_0010
11/08/0510:51:23INFOmap0%reduce0%
11/08/0510:51:36INFOTaskId:attempt_201108051007_0010_m_000000_0,Status:FAILED
onjava.util.AbstractList$()
touv_info.__loadFromFields(uv_)
touv_(uv_)
arrive()
to()
as()
arrive()
as()
at()
arrive$()
on(Native Method)
to()
on()
to()
此錯誤的原因為sqoop推導(dǎo)文件的字段與MySql數(shù)據(jù)庫的表的字段不對應(yīng)不上導(dǎo)致的。但需要在想執(zhí)行的時候給sqoop提升參數(shù),說說sqoop文件的分隔符,使它都能夠真確的解析文件字段。
hive系統(tǒng)默認(rèn)的字段分隔符為