h2oai / h2o-3
H2O é uma plataforma in-memory para aprendizagem de máquinas distribuída e escalável. H2O usa interfaces familiares como R, Python, Scala, Java, JSON e a interface Flow notebook/web, e funciona perfeitamente com grandes tecnologias de dados como Hadoop e Spark. H2O fornece implementações de muitos algoritmos populares tais como Modelos Lineares Generalizados (GLM), Máquinas Gradient Boosting (incluindo XGBoost), Florestas Aleatórias, Redes Neurais Profundas, Ensembles Empilhados, Naive Bayes, Modelos Aditivos Generalizados (GAM), Perigos Proporcionais Cox, K-Means, PCA, Word2Vec, assim como um algoritmo de aprendizado de máquina totalmente automático (H2O AutoML).
H2O é extensível para que os desenvolvedores possam adicionar transformações de dados e algoritmos personalizados de sua escolha e acessá-los através de todos esses clientes. Os modelos H2O podem ser baixados e carregados na memória do H2O para pontuação, ou exportados para o formato POJO ou MOJO para uma pontuação extemamente rápida na produção. Mais informações podem ser encontradas no Guia do Usuário do H2O.
H2O-3 (este repositório) é a terceira encarnação do H2O, e o sucessor do H2O-2.
Tabela de Conteúdo
- Downloading H2O-3
- Recursos de Código Aberto
- Requisições de Rastreamento e Recursos
- Lista de Recursos H2O
- Utilização de Artefatos de Código H2O-3 (bibliotecas)
- Building H2O-3
- Lançamento de H2O após a construção
- Construir H2O no Hadoop
- Água com gás
- Documentação
- Citando H2O
- Roteiro
- Comunidade / Conselheiros / Investidores
>
>
>
>
>
1. Baixando H2O-3
Embora a maioria deste README seja escrito para desenvolvedores que fazem suas próprias construções, a maioria dos usuários de H2O apenas baixam e usam uma versão pré-construída. Se você é um usuário Python ou R, a maneira mais fácil de instalar o H2O é via PyPI ou Anaconda (para Python) ou CRAN (para R):
Python
pip install h2o
R
install.packages("h2o")
Mais informações sobre o download & instalar o H2O está disponível no H2O User Guide.
2. Recursos de código aberto
A maioria das pessoas interage com três ou quatro recursos de código aberto primários: GitHub (que você já encontrou), JIRA (para relatórios de bugs e rastreamento de problemas), Stack Overflow para questões específicas de código/software H2O, e h2ostream (um grupo Google / fórum de discussão por e-mail) para questões não adequadas para Stack Overflow. Há também um grupo de bate-papo para desenvolvedores Gitter H2O, entretanto para fins de arquivamento & para maximizar a acessibilidade, preferimos que o padrão H2O Q&A seja conduzido no Stack Overflow.
2.1 Rastreamento de Problemas e Solicitações de Recursos
(Nota: Há apenas um sistema de rastreamento de problemas para o projeto. Os problemas do GitHub não estão habilitados; você deve usar o JIRA.)
Você pode navegar e criar novos problemas em nosso JIRA de código aberto: http://jira.h2o.ai
- Você pode navegar e procurar por problemas sem fazer login no JIRA:
- Clique no menu
Issues
- Clique
Search for issues
- Clique no menu
- Para criar um problema (seja um bug ou um pedido de recurso), crie você mesmo uma conta primeiro:
- Clique no botão
Log In
no canto superior direito da tela - Clique
Create an acccount
perto da parte inferior da caixa de login - Após ter criado uma conta e feito login, use o botão
Create
no menu para criar um problema - Criar problemas H2O-3 no projeto PUBDEV. (Nota: Questões sobre Água com gás devem ser arquivadas sob o projeto SW.)
- Clique no botão
- Você também pode votar em pedidos de recursos e/ou outros problemas. A votação pode ajudar H2O a priorizar os recursos que estão incluídos em cada versão.
- Vá para a página H2O JIRA.
- Clique em Log In para entrar ou criar uma conta se você ainda não tiver uma.
- Procure o recurso que você deseja priorizar, ou crie um novo recurso.
- Clique no link Vote para este número. Isto está localizado no lado direito da questão na seção Pessoas.
2.2 Lista de Recursos H2O
3. Usando Artefatos H2O-3
Cada construção noturna publica artefatos R, Python, Java, e Scala para um repositório específico da construção. Em particular, você pode encontrar artefatos Java no diretório maven/repo.
Aqui está um trecho de exemplo de um arquivo de compilação gradle usando h2o-3 como uma dependência. Substitua x, y, z, e nnnn por números válidos.
Refer para a última página de compilação noturna do H2O-3 para informações sobre a instalação de artefatos de compilação noturna.
Refer para o repositório h2o-droplets GitHub para um exemplo de trabalho de como usar artefatos Java com gradle.
Note: Stable H2O-3 artifacts are periodically published to Maven Central (click here to search) but may substantially lag behind H2O-3 Bleeding Edge nightly builds.
4. Construindo H2O-3
A começar com o desenvolvimento de H2O requer JDK 1.7, Node.js, Gradle, Python e R. Nós usamos o envoltório Gradle (chamado gradlew
) para assegurar que versões locais atualizadas do Gradle e outras dependências estejam instaladas no seu diretório de desenvolvimento.
4.1. Antes de construir
Building h2o
requer um ambiente R devidamente configurado com os pacotes necessários e ambiente Python com os seguintes pacotes:
gripcoloramafuturetabulaterequestswheel
Para instalar estes pacotes você pode usar pip ou conda.Se você tiver problemas para instalar estes pacotes no Windows, por favor siga a seção Setup on Windows deste guia.
(Nota: É recomendado usar algum ambiente virtual como o VirtualEnv, para instalar todos os pacotes. )
4.2. Construir a partir da linha de comando (Quick Start)
Para construir H2O a partir do repositório, execute os seguintes passos.
Receita 1: Clonar fresco, construir, pular testes e executar H2O
Receita 2: Clonar fresco, construir e executar testes (requer uma instalação funcional de R)
git clone https://github.com/h2oai/h2o-3.gitcd h2o-3./gradlew syncSmalldata./gradlew syncRPackages./gradlew build
Notas:
- Executar testes inicia cinco JVMs de teste que formam um cluster H2O e requer pelo menos 8GB de RAM (de preferência 16GB de RAM).
- Executar
./gradlew syncRPackages
é suportado em Windows, OS X, e Linux, e é fortemente recomendado mas não necessário../gradlew syncRPackages
garante um ambiente completo e consistente com versões pré-aprovadas dos pacotes necessários para testes e builds. Os pacotes podem ser instalados manualmente, mas recomendamos definir uma variável ENV e usar./gradlew syncRPackages
. Para definir a variável ENV, utilize o seguinte formato (onde `${WORKSPACE} pode ser qualquer caminho):mkdir -p ${WORKSPACE}/Rlibraryexport R_LIBS_USER=${WORKSPACE}/Rlibrary
Receita 3: Puxar, limpar, construir e executar testes
git pull./gradlew syncSmalldata./gradlew syncRPackages./gradlew clean./gradlew build
Notas
-
Recomendamos utilizar
./gradlew clean
após cadagit pull
. -
Testes de kip adicionando
-x test
no final da linha de comando gradle build. Os testes normalmente rodam por 7-10 minutos em um laptop Macbook Pro com 4 CPUs (8 hyperthreads) e 16 GB de RAM. -
Syncing smallldata não é necessário após cada pull, mas se os testes falharem devido à falta de arquivos de dados, então tente
./gradlew syncSmalldata
como o primeiro passo de solução de problemas. A sincronização de pequenos dados descarrega ficheiros de dados de AWS S3 para o directório de pequenos dados no seu espaço de trabalho. A sincronização é incremental. Não verifique nesses arquivos. O diretório smallldata está em .gitignore. Se você não executar nenhum teste, você não precisa do diretório smallldata. -
Running
./gradlew syncRPackages
é suportado no Windows, OS X, e Linux, e é fortemente recomendado, mas não necessário../gradlew syncRPackages
garante um ambiente completo e consistente com versões pré-aprovadas dos pacotes necessários para testes e compilações. Os pacotes podem ser instalados manualmente, mas recomendamos definir uma variável ENV e usar./gradlew syncRPackages
. Para definir a variável ENV, utilize o seguinte formato (onde${WORKSPACE}
pode ser qualquer caminho):mkdir -p ${WORKSPACE}/Rlibraryexport R_LIBS_USER=${WORKSPACE}/Rlibrary
Receita 4: Basta construir os documentos
./gradlew clean && ./gradlew build -x test && (export DO_FAST=1; ./gradlew dist)open target/docs-website/h2o-docs/index.html
4.3. Configuração no Windows
Passo 1: Baixe e instale o WinPython.
Da linha de comando, valide python
está usando o pacote recém instalado usando which python
(ou ). Atualize a variável Ambiente com o caminho WinPython.
Passo 2: Instale os pacotes Python necessários:
pip install grip 'colorama>=0.3.8' future tabulate wheel
Passo 3: Instale JDK
Instale o Java 1.7 e adicione o diretório apropriado C:\Program Files\Java\jdk1.7.0_65\bin
com java.exe ao PATH em Variáveis de Ambiente. Para ter certeza que o prompt de comando está detectando a versão correta do Java, execute:
javac -version
A variável CLASSPATH também precisa ser definida para a subpasta lib do JDK:
CLASSPATH=/<path>/<to>/<jdk>/lib
Passo 4. Instale Node.js
Instale Node.js e adicione o diretório instalado C:\Program Files\nodejs
, que deve incluir node.exe e npm.cmd ao PATH se ainda não estiver pré-preenchido.
Passo 5. Instale R, os pacotes necessários, e Rtools:
Instale R e adicione o diretório bin ao seu PATH se ainda não tiver sido incluído.
Instale os seguintes pacotes R:
- RCurl
- jsonlite
- statmod
- devtools
- roxygen2
- testthat
Instalar estes pacotes a partir de uma sessão R:
Nota que a libcurl é necessária para a instalação do pacote RCurl R.
Nota que estes pacotes não cobrem os testes em execução, eles para construir H2O somente.
Finalmente, instale o Rtools, que é uma coleção de ferramentas de linha de comando para facilitar o desenvolvimento do R no Windows.
NOTE: Durante a instalação do Rtools, não instale Cygwin.dll.
Passo 6. Instale o Cygwin.dll.
NOTE: Durante a instalação do Cygwin, desmarque os pacotes Python para evitar um conflito com o pacote Python.org.
Passo 6b. Valide o Cygwin
Se o Cygwin já estiver instalado, remova os pacotes Python ou certifique-se de que o Native Python está antes do Cygwin na variável PATH.
Passo 7. Atualize ou valide a variável PATH do Windows para incluir R, Java JDK, Cygwin.
Passo 8. Git Clone h2o-3
Se você ainda não tem um cliente Git, por favor instale um. O cliente padrão pode ser encontrado aqui http://git-scm.com/downloads. Certifique-se que o suporte a prompt de comando esteja ativado antes da instalação.
Download e atualização dos códigos-fonte h2o-3:
git clone https://github.com/h2oai/h2o-3
Passo 9. Execute a compilação de gradle de nível superior:
cd h2o-3./gradlew.bat build
Se encontrar erros execute novamente com
--stacktrace
para mais instruções sobre dependências ausentes.
4.4. Configuração no OS X
Se você não tiver Homebrew, recomendamos instalá-lo. Ele facilita o gerenciamento de pacotes para o OS X.
Passo 1. Instalar JDK
Instalar Java 1.7. Para ter certeza que o prompt de comando está detectando a versão correta do Java, execute:
javac -version
Passo 2. Instalar Node.js:
Usar Homebrew:
brew install node
Outros, instalar a partir do site NodeJS.
Passo 3. Instale R e os pacotes necessários:
Instale R e adicione o diretório bin ao seu PATH se ainda não estiver incluído.
Instale os seguintes pacotes R:
- RCurl
- jsonlite
- statmod
- devtools
- roxygen2
- teste que
Instale estes pacotes a partir de uma sessão R:
Nota que a libcurl é necessária para a instalação do pacote RCurl R.
Nota que estes pacotes não cobrem testes em execução, eles são apenas para construir H2O.
Passo 4. Instalar python e os pacotes necessários:
Instalar python:
brew install python
Instalar pip package manager:
sudo easy_install pip
Nextos instalar os pacotes necessários:
sudo pip install wheel requests 'colorama>=0.3.8' future tabulate
Passo 5. Git Clone h2o-3
OS X já deve ter o Git instalado. Para baixar e atualizar os códigos fonte h2o-3:
git clone https://github.com/h2oai/h2o-3
Passo 6. Execute o gradle build de nível superior:
cd h2o-3./gradlew build
Nota: em uma máquina normal pode levar muito tempo (cerca de uma hora) para executar todos os testes.
Se você encontrar erros execute novamente com
--stacktrace
para mais instruções sobre dependências ausentes.
4.5. Configuração no Ubuntu 14.04
Passo 1. Instalar Nó.js
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -sudo apt-get install -y nodejs
Passo 2. Instalar JDK:
Instalar Java 8. As instruções de instalação podem ser encontradas aqui Instalação JDK. Para ter certeza de que o prompt de comando está detectando a versão correta do Java, execute:
javac -version
Passo 3. Instale R e os pacotes necessários:
Instruções de instalação podem ser encontradas aqui R instalação. Clique em “Download R para Linux”. Clique em “ubuntu”. Siga as instruções dadas.
Para instalar os pacotes requeridos, siga as mesmas instruções que para o OS X acima.
Nota: Se o processo não conseguir instalar o RStudio Server no Linux, execute um dos seguintes:
sudo apt-get install libcurl4-openssl-dev
ou
sudo apt-get install libcurl4-gnutls-dev
Passo 4. Git Clone h2o-3
Se você ainda não tem um cliente Git:
sudo apt-get install git
Download e atualização dos códigos-fonte h2o-3:
git clone https://github.com/h2oai/h2o-3
Passo 5. Execute o build de nível superior:
cd h2o-3./gradlew build
Se você encontrar erros, execute novamente usando
--stacktrace
para mais instruções sobre dependências ausentes.
Certifique-se de que não está executando como root, pois
bower
rejeitará tal execução.
4.6. Configuração no Ubuntu 13.10
Passo 1. Instalar Nó.js
curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -sudo apt-get install -y nodejs
Passos 2-4. Siga os passos 2-4 para o Ubuntu 14.04 (acima)
4.7. Configuração no CentOS 7
5. Iniciando o H2O após a construção
Para iniciar o cluster H2O localmente, execute o seguinte na linha de comando:
java -jar build/h2o.jar
Uma lista de opções disponíveis de inicialização JVM e H2O (por exemplo -Xmx
, -nthreads
, -ip
), está disponível no Guia do Usuário H2O.
6. Construindo H2O no Hadoop
Arquivos zip de H2O-on-Hadoop pré-construídos estão disponíveis na página de download. Cada versão da distribuição Hadoop tem um arquivo zip separado em h2o-3.
Para construir H2O com suporte Hadoop você mesmo, instale primeiro a esfinge para python: pip install sphinx
Em seguida inicie a compilação digitando o seguinte a partir do diretório h2o-3 de nível superior:
(export BUILD_HADOOP=1; ./gradlew build -x test)./gradlew dist
Isto irá criar um diretório chamado ‘target’ e gerar arquivos zip lá. Note que BUILD_HADOOP
é o comportamento padrão quando o nome de usuário é jenkins
(veja settings.gradle
); caso contrário você terá que solicitá-lo, como mostrado acima.
Adicionando suporte para uma nova versão do Hadoop
No diretório h2o-hadoop
, cada versão do Hadoop tem um diretório de compilação para o driver e um diretório de montagem para o fatjar.
Você precisa fazê-lo:
- Adicionar um novo diretório de drivers e diretório de montagem (cada um com um arquivo
build.gradle
) emh2o-hadoop
- Adicionar estes novos projetos para
h2o-3/settings.gradle
- Adicionar a nova versão do Hadoop para
HADOOP_VERSIONS
emmake-dist.sh
- Adicionar a nova versão do Hadoop à lista em
h2o-dist/buildinfo.json
Fotografia segura do usuário
Hadoop suporta a personificação segura do usuário através de sua API Java. Um usuário autenticado com kerberos pode ser autorizado a proxy de qualquer nome de usuário que atenda aos critérios especificados no arquivo core-site.xml do NameNode. Esta personificação só se aplica a interações com a API do Hadoop ou com as APIs dos serviços relacionados ao Hadoop que a suportam (isto não é o mesmo que mudar para esse usuário na máquina de origem).
Configurar personificação segura do usuário (para h2o):
- Criar ou encontrar um id para usar como proxy que tenha acesso limitado a nenhum acesso ao HDFS ou serviços relacionados; o usuário proxy só precisa ser usado para personificar um usuário
- (Obrigatório se não estiver usando o h2odriver) Se você não estiver usando o driver (e.g. você escreveu seu próprio código contra a API do h2o usando Hadoop), faça as alterações de código necessárias para se fazer passar por usuários (veja org.apache.hadoop.security.UserGroupInformation)
- No Ambari/Cloudera Manager ou diretamente no arquivo core-site.xml do NameNode, adicione 2/3 propriedades para o usuário que desejamos usar como proxy (substitua pelo nome do usuário simples – não pelo nome principal totalmente qualificado).
-
hadoop.proxyuser.<proxyusername>.hosts
: os hosts que o usuário proxy tem permissão para executar ações impersonalizadas em nome de um usuário válido de -
hadoop.proxyuser.<proxyusername>.groups
: os grupos aos quais um usuário impersonalizado deve pertencer para que o usuário proxy possa trabalhar com ele -
hadoop.proxyuser.<proxyusername>.users
: os usuários que um usuário proxy tem permissão para impersonalizar - Exemplo:
<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>
-
- Restart core services such as HDFS & YARN for the changes to take effect
Acções HDFS imersonadas podem ser vistas no log de auditoria dos hdfs (‘auth:PROXY’ deve aparecer no campo ugi=
em entradas onde isto é aplicável). YARN similarmente deve mostrar ‘auth:PROXY’ em algum lugar no Resource Manager UI.
Para usar a personificação segura com o driver Hadoop do h2o:
Antes de tentar isto, veja Riscos com personificação, abaixo
Ao usar o h2odriver (e.g. ao executar com hadoop jar ...
), especifique -principal <proxy user kerberos principal>
, -keytab <proxy user keytab path>
, e -run_as_user <hadoop username to impersonate>
, além de quaisquer outros argumentos necessários. Se a configuração foi bem sucedida, o usuário proxy fará o login e se passará a ser o -run_as_user
, desde que esse usuário seja permitido pelos usuários ou pela propriedade de configuração de grupos (configurada acima); isto é imposto pelo HDFS & YARN, e não pelo código do h2o. O driver efetivamente define seu contexto de segurança como o usuário personificado, assim todas as ações Hadoop suportadas serão executadas como esse usuário (por exemplo, YARN, APIs HDFS suportam usuários personificados com segurança, mas outros não podem).
Precauções a tomar ao alavancar a personificação segura
- O caso de uso alvo para personificação segura são aplicações ou serviços que pré-autenticam um usuário e depois usam (neste caso) o h2odriver em nome desse usuário. O Steam do H2O é um exemplo perfeito: usuário auth em aplicação web sobre SSL, imite esse usuário ao criar o container h2o YARN.
- O usuário proxy deve ter permissões limitadas no cluster Hadoop; isso significa que não há permissões para acessar dados ou fazer chamadas API. Desta forma, se for comprometido, ele só terá o poder de imitar um subconjunto específico dos usuários no cluster e somente de máquinas específicas.
- Utilizar a propriedade
hadoop.proxyuser.<proxyusername>.hosts
sempre que possível ou prático. - Não forneça a senha ou a tecla do nome do proxy a nenhum usuário que você não queira imitar outro usuário (este geralmente é qualquer usuário). O objectivo da imitação é não permitir que os utilizadores se façam passar uns pelos outros. Veja o primeiro ponto para o caso típico de uso.
- Limite o login do usuário na máquina da qual o proxy está ocorrendo sempre que for prático.
- Certifique-se de que a guia de teclado usada para login do usuário proxy está devidamente protegida e que os usuários não podem fazer login como aquele id (via
su
, por exemplo) - Nunca defina hadoop.proxyuser..{users,groups} para ‘*’ ou ‘hdfs’, ‘yarn’, etc. Permitir que qualquer usuário personifique hdfs, yarn, ou qualquer outro usuário/grupo importante deve ser feito com extremo cuidado e fortemente analisado antes de ser permitido.
Riscos com personificação segura
- O id que executa a personificação pode ser comprometido como qualquer outro id de usuário.
- Configurar qualquer
hadoop.proxyuser.<proxyusername>.{hosts,groups,users}
propriedade para ‘*’ pode aumentar muito a exposição ao risco de segurança. - Quando os usuários não são autenticados antes de serem usados com o driver (por exemplo, como o Steam faz através de uma aplicação web/API segura), a auditabilidade do processo/sistema é difícil.
7. Água com gás
Sparkling Water combina duas tecnologias de código aberto: Apache Spark e a plataforma de aprendizagem da máquina H2O. Ele torna a biblioteca de algoritmos avançados do H2O, incluindo Aprendizagem Profunda, GLM, GBM, K-Means e Distributed Random Forest, acessível a partir de fluxos de trabalho Spark. Os usuários da Spark podem selecionar os melhores recursos de qualquer uma das plataformas para atender às suas necessidades de Aprendizagem de Máquina. Os usuários podem combinar a Spark RDD API e a Spark MLLib com os algoritmos de aprendizado de máquina da H2O, ou usar a H2O independentemente da Spark para o processo de construção do modelo e pós-processar os resultados na Spark.
Recursos de Água Parkling Water:
- Página de download para pacotes pré-construídos
- Repositório GitHub de Água Parkling Water
- README
- Developer documentation
8. Documentação
Página inicial da documentação
A documentação principal do H2O é o Guia do Usuário H2O. Visite http://docs.h2o.ai para a introdução de nível superior à documentação sobre projetos H2O.
Gerar documentação REST API
Para gerar a documentação REST API, use os seguintes comandos:
A localização padrão para a documentação gerada é build/docs/REST
.
Se a construção falhar, tente gradlew clean
, depois git clean -f
.
Documentação de construção de arestas sangrentas
Documentação para cada construção noturna de arestas sangrentas está disponível na página de construção noturna.
9. Citando H2O
Se você usa H2O como parte do seu fluxo de trabalho em uma publicação, por favor, cite seu(s) recurso(s) H2O usando a seguinte entrada BibTex:
Software H2O
Exemplos de citação do Software H2O:
Cadernos de H2O
Cadernos de algoritmo H2O estão disponíveis na Homepage da Documentação.
@Manual{h2o_booklet_name, title = {booklet_title}, author = {list_of_authors}, year = {year}, month = {month}, url = {link_url},}
Exemplos de citação de livretos formatados:
10. Roadmap
H2O 3.34.0.1 – Janeiro 2021
- Algoritmo de Isolamento Prolongado da Floresta
- Árvores de Elevação
- Extraindo &interações de características de classificação dos modelos GBM e XGBoost
- RuleFit MOJO, CoxPH MOJO
- Suporte para pontuação MOJO2
- Tolerância a falhas na pesquisa de Grid
- Operador de Kubernetes
- XGBoost externalizado em clusters de Kubernetes
11. Comunidade
H2O tem sido construída por um grande número de colaboradores ao longo dos anos, tanto dentro do H2O.ai (a empresa) como na maior comunidade de código aberto. Você pode começar a contribuir com o H2O respondendo perguntas de Stack Overflow ou preenchendo relatórios de bugs. Por favor junte-se a nós!
Equipa & Compromissos
SriSatish AmbatiCliff ClickTom KraljevicTomas NykodymMichal MalohlavaKevin NormoyleSpencer AielloAnqi FuNidhi MehtaArno CandelJosephine WangAmy WangMax SchloemerRay PeckPrithvi PrabhuBrandon HillJeff GamberaAriel RaoViraj ParmarKendall HarrisAnand AvatiJessica LanfordAlex TellezAllison WashburnAmy WangErik EckstrandNeeraja MadabhushiSebastian VidrioBen SabrinMatt DowleMark LandryErin LeDellAndrey SpiridonovOleg RogynskyyNick MartinNancy JordanNishant KaloniaNadine HussamiJeff CramerStacie SpreitzerVinod IyengarCharlene WindomParag SanghaviNavdeep GillLauren DiPernaAnmol BalMark ChanNick KarpovAvni WadhwaAshrith BarthurKaren HayrapetyanJo-fai ChowDmitry LarkoBranden MurrayJakub HavaWen PhanMagnus StensmoPasha StetsenkoAngela BartzMateusz DymczykMicah StubbsIvy WangTerone WardLeland WilkinsonWendy WongNikhil ShekharPavel PscheidlMichal KurkaVeronika MaurerovaJan SterbaJan JendrusakSebastien PoirierTomáš Frýda
Conselheiros
Conselho Consultivo Científico
Stephen BoydRob TibshiraniTrevor Hastie
Sistemas, Dados, FileSystems e Hadoop
Doug LeaChris PouliotDhruba Borthakur
Investidores
Jishnu Bhattacharjee, Nexus Venture PartnersAnand Babu PeriasamyAnand RajaramanAsh BhardwajRakesh MathurMichael MarksEgbert BiermanRajesh Ambati