Tüm Ürünler
Search
Belge Merkezi

MaxCompute:Java sandbox

Son Güncelleme:Oct 04, 2026

MaxCompute, MapReduce işlerini ve kullanıcı tanımlı işlevleri (UDF'ler) dağıtık modda bir Java sandbox içinde çalıştırır. Sandbox, kodunuzun alttaki sisteme erişmeden veya yan etki oluşturmadan yalnızca aldığı veriler üzerinde işlem yapmasını ve sonuç döndürmesini zorlar. Bu sayede eşzamanlı işlerde dağıtık yürütme güvenli ve yalıtılmış olur.

Sandbox yalnızca dağıtık modda çalışan MapReduce görev kodu ve UDF'lere uygulanır. MapReduce ana işlevi bu kısıtlamalara tabi değildir.

Kısıtlamalar

Sandbox altı işlem kategorisini engeller. Her kategori için mevcut alternatifler aşağıda listelenmiştir.

Kategori Kısıtlama Alternatif
Yerel dosya erişimi Doğrudan dosya G/Ç işlemlerine izin verilmez. Kaynak dosyalarına, JAR paketlerine ve kaynak tablolarına MaxCompute MapReduce veya MaxCompute Graph API'leri aracılığıyla erişin. MaxCompute istemcisindeki Log komutunu kullanarak System.out ve System.err konumlarına yazılan günlükleri görüntüleyin.
Dağıtık dosya sistemi Dağıtık dosya sistemlerine doğrudan erişime izin verilmez. Tabloları okumak ve yazmak için MaxCompute MapReduce veya MaxCompute Graph kullanın.
JNI Java Native Interface (JNI) çağrılarına izin verilmez. —
İş parçacıkları Java iş parçacığı oluşturmaya izin verilmez. Alt iş parçacıklarından Linux komutları çalıştırılamaz. —
Ağ erişimi Yerel IP adreslerinin alınması dahil olmak üzere tüm ağ işlemlerine izin verilmez. —
Java yansıması suppressAccessChecks iznine izin verilmez. Özel alanlara ve özel yöntemlere erişilebilir hale getirilemez. —

Kısıtlı API'ler

Aşağıdaki yöntemlerden veya kuruculardan herhangi birini çağırmak bir access denied özel durumu oluşturur. Liste, sandbox tarafından engellenen tüm API'leri kapsar.

Dosya G/Ç

java.io.File

delete()
deleteOnExit()
exists()
canRead()
isFile()
isDirectory()
isHidden()
lastModified()
length()
list()
list(FilenameFilter filter)
listFiles()
listFiles(FilenameFilter filter)
listFiles(FileFilter filter)
canWrite()
createNewFile()
createTempFile(String prefix, String suffix)
createTempFile(String prefix, String suffix, File directory)
mkdir()
mkdirs()
renameTo(File dest)
setLastModified(long time)
setReadOnly()

java.io.RandomAccessFile

RandomAccessFile(String name, String mode)
RandomAccessFile(File file, String mode)

java.io.FileInputStream

FileInputStream(FileDescriptor fdObj)
FileInputStream(String name)
FileInputStream(File file)

java.io.FileOutputStream

FileOutputStream(FileDescriptor fdObj)
FileOutputStream(File file)
FileOutputStream(String name)
FileOutputStream(String name, boolean append)

Sınıf yükleme ve çalışma zamanı

java.lang.Class

getProtectionDomain()

java.lang.ClassLoader

ClassLoader()
ClassLoader(ClassLoader parent)

java.lang.Runtime

exec(String command)
exec(String command, String[] envp)
exec(String[] cmdarray)
exec(String[] cmdarray, String[] envp)
exit(int status)
runFinalizersOnExit(boolean value)
addShutdownHook(Thread hook)
removeShutdownHook(Thread hook)
load(String lib)
loadLibrary(String lib)

java.lang.System

exit(int status)
runFinalizersOnExit(boolean value)
load(String filename)
loadLibrary(String libname)
getProperties()
setProperties(Properties props)
getProperty(String key)           // Only the keys listed below are allowed
getProperty(String key, String def) // Only the keys listed below are allowed
setProperty(String key, String value)
setIn(InputStream in)
setOut(PrintStream out)
setErr(PrintStream err)
setSecurityManager(SecurityManager s)

System.getProperty yöntemi yalnızca aşağıdaki anahtarlara izin verir:

java.version
java.vendor
java.vendor.url
java.class.version
os.name
os.version
os.arch
file.separator
path.separator
line.separator
java.specification.version
java.specification.vendor
java.specification.name
java.vm.specification.version
java.vm.specification.vendor
java.vm.specification.name
java.vm.version
java.vm.vendor
java.vm.name
file.encoding
user.timezone

İş parçacıkları

java.lang.Thread

Thread()
Thread(Runnable target)
Thread(String name)
Thread(Runnable target, String name)
Thread(ThreadGroup group, ...)
checkAccess()
interrupt()
suspend()
resume()
setPriority(int newPriority)
setName(String name)
setDaemon(boolean on)
stop()
stop(Throwable obj)
enumerate(Thread[] tarray)
setContextClassLoader(ClassLoader cl)

java.lang.ThreadGroup

ThreadGroup(String name)
ThreadGroup(ThreadGroup parent, String name)
checkAccess()
enumerate(Thread[] list)
enumerate(Thread[] list, boolean recurse)
enumerate(ThreadGroup[] list)
enumerate(ThreadGroup[] list, boolean recurse)
getParent()
setDaemon(boolean daemon)
setMaxPriority(int pri)
suspend()
resume()
destroy()
interrupt()
stop()

Yansıma

java.lang.reflect.AccessibleObject

setAccessible(AccessibleObject[] array, boolean flag)
setAccessible(boolean flag)

Ağ

java.net.InetAddress

getHostName()
getAllByName(String host)
getLocalHost()

java.net.DatagramSocket

DatagramSocket(...)
getLocalAddress()
receive(DatagramPacket p)

java.net.Socket

Socket(...)

java.net.ServerSocket

ServerSocket(...)
accept()
implAccept(Socket s)
setSocketFactory(...)
setSocketImplFactory(...)

java.net.MulticastSocket

MulticastSocket(...)

java.net.URL

URL(...)
setURLStreamHandlerFactory(...)

java.net.URLConnection

setContentHandlerFactory(...)
setFileNameMap(FileNameMap map)

java.net.HttpURLConnection

setFollowRedirects(boolean set)

java.net.URLClassLoader

URLClassLoader(...)

Güvenlik

java.security.AccessControlContext

AccessControlContext(AccessControlContext acc, DomainCombiner combiner)
getDomainCombiner()