O HBase é um banco de dados em tempo real que oferece alto desempenho de escrita no ecossistema Hadoop. O OSS-HDFS é um serviço de armazenamento disponibilizado pela Alibaba Cloud, compatível com a API do HDFS. O JindoSDK permite que o HBase utilize o OSS-HDFS como armazenamento subjacente, incluindo o suporte ao armazenamento de arquivos de write-ahead logging (WAL). Dessa forma, os recursos de computação e armazenamento ficam separados. O OSS-HDFS é mais flexível que o armazenamento local do HDFS e reduz os custos operacionais.
Pré-requisitos
Por exemplo, para usar o Elastic Compute Service (ECS) como ambiente de implantação, você precisará create an instance
Um ambiente Hadoop precisa estar criado. Para obter mais informações sobre como instale o Hadoop, consulte Hadoop使用JindoSDK访问OSS-HDFS服务.
O Apache HBase precisa estar implantado. Para obter mais informações, consulte Apache HBase.
O OSS-HDFS precisa estar ativado para um bucket, com as permissões de acesso devidamente concedidas. Para obter mais informações, consulte Enable OSS-HDFS and grant access permissions.
Procedimento
Conecte-se à instância ECS. Para obter mais informações, consulte Connect to an ECS instance.
-
configure o JindoSDK.
baixe a versão mais recente do pacote JAR do JindoSDK. Para baixe o JindoSDK, acesse GitHub.
-
Descompacte o pacote de instalação baixado.
O exemplo de código a seguir demonstra como descompactar um pacote chamado
jindosdk-x.x.x-linux.tar.gz. Caso utilize outra versão do JindoSDK, substitua o nome do pacote pelo nome do pacote JAR correspondente.tar -zxvf jindosdk-x.x.x-linux.tar.gz -C /usr/libNotax.x.x indica o número da versão do pacote JAR do JindoSDK.
-
configure o
JINDOSDK_HOME.export JINDOSDK_HOME=/usr/lib/jindosdk-x.x.x-linux export PATH=$JINDOSDK_HOME/bin:$PATH -
configure o
HADOOP_CLASSPATH.export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${JINDOSDK_HOME}/lib/*Importanteespecifique o diretório de instalação do pacote e configure as variáveis de ambiente em todos os nós necessários.
-
instale o pacote JAR do JindoSDK baixado no caminho especificado pelo classpath.
cp jindosdk-x.x.x-linux/lib/jindo-core-x.x.x.jar <HADOOP_HOME>/share/hadoop/hdfs/lib/ cp jindosdk-x.x.x-linux/lib/jindo-sdk-x.x.x.jar <HADOOP_HOME>/share/hadoop/hdfs/lib/
-
configure a classe de implementação do OSS-HDFS e especifique o par de AccessKey para acessar o bucket.
-
configure a classe de implementação do OSS-HDFS no arquivo core-site.xml do HBase.
<configuration> <property> <name>fs.AbstractFileSystem.oss.impl</name> <value>com.aliyun.jindodata.oss.JindoOSS</value> </property> <property> <name>fs.oss.impl</name> <value>com.aliyun.jindodata.oss.JindoOssFileSystem</value> </property> </configuration> -
No arquivo core-site.xml do HBase, especifique o AccessKey ID e o AccessKey Secret para acessar o bucket com o OSS-HDFS ativado.
<configuration> <property> <name>fs.oss.accessKeyId</name> <value>LTAI********</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>KZo1********</value> </property> </configuration>
-
-
configure o endpoint do OSS-HDFS.
Você precisa especifique o endpoint do OSS-HDFS para acessar buckets no Object Storage Service (OSS). Recomenda-se configurar o caminho de acesso ao OSS-HDFS no formato
oss://{yourBucketName}.{yourBucketEndpoint}/{path}(exemplo:oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt). Após configurar o caminho de acesso, o JindoSDK chama a operação correspondente do OSS-HDFS com base no endpoint especificado.Também é possível configurar o endpoint do OSS-HDFS por outros métodos. Os endpoints configurados por métodos diferentes têm prioridades distintas. Para obter mais informações, consulte Quick start: Connect a non-EMR cluster to the OSS-HDFS service.
-
especifique um caminho de armazenamento para o HBase.
Para definir um caminho no OSS como local de armazenamento dos arquivos de dados e WAL do HBase, altere o valor do parâmetro hbase.rootdir no arquivo de configuração hbase-site para o caminho do OSS. O caminho deve seguir o formato
oss://bucket.endpoint/hbase-root-dir.ImportantePara liberar clusters, desative as tabelas e certifique-se de que todas as operações de atualize nos arquivos WAL estejam sincronizadas com os HFiles.