-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from Alluxio/master
merge origin codes
- Loading branch information
Showing
2 changed files
with
245 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,190 @@ | ||
--- | ||
layout: global | ||
title: Contribuindo com o Alluxio | ||
nickname: Contributor Guide | ||
group: Resources | ||
--- | ||
|
||
* Table of Contents | ||
{:toc} | ||
|
||
Obrigado pelo seu interesse no Alluxio! Nós apreciamos imensamente qualquer nova funcionalidade | ||
ou correções de `bugs`. | ||
|
||
### Tarefas de Iniciante do Alluxio | ||
|
||
Existem algumas pequenas situações que os novos contribuidores podem fazer para se familiarizarem | ||
com o Alluxio: | ||
|
||
1. [Executar o Alluxio Localmente](Running-Alluxio-Locally.html) | ||
|
||
2. [Executar o Alluxio em um Cluster](Running-Alluxio-on-a-Cluster.html) | ||
|
||
3. Ler as [Definições de Configuração](Configuration-Settings.html) e a [Interface da Linha de Comando](Command-Line-Interface.html) | ||
|
||
4. Ler um | ||
[Código Exemplo](https://github.com/alluxio/alluxio/blob/master/examples/src/main/java/alluxio/examples/BasicOperations.java) | ||
|
||
5. [Construir o Alluxio Master Branch](Building-Alluxio-Master-Branch.html) | ||
|
||
6. Efetuar o `fork` de um repositório, adicionar unidades de testes ou `javadoc` para um ou dois arquivos, e submeter uma solicitação de recebimento (`pull request`). Você também é bem-vindo para endereçar incidentes | ||
(`issues`) no [JIRA](https://alluxio.atlassian.net/browse/ALLUXIO). | ||
Aqui está a lista de | ||
[tarefas](https://alluxio.atlassian.net/issues/?jql=project%20%3D%20ALLUXIO%20AND%20labels%20%3D%20NewContributor%20AND%20status%20%3D%20OPEN) | ||
para Novos Contribuidores. Por favor, limite-se em até duas tarefas classificadas como `New Contributor`. | ||
Depois, tente tarefas como `Beginner/Intermediate` ou pergunte sobre qualquer assunto na | ||
[Lista de Email de Usuários](https://groups.google.com/forum/?fromgroups#!forum/alluxio-users). | ||
Para um tutorial, veja os guias do `GitHub` em | ||
[forking um repositório](https://help.github.com/articles/fork-a-repo) e | ||
[enviando um pull request](https://help.github.com/articles/using-pull-requests). | ||
|
||
### Submetendo o Código | ||
|
||
- Nós encorajamos você a dividir seu trabalho em pequenos `patches` de único propósito, se possível. | ||
É muito mais difícil em fundir uma grande modificação com várias funcionalidades deslocadas. | ||
|
||
- Nós rastreamos incidentes e funcionalidades em nosso [JIRA](https://alluxio.atlassian.net/). Se você | ||
não possui uma conta registrada, por favor, registre-se! | ||
|
||
- Abra um `ticket` no [JIRA](https://alluxio.atlassian.net/) detalhando a mudança proposta e para | ||
o que isso serve. | ||
|
||
- Envie o `patch` como um `GitHub pull request`. Para um tutorial, veja os guias `GitHub` em | ||
[forking um repositório](https://help.github.com/articles/fork-a-repo) e | ||
[enviando um pull request](https://help.github.com/articles/using-pull-requests). | ||
|
||
- No título de sua solicitação de recebimento, tenha certeza de referenciar o seu `ticket JIRA`. | ||
Isto irá conectar o seu `ticket` com as modificações propostas nos códigos. Por exemplo: | ||
|
||
~~~~~ | ||
[ALLUXIO-100] Implementando uma impressionante nova funcionalidade | ||
~~~~~ | ||
|
||
- No campo de descrição da `pull request`, por favor, inclua um `link` para o `ticket JIRA`. | ||
|
||
|
||
Atente que para pequenas modificações, não é necessário criar um `ticket JIRA` correspondente | ||
antes de enviar o `pull request`. Por exemplo: | ||
|
||
- Para as `pull request` que somente endereçam erros de digitação ou formatação no código fonte, | ||
você pode colocar o prefixo "[SMALLFIX]" nos títulos de seus `pull requests`, por exemplo: | ||
|
||
~~~~~ | ||
[SMALLFIX] Corrigindo a formatação no Foo.java | ||
~~~~~ | ||
|
||
- Para os `pull requests` que aprimoram a documentação no site do projeto do Alluxio (exemplo, | ||
modifique os arquivos `markdown` no diretório `docs`), você pode colocar o prefixo "[DOCFIX]" em | ||
suas `pull requests`. Por exemplo, para editar a página da `web` que é gerada a partir de | ||
`docs/Contributing-to-Alluxio.md`, o título pode ser: | ||
|
||
~~~~~ | ||
[DOCFIX] Aprimorando a documentação de como contribuir com o Alluxio | ||
~~~~~ | ||
|
||
#### Testando | ||
|
||
- Execute todas as unidades de teste com ``mvn test`` (será utilizado o `file system` local como o | ||
`under storage system` e o `HDFS 1.0.4` como o `under storage system` com o módulo `HDFS`). O | ||
comando ``mvn -Dhadoop.version=2.4.0 test`` irá utilizar o `HDFS 2.4.0` como o | ||
`under storage system` para os testes com módulo `HDFS`. | ||
|
||
- Para executar os testes contra um específico `under storage system`, execute o comando no | ||
`maven` a partir diretório do submódulo. Por exemplo, para rodar testes para o `HDFS`, você | ||
deve executar ``mvn test`` a partir de ``alluxio/underfs/hdfs``. | ||
|
||
- Para ambientes `GlusterFS`, a unidade de teste `GlusterFS` pode ser executado a partir de | ||
``alluxio/underfs/glusterfs`` com: | ||
`mvn -PglusterfsTest -Dhadoop.version=2.3.0 -Dalluxio.underfs.glusterfs.mounts=/vol -Dalluxio.underfs.glusterfs.volumes=testvol test` | ||
(utilize o GlusterFS como o `under filesystem`, onde o `/vol` é um `mount point GlusterFS` válido) | ||
|
||
_ Execute uma única unidade de teste: `mvn -Dtest=AlluxioFSTest#createFileTest -DfailIfNoTests=false test` | ||
|
||
- Para testar, rapidamente, o funcionamento de algumas `API` de uma forma interativa, você deverá | ||
elevar o `Scala shell`, como discutido neste [blog](http://scala4fun.tumblr.com/post/84791653967/interactivejavacoding). | ||
|
||
- Para testes com diferentes versões do `Hadoop`: ``mvn -Dhadoop.version=2.2.0 clean test`` | ||
|
||
- Execute testes com o `Hadoop FileSystem contract tests` (utilize o `Hadoop 2.6.0`): `mvn -PcontractTest clean test` | ||
|
||
#### Estilo de Codificação | ||
|
||
- Por favor, siga o estilo existente de codificação. Especialmente, nós utilizamos o | ||
[estilo Google Java](http://google-styleguide.googlecode.com/svn/trunk/javaguide.html), | ||
com as seguintes modificações ou desvios: | ||
- Tamanho máxima da linha de **100** caracteres. | ||
- Importação de terceiros são agrupados em conjunto para formar uma formatação `IDE` mais simples. | ||
- Nomes de variáveis de classes membros devem ter o prefixo `m`, por exemplo, | ||
`private WorkerClient mWorkerClient;` | ||
- Nomes de variáveis estáticas devem ter o prefixo `s`, por exemplo | ||
`public static String sUnderFSAddress;` | ||
- Você pode baixar nosso [formatador Eclipse](../resources/alluxio-code-formatter-eclipse.xml) | ||
- Para o Eclipse organizar as suas importações corretamente, configure o `"Organize Imports"` | ||
para parecer com [isto](../resources/eclipse_imports.png) | ||
- Se você utiliza o `IntelliJ IDEA`: | ||
- Você pode tanto utilizar nosso formatador com a ajuda do | ||
[Formatador de Código do Eclipse](https://github.com/krasa/EclipseCodeFormatter#instructions) | ||
ou utilizar o [Plugin de Formatador de Código do Eclipse](http://plugins.jetbrains.com/plugin/6546) | ||
no `IntelliJ IDEA`. | ||
- Para formatar automaticamente a importação, configure em | ||
Preferêncas->Esitlo de Código->Importação->Layout de Importação para | ||
[esta ordem](../resources/intellij_imports.png) | ||
- Para reordenar, automaticamente, os métodos alfabeticamente, tente o | ||
[Plugin Reordenar](http://plugins.jetbrains.com/plugin/173), abra Preferências, | ||
pesquise por reordenar, remove comentários desnecessários, depois clique com o botão direito, | ||
escolha "Reordenar", então os códigos serão formatados conforme sua escolha | ||
- O Alluxio está utilizando o `SLF4J` para `logs` com o típico padrão de uso: | ||
|
||
{% include Contributing-to-Alluxio/slf4j.md %} | ||
|
||
- Para verificar que o código está em conformidade com o padrão, execute um | ||
[checkstyle](http://checkstyle.sourceforge.net) antes de enviar um `pull request` para verificar | ||
que não há novos avisos: | ||
|
||
{% include Contributing-to-Alluxio/checkstyle.md %} | ||
|
||
#### FindBugs | ||
|
||
Antes de enviar seu `pull-request`, execute o | ||
[FindBugs](http://findbugs.sourceforge.net/) sobre o código mais recente para verificar que não | ||
há nenhum novo aviso. | ||
|
||
{% include Contributing-to-Alluxio/findbugs.md %} | ||
|
||
### IDE | ||
|
||
Você pode gerar um arquivo de configuração do `Eclipse` através da execução: | ||
|
||
{% include Contributing-to-Alluxio/eclipse-configuration.md %} | ||
|
||
Então, importe o diretório para dentro do `Eclipse`. | ||
|
||
Você também pode ter que adicionar a variável `M2_REPO` à `classpath` através da execução: | ||
|
||
{% include Contributing-to-Alluxio/M2_REPO.md %} | ||
|
||
Se você estiver usando o `IntelliJ IDEA`, você deve ter que alterar o perfil do `Maven` para | ||
'desenvolvedor' a fim de evitar erros de importação. Você pode fazer isso indo para: | ||
|
||
Visualizar > Ferramentas de Janela > Projetos Maven | ||
|
||
### Apresentações | ||
|
||
- AMPCamp 6 (Novembro, 2015) | ||
[SlideShare](http://www.slideshare.net/TachyonNexus/tachyon-presentation-at-ampcamp-6-november-2015) | ||
- Strata and Hadoop World 2015 (Setembro, 2015) | ||
[SlideShare](http://www.slideshare.net/TachyonNexus/tachyon-an-open-source-memorycentric-distributed-storage-system) | ||
- Strata and Hadoop World 2014 (Outubro, 2014) | ||
[pdf](http://www.cs.berkeley.edu/~haoyuan/talks/Tachyon_2014-10-16-Strata.pdf) | ||
[pptx](http://www.cs.berkeley.edu/~haoyuan/talks/Tachyon_2014-10-16-Strata.pptx) | ||
- Spark Summit 2014 (Julho, 2014) [pdf](http://goo.gl/DKrE4M) | ||
- Strata and Hadoop World 2013 (Outubro, 2013) [pdf](http://goo.gl/AHgz0E) | ||
|
||
### Leituras | ||
|
||
- [Tachyon: Reliable, Memory Speed Storage for Cluster Computing Frameworks](http://www.cs.berkeley.edu/~haoyuan/papers/2014_socc_tachyon.pdf) | ||
Haoyuan Li, Ali Ghodsi, Matei Zaharia, Scott Shenker, Ion Stoica, *SOCC 2014*. | ||
- [Reliable, Memory Speed Storage for Cluster Computing Frameworks](http://www.cs.berkeley.edu/~haoyuan/papers/2014_EECS_tachyon.pdf) | ||
Haoyuan Li, Ali Ghodsi, Matei Zaharia, Scott Shenker, Ion Stoica, *UC Berkeley EECS 2014*. | ||
- [Tachyon: Memory Throughput I/O for Cluster Computing Frameworks](http://www.cs.berkeley.edu/~haoyuan/papers/2013_ladis_tachyon.pdf) | ||
Haoyuan Li, Ali Ghodsi, Matei Zaharia, Eric Baldeschwieler, Scott Shenker, Ion Stoica, *LADIS 2013*. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
--- | ||
layout: global | ||
title: Alluxio Standalone em um Cluster | ||
nickname: Alluxio Standalone em um Cluster | ||
group: User Guide | ||
priority: 2 | ||
--- | ||
|
||
## Standalone em um Cluster | ||
|
||
Primeiro, baixe o arquivo `tar` do Alluxio e o extraia. | ||
|
||
{% include Running-Alluxio-on-a-Cluster/download-extract-Alluxio-tar.md %} | ||
|
||
No diretório `alluxio/conf`, copie `alluxio-env.sh.template` para `alluxio-env.sh`. Tenha certeza | ||
que `JAVA_HOME` aponta para uma instalação válida do `Java 7`. Atualize o `ALLUXIO_MASTER_ADDRESS` | ||
para o `hostname` da máquina que você deseja ser o Alluxio `Master`. Adicione o endereço de `IP` de | ||
todos os `Workers Nodes` no arquivo `alluxio/conf/workers`. Finalmente, sincronize todas as | ||
informações para os servidores `workers`. Você pode executar | ||
|
||
{% include Running-Alluxio-on-a-Cluster/sync-info.md %} | ||
|
||
para sincronizar os arquivos e diretórios de todos os servidores especificados no arquivo | ||
`alluxio/conf/workers`. | ||
|
||
Agora, você iniciar o Alluxio: | ||
|
||
{% include Running-Alluxio-on-a-Cluster/start-Alluxio.md %} | ||
|
||
Para verificar se o Alluxio está em execução, visite o endereço `http://<alluxio_master_hostname>:19999`, | ||
também cheque o diretório de log `alluxio/logs` ou execute um programa de teste: | ||
|
||
{% include Running-Alluxio-on-a-Cluster/run-tests.md %} | ||
|
||
**Nota**: Se você estiver utilizando o `EC2`, tenha certeza que as definições de segurança de grupo | ||
no servidor `master` permite conexões de entrada na porta `web UI` do Alluxio. | ||
|
||
## Utilizando o argumento bootstrap-conf para o script bin/alluxio | ||
|
||
O `script` do Alluxio também contém uma lógica para criar uma configuração básica para um `cluster`. | ||
Se você executar: | ||
|
||
{% include Running-Alluxio-on-a-Cluster/bootstrap-conf.md %} | ||
|
||
e não possuir nenhum arquivo `alluxio/conf/alluxio-env.sh`, então o `script` irá criar um arquivo com | ||
as definições apropriadas para um `cluster` com um nó `master` executando no `<alluxio_master_hostname>`. | ||
|
||
O `script` precisa ser executado em todos os nós que você deseja configurar. | ||
|
||
O `script` irá configurar seus `workers` para usar 2/3 da memória total de cada `worker`. Esta quantidade | ||
pode ser modificar através da alteração do arquivo `alluxio/conf/alluxio-env.sh` no `worker`. | ||
|
||
## EC2 Cluster com Spark | ||
|
||
Se você usa `Spark` em um `EC2 Cluster`, o Alluxio será instalado e configurado por padrão. |