สำหรับคำถามใดๆ ที่ไม่ได้รับคำตอบในไฟล์นี้หรือในเอกสาร H2O-3 โปรดใช้:
H2O เป็นแพลตฟอร์มในหน่วยความจำสำหรับการเรียนรู้ของเครื่องแบบกระจายและปรับขนาดได้ H2O ใช้อินเทอร์เฟซที่คุ้นเคย เช่น R, Python, Scala, Java, JSON และอินเทอร์เฟซสมุดบันทึก/เว็บ Flow และทำงานได้อย่างราบรื่นกับเทคโนโลยีข้อมูลขนาดใหญ่ เช่น Hadoop และ Spark H2O นำเสนอการใช้งานอัลกอริธึมยอดนิยมมากมาย เช่น Generalized Linear Models (GLM), Gradient Boosting Machines (รวมถึง XGBoost), Random Forests, Deep Neural Networks, Stacked Ensembles, Naive Bayes, Generalized Additive Models (GAM), Cox Proportional Hazards, K- หมายถึง PCA, Word2Vec รวมถึงอัลกอริธึมการเรียนรู้ของเครื่องอัตโนมัติเต็มรูปแบบ (H2O AutoML)
H2O สามารถขยายได้เพื่อให้นักพัฒนาสามารถเพิ่มการแปลงข้อมูลและอัลกอริธึมแบบกำหนดเองตามที่พวกเขาเลือก และเข้าถึงได้ผ่านไคลเอนต์เหล่านั้นทั้งหมด สามารถดาวน์โหลดและโหลดโมเดล H2O ลงในหน่วยความจำ H2O เพื่อการให้คะแนน หรือส่งออกเป็นรูปแบบ POJO หรือ MOJO เพื่อการให้คะแนนที่รวดเร็วเป็นพิเศษในการผลิต สามารถดูข้อมูลเพิ่มเติมได้ในคู่มือผู้ใช้ H2O
H2O-3 (พื้นที่เก็บข้อมูลนี้) เป็นรูปแบบที่สามของ H2O และเป็นตัวตายตัวแทนของ H2O-2
แม้ว่า README ส่วนใหญ่นี้เขียนขึ้นสำหรับนักพัฒนาที่สร้างงานของตนเอง แต่ผู้ใช้ H2O ส่วนใหญ่เพียงดาวน์โหลดและใช้เวอร์ชันที่สร้างไว้ล่วงหน้า หากคุณเป็นผู้ใช้ Python หรือ R วิธีที่ง่ายที่สุดในการติดตั้ง H2O คือผ่าน PyPI หรือ Anaconda (สำหรับ Python) หรือ CRAN (สำหรับ R):
pip install h2o
install.packages( " h2o " )
สำหรับเวอร์ชันเสถียรล่าสุด ยามค่ำคืน Hadoop (หรือ Spark / Sparkling Water) หรือขวด H2O แบบสแตนด์อโลน โปรดไปที่: https://h2o.ai/download
ข้อมูลเพิ่มเติมเกี่ยวกับการดาวน์โหลดและติดตั้ง H2O มีอยู่ในคู่มือผู้ใช้ H2O
คนส่วนใหญ่โต้ตอบกับแหล่งข้อมูลโอเพ่นซอร์สหลักสามหรือสี่รายการ: GitHub (ซึ่งคุณพบแล้ว), ปัญหา GitHub (สำหรับรายงานข้อผิดพลาดและการติดตามปัญหา), Stack Overflow สำหรับโค้ด H2O/คำถามเฉพาะซอฟต์แวร์ และ h2ostream (กลุ่ม Google / ฟอรัมสนทนาทางอีเมล) สำหรับคำถามที่ไม่เหมาะกับ Stack Overflow นอกจากนี้ยังมีกลุ่มแชทสำหรับนักพัฒนา Gitter H2O อย่างไรก็ตาม เพื่อวัตถุประสงค์ในการเก็บถาวรและเพื่อเพิ่มการเข้าถึงสูงสุด เราต้องการให้ดำเนินการถามตอบ H2O มาตรฐานบน Stack Overflow
คุณสามารถเรียกดูและสร้างปัญหาใหม่ในพื้นที่เก็บข้อมูล GitHub ของเรา: https://github.com/h2oai/h2o-3
Issues
ที่ด้านบนของหน้าGitHub
ปัญหา GitHub -- ยื่นรายงานข้อบกพร่อง/ติดตามปัญหาที่นี่
Stack Overflow -- ถามคำถามเกี่ยวกับโค้ด/ซอฟต์แวร์ทั้งหมดที่นี่
Cross Validated (Stack Exchange) -- ถามคำถามอัลกอริทึม/ทฤษฎีที่นี่
h2ostream Google Group -- ถามคำถามที่ไม่เกี่ยวข้องกับโค้ดที่นี่
แชทนักพัฒนา Gitter H2O
เอกสารประกอบ
ดาวน์โหลด (แพ็คเกจที่สร้างไว้ล่วงหน้า)
เว็บไซต์
Twitter -- ติดตามเราเพื่อรับข้อมูลอัปเดตและข่าวสาร H2O!
สุดยอด H2O -- แบ่งปันการสร้างสรรค์ที่ขับเคลื่อนด้วย H2O ของคุณกับเรา
ทุกบิลด์ทุกคืนจะเผยแพร่อาร์ติแฟกต์ R, Python, Java และ Scala ไปยังพื้นที่เก็บข้อมูลเฉพาะบิลด์ โดยเฉพาะอย่างยิ่ง คุณสามารถค้นหาสิ่งประดิษฐ์ Java ได้ในไดเร็กทอรี maven/repo
นี่คือตัวอย่างไฟล์ Gradle build ที่ใช้ h2o-3 เป็นการพึ่งพา แทนที่ x, y, z และ nnnn ด้วยตัวเลขที่ถูกต้อง
// h2o-3 dependency information
def h2oBranch = 'master'
def h2oBuildNumber = 'nnnn'
def h2oProjectVersion = "x.y.z.${h2oBuildNumber}"
repositories {
// h2o-3 dependencies
maven {
url "https://s3.amazonaws.com/h2o-release/h2o-3/${h2oBranch}/${h2oBuildNumber}/maven/repo/"
}
}
dependencies {
compile "ai.h2o:h2o-core:${h2oProjectVersion}"
compile "ai.h2o:h2o-algos:${h2oProjectVersion}"
compile "ai.h2o:h2o-web:${h2oProjectVersion}"
compile "ai.h2o:h2o-app:${h2oProjectVersion}"
}
โปรดดูหน้า H2O-3 Bleeding Edge Nightly Build ล่าสุดสำหรับข้อมูลเกี่ยวกับการติดตั้งอาร์ติแฟกต์ Build Nightly
โปรดดูที่เก็บ h2o-droplets GitHub สำหรับตัวอย่างการทำงานของวิธีใช้ส่วน Java กับการไล่ระดับ
หมายเหตุ: อาร์ติแฟกต์ H2O-3 ที่เสถียรจะได้รับการเผยแพร่ไปยัง Maven Central เป็นระยะๆ (คลิกที่นี่เพื่อค้นหา) แต่อาจล้าหลังอย่างมากหลัง H2O-3 Bleeding Edge ที่สร้างทุกคืน
การเริ่มต้นใช้งานการพัฒนา H2O ต้องใช้ JDK 1.8+, Node.js, Gradle, Python และ R เราใช้ Gradle wrapper (เรียกว่า gradlew
) เพื่อให้แน่ใจว่า Gradle เวอร์ชันท้องถิ่นล่าสุดและการขึ้นต่อกันอื่นๆ ได้รับการติดตั้งในไดเร็กทอรีการพัฒนาของคุณ
การสร้าง h2o
ต้องการสภาพแวดล้อม R ที่ตั้งค่าอย่างเหมาะสมด้วยแพ็คเกจที่จำเป็นและสภาพแวดล้อม Python ด้วยแพ็คเกจต่อไปนี้:
grip
tabulate
requests
wheel
ในการติดตั้งแพ็คเกจเหล่านี้คุณสามารถใช้ pip หรือ conda หากคุณมีปัญหาในการติดตั้งแพ็คเกจเหล่านี้บน Windows โปรดปฏิบัติตามส่วนการตั้งค่าบน Windows ของคู่มือนี้
(หมายเหตุ: ขอแนะนำให้ใช้สภาพแวดล้อมเสมือนบางอย่าง เช่น VirtualEnv เพื่อติดตั้งแพ็คเกจทั้งหมด )
หากต้องการสร้าง H2O จากที่เก็บ ให้ทำตามขั้นตอนต่อไปนี้
# Build H2O
git clone https://github.com/h2oai/h2o-3.git
cd h2o-3
./gradlew build -x test
You may encounter problems: e.g. npm missing. Install it:
brew install npm
# Start H2O
java -jar build/h2o.jar
# Point browser to http://localhost:54321
git clone https://github.com/h2oai/h2o-3.git
cd h2o-3
./gradlew syncSmalldata
./gradlew syncRPackages
./gradlew build
หมายเหตุ :
- การรันการทดสอบจะเริ่มต้นการทดสอบ JVM ห้ารายการที่สร้างคลัสเตอร์ H2O และต้องการ RAM อย่างน้อย 8GB (ควรเป็น RAM 16GB)
- การรัน
./gradlew syncRPackages
ได้รับการสนับสนุนบน Windows, OS X และ Linux และขอแนะนำอย่างยิ่งแต่ไม่จำเป็น./gradlew syncRPackages
ช่วยให้มั่นใจได้ว่าสภาพแวดล้อมที่สมบูรณ์และสอดคล้องกับแพ็คเกจเวอร์ชันที่ได้รับอนุมัติล่วงหน้าซึ่งจำเป็นสำหรับการทดสอบและบิลด์ สามารถติดตั้งแพ็กเกจด้วยตนเองได้ แต่เราแนะนำให้ตั้งค่าตัวแปร ENV และใช้./gradlew syncRPackages
หากต้องการตั้งค่าตัวแปร ENV ให้ใช้รูปแบบต่อไปนี้ (โดยที่ `${WORKSPACE} อาจเป็นเส้นทางใดก็ได้):mkdir -p ${WORKSPACE}/Rlibrary export R_LIBS_USER=${WORKSPACE}/Rlibrary
git pull
./gradlew syncSmalldata
./gradlew syncRPackages
./gradlew clean
./gradlew build
เราแนะนำให้ใช้ ./gradlew clean
หลังจาก git pull
แต่ละครั้ง
ข้ามการทดสอบโดยการเพิ่ม -x test
ที่ส่วนท้ายของบรรทัดคำสั่ง gradle build โดยทั่วไปการทดสอบจะใช้เวลา 7-10 นาทีบนแล็ปท็อป Macbook Pro ที่มี CPU 4 ตัว (ไฮเปอร์เธรด 8 ตัว) และ RAM ขนาด 16 GB
ไม่จำเป็นต้องซิงค์ข้อมูลขนาดเล็กหลังจากการดึงแต่ละครั้ง แต่หากการทดสอบล้มเหลวเนื่องจากไฟล์ข้อมูลหายไป ให้ลอง ./gradlew syncSmalldata
เป็นขั้นตอนการแก้ปัญหาขั้นตอนแรก การซิงค์ไฟล์ข้อมูลขนาดเล็กจะดาวน์โหลดไฟล์ข้อมูลจาก AWS S3 ไปยังไดเร็กทอรีข้อมูลขนาดเล็กในพื้นที่ทำงานของคุณ การซิงค์จะเพิ่มขึ้น อย่าเช็คอินไฟล์เหล่านี้ ไดเร็กทอรี Smalldata อยู่ใน .gitignore หากคุณไม่ได้รันการทดสอบใดๆ คุณไม่จำเป็นต้องมีไดเร็กทอรีข้อมูลขนาดเล็ก
การรัน ./gradlew syncRPackages
ได้รับการสนับสนุนบน Windows, OS X และ Linux และขอแนะนำอย่างยิ่งแต่ไม่จำเป็น ./gradlew syncRPackages
ช่วยให้มั่นใจได้ว่าสภาพแวดล้อมที่สมบูรณ์และสอดคล้องกับแพ็คเกจเวอร์ชันที่ได้รับอนุมัติล่วงหน้าซึ่งจำเป็นสำหรับการทดสอบและบิลด์ สามารถติดตั้งแพ็กเกจด้วยตนเองได้ แต่เราแนะนำให้ตั้งค่าตัวแปร ENV และใช้ ./gradlew syncRPackages
หากต้องการตั้งค่าตัวแปร ENV ให้ใช้รูปแบบต่อไปนี้ (โดยที่ ${WORKSPACE}
อาจเป็นเส้นทางใดก็ได้):
mkdir -p ${WORKSPACE}/Rlibrary
export R_LIBS_USER=${WORKSPACE}/Rlibrary
./gradlew clean && ./gradlew build -x test && (export DO_FAST=1; ./gradlew dist)
open target/docs-website/h2o-docs/index.html
รูทของที่เก็บ git มี Makefile พร้อมทางลัดที่สะดวกสบายสำหรับเป้าหมายบิลด์ที่ใช้บ่อยในการพัฒนา หากต้องการสร้าง h2o.jar
ในขณะที่ข้ามการทดสอบและสร้างชุดประกอบทางเลือก ให้ดำเนินการ
make
หากต้องการสร้าง h2o.jar
โดยใช้ชุดประกอบขั้นต่ำ ให้รัน
make minimal
การประกอบขั้นต่ำเหมาะอย่างยิ่งสำหรับการพัฒนาอัลกอริธึมการเรียนรู้ของเครื่อง H2O มันไม่ได้รวมการพึ่งพาแบบเฮฟวี่เวทบางรายการ (เช่น Hadoop) และการใช้มันช่วยประหยัดเวลาในการสร้าง รวมถึงจำเป็นต้องดาวน์โหลดไลบรารีขนาดใหญ่จากที่เก็บ Maven
จากบรรทัดคำสั่ง ตรวจสอบความถูกต้อง python
โดยใช้แพ็คเกจที่ติดตั้งใหม่โดยใช้ which python
(หรือ sudo which python
) อัปเดตตัวแปรสภาพแวดล้อมด้วยเส้นทาง WinPython
pip install grip tabulate wheel
ติดตั้ง Java 1.8+ และเพิ่มไดเร็กทอรีที่เหมาะสม C:Program FilesJavajdk1.7.0_65bin
ด้วย java.exe ไปยัง PATH ใน Environment Variables เพื่อให้แน่ใจว่าพรอมต์คำสั่งตรวจพบเวอร์ชัน Java ที่ถูกต้อง ให้รัน:
javac -version
ตัวแปร CLASSPATH จำเป็นต้องตั้งค่าเป็นโฟลเดอร์ย่อย lib ของ JDK ด้วย:
CLASSPATH=/<path>/<to>/<jdk>/lib
ติดตั้ง Node.js และเพิ่มไดเร็กทอรีที่ติดตั้ง C:Program Filesnodejs
ซึ่งจะต้องมี node.exe และ npm.cmd ลงใน PATH หากยังไม่ได้เติมไว้ล่วงหน้า
ติดตั้ง R และเพิ่มไดเร็กทอรี bin ให้กับ PATH ของคุณหากยังไม่ได้รวมไว้
ติดตั้งแพ็คเกจ R ต่อไปนี้:
หากต้องการติดตั้งแพ็คเกจเหล่านี้จากภายในเซสชัน R:
pkgs <- c( " RCurl " , " jsonlite " , " statmod " , " devtools " , " roxygen2 " , " testthat " )
for ( pkg in pkgs ) {
if ( ! ( pkg %in% rownames(installed.packages()))) install.packages( pkg )
}
โปรดทราบว่าจำเป็นต้องใช้ libcurl สำหรับการติดตั้งแพ็คเกจ RCurl R
โปรดทราบว่าแพ็คเกจนี้ไม่ครอบคลุมถึงการทดสอบที่กำลังรันอยู่ แต่สำหรับการสร้าง H2O เท่านั้น
สุดท้าย ให้ติดตั้ง Rtools ซึ่งเป็นชุดเครื่องมือบรรทัดคำสั่งเพื่ออำนวยความสะดวกในการพัฒนา R บน Windows
หมายเหตุ : ในระหว่างการติดตั้ง Rtools ห้าม ติดตั้ง Cygwin.dll
หมายเหตุ : ระหว่างการติดตั้ง Cygwin ให้ยกเลิกการเลือกแพ็คเกจ Python เพื่อหลีกเลี่ยงความขัดแย้งกับแพ็คเกจ Python.org
หากติดตั้ง Cygwin ไว้แล้ว ให้ลบแพ็คเกจ Python ออกหรือตรวจสอบให้แน่ใจว่า Native Python อยู่ก่อน Cygwin ในตัวแปร PATH
หากคุณยังไม่มีไคลเอ็นต์ Git โปรดติดตั้ง ค่าเริ่มต้นสามารถพบได้ที่นี่http://git-scm.com/downloads ตรวจสอบให้แน่ใจว่าเปิดใช้งานการสนับสนุนพรอมต์คำสั่งก่อนการติดตั้ง
ดาวน์โหลดและอัปเดตซอร์สโค้ด h2o-3:
git clone https://github.com/h2oai/h2o-3
cd h2o-3
./gradlew.bat build
หากคุณพบข้อผิดพลาด ให้รันอีกครั้งด้วย
--stacktrace
เพื่อดูคำแนะนำเพิ่มเติมเกี่ยวกับการขึ้นต่อกันที่ขาดหายไป
หากคุณไม่มี Homebrew เราขอแนะนำให้ติดตั้ง ทำให้การจัดการแพ็คเกจสำหรับ OS X เป็นเรื่องง่าย
ติดตั้งจาวา 1.8+ เพื่อให้แน่ใจว่าพรอมต์คำสั่งตรวจพบเวอร์ชัน Java ที่ถูกต้อง ให้รัน:
javac -version
การใช้โฮมบรูว์:
brew install node
มิฉะนั้น ให้ติดตั้งจากเว็บไซต์ NodeJS
ติดตั้ง R และเพิ่มไดเร็กทอรี bin ให้กับ PATH ของคุณหากยังไม่ได้รวมไว้
ติดตั้งแพ็คเกจ R ต่อไปนี้:
หากต้องการติดตั้งแพ็คเกจเหล่านี้จากภายในเซสชัน R:
pkgs <- c( " RCurl " , " jsonlite " , " statmod " , " devtools " , " roxygen2 " , " testthat " )
for ( pkg in pkgs ) {
if ( ! ( pkg %in% rownames(installed.packages()))) install.packages( pkg )
}
โปรดทราบว่าจำเป็นต้องใช้ libcurl สำหรับการติดตั้งแพ็คเกจ RCurl R
โปรดทราบว่าแพ็คเกจนี้ไม่ครอบคลุมถึงการทดสอบที่กำลังรันอยู่ แต่สำหรับการสร้าง H2O เท่านั้น
ติดตั้งหลาม:
brew install python
ติดตั้งตัวจัดการแพ็คเกจ pip:
sudo easy_install pip
แพ็คเกจที่จำเป็นในการติดตั้งถัดไป:
sudo pip install wheel requests tabulate
OS X ควรติดตั้ง Git ไว้แล้ว วิธีดาวน์โหลดและอัปเดตซอร์สโค้ด h2o-3:
git clone https://github.com/h2oai/h2o-3
cd h2o-3
./gradlew build
หมายเหตุ: สำหรับเครื่องทั่วไปอาจใช้เวลานานมาก (ประมาณหนึ่งชั่วโมง) ในการทำการทดสอบทั้งหมด
หากคุณพบข้อผิดพลาด ให้รันอีกครั้งด้วย
--stacktrace
เพื่อดูคำแนะนำเพิ่มเติมเกี่ยวกับการขึ้นต่อกันที่ขาดหายไป
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs
ติดตั้ง Java 8 คำแนะนำในการติดตั้งสามารถพบได้ที่นี่ การติดตั้ง JDK เพื่อให้แน่ใจว่าพรอมต์คำสั่งตรวจพบเวอร์ชัน Java ที่ถูกต้อง ให้รัน:
javac -version
คำแนะนำในการติดตั้งสามารถพบได้ที่นี่ การติดตั้ง R คลิก “ดาวน์โหลด R สำหรับ Linux” คลิก "อูบุนตู" ปฏิบัติตามคำแนะนำที่กำหนด
หากต้องการติดตั้งแพ็คเกจที่จำเป็น ให้ปฏิบัติตามคำแนะนำเดียวกันกับ OS X ข้างต้น
หมายเหตุ : หากกระบวนการล้มเหลวในการติดตั้งเซิร์ฟเวอร์ RStudio บน Linux ให้รันหนึ่งในรายการต่อไปนี้:
sudo apt-get install libcurl4-openssl-dev
หรือ
sudo apt-get install libcurl4-gnutls-dev
หากคุณยังไม่มีไคลเอนต์ Git:
sudo apt-get install git
ดาวน์โหลดและอัปเดตซอร์สโค้ด h2o-3:
git clone https://github.com/h2oai/h2o-3
cd h2o-3
./gradlew build
หากคุณพบข้อผิดพลาด ให้รันอีกครั้งโดยใช้
--stacktrace
เพื่อดูคำแนะนำเพิ่มเติมเกี่ยวกับการขึ้นต่อกันที่ขาดหายไป
ตรวจสอบให้แน่ใจว่าคุณไม่ได้รันในฐานะรูท เนื่องจาก
bower
จะปฏิเสธการรันดังกล่าว
curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
sudo apt-get install -y nodejs
cd /opt
sudo wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz"
sudo tar xzf jdk-7u79-linux-x64.tar.gz
cd jdk1.7.0_79
sudo alternatives --install /usr/bin/java java /opt/jdk1.7.0_79/bin/java 2
sudo alternatives --install /usr/bin/jar jar /opt/jdk1.7.0_79/bin/jar 2
sudo alternatives --install /usr/bin/javac javac /opt/jdk1.7.0_79/bin/javac 2
sudo alternatives --set jar /opt/jdk1.7.0_79/bin/jar
sudo alternatives --set javac /opt/jdk1.7.0_79/bin/javac
cd /opt
sudo wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
sudo rpm -ivh epel-release-7-5.noarch.rpm
sudo echo "multilib_policy=best" >> /etc/yum.conf
sudo yum -y update
sudo yum -y install R R-devel git python-pip openssl-devel libxml2-devel libcurl-devel gcc gcc-c++ make openssl-devel kernel-devel texlive texinfo texlive-latex-fonts libX11-devel mesa-libGL-devel mesa-libGL nodejs npm python-devel numpy scipy python-pandas
sudo pip install scikit-learn grip tabulate statsmodels wheel
mkdir ~/Rlibrary
export JAVA_HOME=/opt/jdk1.7.0_79
export JRE_HOME=/opt/jdk1.7.0_79/jre
export PATH=$PATH:/opt/jdk1.7.0_79/bin:/opt/jdk1.7.0_79/jre/bin
export R_LIBS_USER=~/Rlibrary
# install local R packages
R -e 'install.packages(c("RCurl","jsonlite","statmod","devtools","roxygen2","testthat"), dependencies=TRUE, repos="http://cran.rstudio.com/")'
cd
git clone https://github.com/h2oai/h2o-3.git
cd h2o-3
# Build H2O
./gradlew syncSmalldata
./gradlew syncRPackages
./gradlew build -x test
หากต้องการเริ่มคลัสเตอร์ H2O ในเครื่อง ให้ดำเนินการต่อไปนี้บนบรรทัดคำสั่ง:
java -jar build/h2o.jar
รายการตัวเลือกการเริ่มต้นใช้งาน JVM และ H2O (เช่น -Xmx
, -nthreads
, -ip
) มีอยู่ในคู่มือผู้ใช้ H2O
ไฟล์ zip H2O-on-Hadoop ที่สร้างไว้ล่วงหน้ามีอยู่ในหน้าดาวน์โหลด เวอร์ชันการแจกจ่าย Hadoop แต่ละเวอร์ชันจะมีไฟล์ zip แยกต่างหากใน h2o-3
หากต้องการสร้าง H2O ด้วย Hadoop ให้ช่วยเหลือตัวเอง ก่อนอื่นให้ติดตั้ง sphinx สำหรับ python: pip install sphinx
จากนั้นเริ่ม build โดยป้อนคำสั่งต่อไปนี้จากไดเร็กทอรี h2o-3 ระดับบนสุด:
export BUILD_HADOOP=1;
./gradlew build -x test;
./gradlew dist;
สิ่งนี้จะสร้างไดเร็กทอรีชื่อ 'เป้าหมาย' และสร้างไฟล์ zip ที่นั่น โปรดทราบว่า BUILD_HADOOP
เป็นพฤติกรรมเริ่มต้นเมื่อชื่อผู้ใช้คือ jenkins
(อ้างถึง settings.gradle
) มิฉะนั้นคุณจะต้องร้องขอดังที่แสดงไว้ข้างต้น
หากต้องการสร้างไฟล์ zip สำหรับการกระจายที่เลือกเท่านั้น ให้ใช้ตัวแปร env H2O_TARGET
ร่วมกับ BUILD_HADOOP
เช่น:
export BUILD_HADOOP=1;
export H2O_TARGET=hdp2.5,hdp2.6
./gradlew build -x test;
./gradlew dist;
ในไดเร็กทอรี h2o-hadoop
แต่ละเวอร์ชันของ Hadoop จะมีไดเร็กทอรี build สำหรับไดรเวอร์และไดเร็กทอรีแอสเซมบลีสำหรับ fatjar
คุณต้อง:
build.gradle
) ใน h2o-hadoop
h2o-3/settings.gradle
HADOOP_VERSIONS
ใน make-dist.sh
h2o-dist/buildinfo.json
Hadoop รองรับการเลียนแบบผู้ใช้อย่างปลอดภัยผ่าน Java API ผู้ใช้ที่ได้รับการรับรองความถูกต้องของ Kerberos สามารถได้รับอนุญาตให้พร็อกซีชื่อผู้ใช้ใดๆ ที่ตรงตามเกณฑ์ที่ระบุที่ป้อนในไฟล์ core-site.xml ของ NameNode การเลียนแบบนี้ใช้เฉพาะกับการโต้ตอบกับ Hadoop API หรือ API ของบริการที่เกี่ยวข้องกับ Hadoop ที่รองรับเท่านั้น (ซึ่งไม่เหมือนกับการเปลี่ยนไปใช้ผู้ใช้นั้นบนเครื่องต้นทาง)
การตั้งค่าการเลียนแบบผู้ใช้ที่ปลอดภัย (สำหรับ h2o):
hadoop.proxyuser.<proxyusername>.hosts
: โฮสต์ที่ผู้ใช้พร็อกซีได้รับอนุญาตให้ดำเนินการเลียนแบบในนามของผู้ใช้ที่ถูกต้องจากhadoop.proxyuser.<proxyusername>.groups
: กลุ่มที่ผู้ใช้ที่แอบอ้างจะต้องเป็นสมาชิกเพื่อให้การแอบอ้างบุคคลอื่นทำงานกับผู้ใช้พร็อกซีนั้นhadoop.proxyuser.<proxyusername>.users
: ผู้ใช้ที่ผู้ใช้พร็อกซีได้รับอนุญาตให้เลียนแบบ<property> <name>hadoop.proxyuser.myproxyuser.hosts</name> <value>host1,host2</value> </property> <property> <name>hadoop.proxyuser.myproxyuser.groups</name> <value>group1,group2</value> </property> <property> <name>hadoop.proxyuser.myproxyuser.users</name> <value>user1,user2</value> </property>
การดำเนินการ HDFS ที่เลียนแบบสามารถดูได้ในบันทึกการตรวจสอบ hdfs ('auth:PROXY' ควรปรากฏในฟิลด์ ugi=
ในรายการที่เกี่ยวข้อง) YARN ในทำนองเดียวกันควรแสดง 'auth:PROXY' ที่ใดที่หนึ่งใน UI ตัวจัดการทรัพยากร
หากต้องการใช้การเลียนแบบอย่างปลอดภัยกับไดรเวอร์ Hadoop ของ h2o:
ก่อนที่จะดำเนินการนี้ โปรดดูความเสี่ยงจากการแอบอ้างบุคคลอื่นด้านล่าง
เมื่อใช้ h2odriver (เช่น เมื่อรันด้วย hadoop jar ...
) ให้ระบุ -principal <proxy user kerberos principal>
, -keytab <proxy user keytab path>
และ -run_as_user <hadoop username to impersonate>
นอกเหนือจากอื่นๆ ข้อโต้แย้งที่จำเป็น หากการกำหนดค่าสำเร็จ ผู้ใช้พร็อกซีจะเข้าสู่ระบบและเลียนแบบ -run_as_user
ตราบใดที่ผู้ใช้นั้นได้รับอนุญาตจากคุณสมบัติการกำหนดค่าของผู้ใช้หรือกลุ่ม (กำหนดค่าไว้ด้านบน) สิ่งนี้บังคับใช้โดย HDFS & YARN ไม่ใช่รหัสของ h2o ไดรเวอร์จะตั้งค่าบริบทความปลอดภัยเป็นผู้ใช้ที่แอบอ้างอย่างมีประสิทธิภาพ ดังนั้นการดำเนินการ Hadoop ที่ได้รับการสนับสนุนทั้งหมดจะถูกดำเนินการในฐานะผู้ใช้นั้น (เช่น YARN, HDFS API รองรับผู้ใช้ที่แอบอ้างอย่างปลอดภัย แต่ผู้อื่นอาจไม่รองรับ)
hadoop.proxyuser.<proxyusername>.hosts
ทุกครั้งที่เป็นไปได้หรือใช้งานได้จริงsu
เป็นต้น)hadoop.proxyuser.<proxyusername>.{hosts,groups,users}
เป็น '*' สามารถเพิ่มความเสี่ยงด้านความปลอดภัยได้อย่างมาก $ git diff
diff --git a/h2o-app/build.gradle b/h2o-app/build.gradle
index af3b929..097af85 100644
--- a/h2o-app/build.gradle
+++ b/h2o-app/build.gradle
@@ -8,5 +8,6 @@ dependencies {
compile project(":h2o-algos")
compile project(":h2o-core")
compile project(":h2o-genmodel")
+ compile project(":h2o-persist-hdfs")
}
diff --git a/h2o-persist-hdfs/build.gradle b/h2o-persist-hdfs/build.gradle
index 41b96b2..6368ea9 100644
--- a/h2o-persist-hdfs/build.gradle
+++ b/h2o-persist-hdfs/build.gradle
@@ -2,5 +2,6 @@ description = "H2O Persist HDFS"
dependencies {
compile project(":h2o-core")
- compile("org.apache.hadoop:hadoop-client:2.0.0-cdh4.3.0")
+ compile("org.apache.hadoop:hadoop-client:2.4.1-mapr-1408")
+ compile("org.json:org.json:chargebee-1.0")
}
Sparkling Water ผสมผสานเทคโนโลยีโอเพ่นซอร์สสองอย่าง: Apache Spark และแพลตฟอร์ม H2O Machine Learning ทำให้คลังอัลกอริธึมขั้นสูงของ H2O รวมถึง Deep Learning, GLM, GBM, K-Means และ Distributed Random Forest สามารถเข้าถึงได้จากเวิร์กโฟลว์ Spark ผู้ใช้ Spark สามารถเลือกฟีเจอร์ที่ดีที่สุดจากแพลตฟอร์มใดแพลตฟอร์มหนึ่งได้ เพื่อตอบสนองความต้องการด้านการเรียนรู้ของเครื่อง ผู้ใช้สามารถรวม RDD API ของ Spark และ Spark MLLib เข้ากับอัลกอริธึมการเรียนรู้ของเครื่องของ H2O หรือใช้ H2O โดยไม่ขึ้นอยู่กับ Spark สำหรับกระบวนการสร้างแบบจำลองและหลังการประมวลผลผลลัพธ์ใน Spark
แหล่งน้ำอัดลม :
เอกสารหลักของ H2O คือคู่มือผู้ใช้ H2O ไปที่ http://docs.h2o.ai เพื่อดูข้อมูลเบื้องต้นเกี่ยวกับเอกสารเกี่ยวกับโครงการ H2O
หากต้องการสร้างเอกสาร REST API ให้ใช้คำสั่งต่อไปนี้:
cd ~/h2o-3
cd py
python ./generate_rest_api_docs.py # to generate Markdown only
python ./generate_rest_api_docs.py --generate_html --github_user GITHUB_USER --github_password GITHUB_PASSWORD # to generate Markdown and HTML
ตำแหน่งดีฟอลต์สำหรับเอกสารคู่มือที่สร้างขึ้นคือ build/docs/REST
หากบิลด์ล้มเหลว ให้ลอง gradlew clean
จากนั้น git clean -f
เอกสารประกอบสำหรับ Bleeding Edge แต่ละคืนมีอยู่ในหน้าบิลด์ทุกคืน
หากคุณใช้ H2O เป็นส่วนหนึ่งของขั้นตอนการทำงานของคุณในสิ่งพิมพ์ โปรดอ้างอิงทรัพยากร H2O ของคุณโดยใช้รายการ BibTex ต่อไปนี้:
@Manual{h2o_package_or_module,
title = {package_or_module_title},
author = {H2O.ai},
year = {year},
month = {month},
note = {version_information},
url = {resource_url},
}
ตัวอย่างการอ้างอิงซอฟต์แวร์ H2O ที่จัดรูปแบบ :
หนังสืออัลกอริทึม H2O มีอยู่ที่หน้าแรกของเอกสารประกอบ
@Manual{h2o_booklet_name,
title = {booklet_title},
author = {list_of_authors},
year = {year},
month = {month},
url = {link_url},
}
ตัวอย่างการอ้างอิงหนังสือเล่มเล็กที่มีการจัดรูปแบบ :
Arora, A., Candel, A., Lanford, J., LeDell, E. และ Parmar, V. (ต.ค. 2016) การเรียนรู้เชิงลึกด้วย H2O http://docs.h2o.ai/h2o/latest-stable/h2o-docs/booklets/DeepLearningBooklet.pdf
Click, C., Lanford, J., Malohlava, M., Parmar, V. และ Roark, H. (ต.ค. 2016) โมเดลที่มีการไล่ระดับด้วย H2O http://docs.h2o.ai/h2o/latest-stable/h2o-docs/booklets/GBMBooklet.pdf
H2O ถูกสร้างขึ้นโดยผู้มีส่วนร่วมจำนวนมากตลอดหลายปีที่ผ่านมา ทั้งภายใน H2O.ai (บริษัท) และชุมชนโอเพ่นซอร์สที่ใหญ่กว่า คุณสามารถเริ่มมีส่วนร่วมกับ H2O ได้โดยการตอบคำถาม Stack Overflow หรือยื่นรายงานข้อบกพร่อง กรุณาเข้าร่วมกับเรา!
SriSatish Ambati
Cliff Click
Tom Kraljevic
Tomas Nykodym
Michal Malohlava
Kevin Normoyle
Spencer Aiello
Anqi Fu
Nidhi Mehta
Arno Candel
Josephine Wang
Amy Wang
Max Schloemer
Ray Peck
Prithvi Prabhu
Brandon Hill
Jeff Gambera
Ariel Rao
Viraj Parmar
Kendall Harris
Anand Avati
Jessica Lanford
Alex Tellez
Allison Washburn
Amy Wang
Erik Eckstrand
Neeraja Madabhushi
Sebastian Vidrio
Ben Sabrin
Matt Dowle
Mark Landry
Erin LeDell
Andrey Spiridonov
Oleg Rogynskyy
Nick Martin
Nancy Jordan
Nishant Kalonia
Nadine Hussami
Jeff Cramer
Stacie Spreitzer
Vinod Iyengar
Charlene Windom
Parag Sanghavi
Navdeep Gill
Lauren DiPerna
Anmol Bal
Mark Chan
Nick Karpov
Avni Wadhwa
Ashrith Barthur
Karen Hayrapetyan
Jo-fai Chow
Dmitry Larko
Branden Murray
Jakub Hava
Wen Phan
Magnus Stensmo
Pasha Stetsenko
Angela Bartz
Mateusz Dymczyk
Micah Stubbs
Ivy Wang
Terone Ward
Leland Wilkinson
Wendy Wong
Nikhil Shekhar
Pavel Pscheidl
Michal Kurka
Veronika Maurerova
Jan Sterba
Jan Jendrusak
Sebastien Poirier
Tomáš Frýda
Ard Kelmendi
Yuliia Syzon
Adam Valenta
Marek Novotny
Zuzana Olajcova
สภาที่ปรึกษาทางวิทยาศาสตร์
Stephen Boyd
Rob Tibshirani
Trevor Hastie
ระบบ ข้อมูล ระบบไฟล์ และ Hadoop
Doug Lea
Chris Pouliot
Dhruba Borthakur
Jishnu Bhattacharjee, Nexus Venture Partners
Anand Babu Periasamy
Anand Rajaraman
Ash Bhardwaj
Rakesh Mathur
Michael Marks
Egbert Bierman
Rajesh Ambati