日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Java SDK常見問題

更新時(shí)間:

本文為您介紹Java SDK的常見問題。

問題類別

常見問題

SDK咨詢

運(yùn)行報(bào)錯(cuò)

如何下載Java SDK包?

MaxCompute的Java SDK包已經(jīng)托管在Maven上,您可以通過Maven下載Java SDK包。

例如,MapReduce的Java SDK包。您可以在Maven中搜索odps-sdk-mapred,在Versions頁簽中單擊對(duì)應(yīng)SDK版本后的image,然后下載對(duì)應(yīng)類型的包。image

Java SDK包詳情請(qǐng)參見Java SDK介紹

如何通過MaxCompute Java SDK設(shè)置SQL的Flag?

當(dāng)您使用DataWorks控制臺(tái)或MaxCompute客戶端(odpscmd)提交SQL時(shí),通常需要設(shè)置SQL的Flag。例如,如果您需要使用MaxCompute 2.0數(shù)據(jù)類型,可以通過Session級(jí)別方式開啟,在涉及2.0新數(shù)據(jù)類型的SQL前增加Set Flag語句set odps.sql.type.system.odps2=true;

使用Java SDK提交SQL時(shí),不能簡(jiǎn)單地把Set Flag語句直接增加到SQL中,設(shè)置Flag的正確方式如下。

--構(gòu)造SQLTask對(duì)象。
SQLTask task = new SQLTask();task.setName("foobar");task.setQuery("select ...");
--設(shè)置Flag。
Map settings = new HashMap<>();settings.put("odps.sql.type.system.odps2", "true");...
--設(shè)置其它Flags。
task.setProperty("settings", new JSONObject(settings).toString()); --這里是關(guān)鍵:將Flags對(duì)應(yīng)的JSON String設(shè)置到settings中。
--執(zhí)行。
Instance instance = odps.instances().create(task);

如何使用Logview排查Java SDK報(bào)錯(cuò)?

MaxCompute Java SDK提供了Logview接口i = SQLTask.run(odps, sql); String logview = odps.logview().generateLogView(i, 7×24)

如何在MaxCompute的Java業(yè)務(wù)代碼中執(zhí)行SQL作業(yè)?

您可以在業(yè)務(wù)代碼中調(diào)用MaxCompute的Java SDK執(zhí)行SQL作業(yè),詳情請(qǐng)參見Java SDK介紹

使用SQLTask執(zhí)行SQL查詢時(shí),如果查詢結(jié)果條數(shù)大于限制的10000條,該如何獲取所有數(shù)據(jù)?

您可以將SQL查詢的結(jié)果集寫入一張表中,通過Tunnel下載所有數(shù)據(jù)。

SQLTask中,按照如下方法返回結(jié)果集的數(shù)據(jù)量是否有限制?如果有限制,最大返回結(jié)果集大小是多少?

命令示例如下。

Instance instance = SQLTask.run(odps, "sql語句");
instance.waitForSuccess();
List<Record> records = SQLTask.getResult(instance);              

有限制,您可以最多調(diào)整到10000。如果數(shù)據(jù)量比較大,建議您使用Tunnel SDK導(dǎo)出數(shù)據(jù)。

SQLTask查詢數(shù)據(jù)和DownloadSession在使用及功能上,有什么不同?

SQLTask運(yùn)行SQL并返回結(jié)果,返回條數(shù)有限制,默認(rèn)是10000條。

DownloadSession下載某個(gè)存在的表里的數(shù)據(jù),結(jié)果條數(shù)無限制。

MaxCompute Java SDK執(zhí)行作業(yè)卡頓,如何解決?

  • 問題現(xiàn)象

    • 用戶A使用MaxCompute Java SDK執(zhí)行作業(yè)卡頓,沒有Logview信息。

    • 用戶B使用MaxCompute Java SDK訪問表,執(zhí)行RestClient Retry操作后,作業(yè)卡頓。

  • 產(chǎn)生原因

    • 用戶A由于沒有Instance的Logview,導(dǎo)致系統(tǒng)無法追蹤Instance的運(yùn)行過程。Instance創(chuàng)建后會(huì)調(diào)用instance.waitForSuccess()方法,一旦作業(yè)耗時(shí)大,就會(huì)卡頓。此時(shí)如果有Logview,就可以查看并追蹤作業(yè)卡頓的具體原因。

    • 用戶B從表面看就是作業(yè)卡頓了,沒有任何輸出。Java SDK的RestClient本身有重試機(jī)制,如果系統(tǒng)在每次重試時(shí)都輸出錯(cuò)誤日志,就可以快速定位問題。

  • 解決措施

    • 使用MaxCompute Java SDK生成Instance Logview。

      MaxCompute Java SDK提供了Logview接口,詳情請(qǐng)參見Instance Logview示例

      說明
      • 請(qǐng)您在使用Java SDK時(shí),為每個(gè)Instance記錄Logview,一旦遇到問題可快速追蹤。

      • 在MaxCompute客戶端(odpscmd)執(zhí)行WAIT<instance_id>命令可以獲得Logview鏈接。

    • 每次執(zhí)行RestClient Retry操作時(shí)都輸出錯(cuò)誤日志。

      MaxCompute Java SDK提供了抽象類RetryLogger,詳情請(qǐng)參見輸出錯(cuò)誤日志示例

MaxCompute運(yùn)行代碼時(shí),報(bào)錯(cuò)java.lang.ClassNotFoundException,如何解決?

出現(xiàn)上述報(bào)錯(cuò),是因?yàn)槟谝氚鼤r(shí),沒有引入與其相關(guān)的依賴包或重復(fù)引入某個(gè)包,請(qǐng)排查本地環(huán)境配置。

如果您是在MaxCompute上執(zhí)行MapReduce作業(yè)時(shí)出現(xiàn)此錯(cuò)誤,請(qǐng)檢查是否已通過-resources參數(shù)引入依賴的包。

MaxCompute運(yùn)行代碼時(shí),報(bào)錯(cuò)OpenJDK 64-Bit Server VM warning,如何解決?

  • 問題現(xiàn)象

    報(bào)錯(cuò)信息如下。

    OpenJDK 64-Bit Server VM warning: Insufficient space for shared memory
  • 產(chǎn)生原因

    出現(xiàn)上述報(bào)錯(cuò),是因?yàn)榕R時(shí)文件的目錄空間不足。

  • 解決方法

    您可以通過df命令,查看并清理臨時(shí)文件的目錄空間。

MaxCompute查找實(shí)例時(shí),報(bào)錯(cuò)Instance not found,如何解決?

  • 問題現(xiàn)象

    報(bào)錯(cuò)信息如下。

    com.aliyun.odps.rest.RestException: RequestId=**,Code=NoSuchObject,Message=ODPS-0424111: Instance not found - 'instanceid'. at
  • 產(chǎn)生原因

    出現(xiàn)上述報(bào)錯(cuò),可能是因?yàn)轫?xiàng)目信息錯(cuò)誤。

  • 解決方法

    建議您確認(rèn)實(shí)例所在的項(xiàng)目連接信息是否正確,包括項(xiàng)目名稱、賬號(hào)認(rèn)證信息等。