O código-fonte do Hadoop2.7.3 é compilado em um pacote compactado compatível com Snappy e instalado para construir um cluster Hadoop
prólogo
Preparar recursos
Nota: Use a compilação de função raiz para reduzir problemas de permissões de pasta
apache-maven-3.6.3-bin.tar.gz
下载地址: https://maven.apache.org/download.cgi
hadoop-2.7.3-src.tar.gz
下载地址: https://archive.apache.org/dist/hadoop/common/
protobuf-2.5.0.tar.gz
下载地址: https://github.com/protocolbuffers/protobuf/releases?after=v3.0.0-alpha-3.1
snappy-1.1.3.tar.gz
下载地址: https://github.com/google/snappy/releases
Recursos relacionados ao Hadoop, estes também são
1. instalação feita
Faça upload do pacote de instalação para o Linux e descompacte-o com comandos
tar -zxvf apache-maven-3.6.3-bin.tar.gz // 解压到当前目录下
Para evitar dependências lentas de importação posteriormente
cd apache-maven-3.6.3/conf/
Modifique o arquivo settings.xml neste diretório
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<!--修改为阿里镜像-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
A localização da biblioteca padrão do maven é
/root/.m2/repository/
Se você deseja modificar a biblioteca maven, você pode adicioná-la no arquivo settings.xml
<localRepository>/usr/Software/Maven/repository</localRepository> //路径自己写
Adicionar variáveis de ambiente
vi /etc/profile
export MAVEN_HOME=/usr/Software/Maven/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
保存退出
source /etc/profile
Verifique se a variável de ambiente é válida
mvn -version
2. Prepare o ambiente de compilação
yum install svn
yum install autoconf automake libtool cmake
yum install ncurses-devel
yum install openssl-devel
yum install gcc*
Instale rápido,
carregue o pacote de instalação para o Linux e descompacte
tar -zxvf snappy-1.1.3.tar.gz
cd snappy-1.1.3/
分别执行
该命令会在 /usr/local/ 下生成bin、include、lib目录
./configure
make
make install
如果lib下生成libsnappy相关文件即为成功
Instale o protobuf,
carregue o pacote de instalação para o linux e descompacte
tar -zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0/
分别执行
./configure
make
make install
检测protobuf安装是否成功
执行命令
protoc --version
3. Compilar o código-fonte Hadoop2.7.3 que suporta Snappy
Da mesma forma, faça upload do hadoop-2.7.3-src.tar.gz
解压
tar -zxvf hadoop-2.7.3-src.tar.gz
cd hadoop-2.7.3-src/
mvn clean package -DskipTests -Pdist,native -Dtar -Dsnappy.lib=/usr/local/lib -Dbundle.snappy
该项目打包过程漫长(本人打包花了两个多小时),耐心等待即可,后面我会提供支持Snappy压缩的安装包
Após a execução bem-sucedida, hadoop-2.7.3-src / hadoop-dist / target / hadoop-2.7.3.tar.gz é o pacote de instalação rápido gerado.
Adicione uma pergunta
org.apache.maven.plugin.MojoExecutionException:
protoc version is 'libprotoc x.x.x', expected version is '2.5.0' -> [Help 1
Esse erro encontrado indica que a versão protobuf necessária para empacotar o Hadoop é 2.5.0, que é inconsistente com a versão atual
4. Instale um cluster Hadoop compatível com Snappy
Descompacte o hadoop-2.7.3.tar.gz gerado acima
tar -zxvf hadoop-2.7.3.tar.gz
Se o cluster Hadoop foi construído antes
cd hadoop-2.7.3/lib/native/
将该目录下的所有文件复制到之前已经搭建好的Hadoop目录下的 lib/native/ 下
Inicie o cluster Hadoop
Executando um pedido
hadoop checknative
Ver que mal-humorado corresponde a verdadeiro é sucesso
Se você não construiu um cluster Hadoop, veja aqui
Construção de cluster Hadoop HA
5. Pacote de instalação Hadoop com suporte para Snappy
Link: https://pan.baidu.com/s/101n4HOClGdJu6oNTb8Kpbg
Código de extração: ta8l