Mais de dez discursos da ByteDance reunidos no CommunityOverCode Asia 2023 para compartilhar práticas de código aberto

18 a 20 de agosto de 2023, Park Plaza Hotel, Pequim

A primeira cúpula off-line da China da série global oficial de conferências da Apache Software Foundation, CommunityOverCode Asia (anteriormente ApacheCon Asia), será realizada no Park Plaza Hotel em Pequim, de 18 a 20 de agosto de 2023. A conferência incluirá 17 instruções de fórum e centenas de questões de ponta.

A experiência de código aberto da ByteDance passou por diferentes estágios de "uso de código aberto, participação em código aberto e tomada de iniciativa de código aberto. Sua atitude em relação ao código aberto sempre foi aberta e encorajadora". Neste encontro CommunityOverCode Asia, 15 alunos da Byte compartilharão a experiência prática de projetos de código aberto Apache nos negócios da ByteDance em torno de 10 tópicos em 6 tópicos, e o membro do Apache Calcite PMC compartilhará no discurso principal. Estou ansioso para compartilhar minhas experiências e ganhos de participar de contribuições de código aberto com participantes locais.

Discurso principal: É difícil contribuir para o código aberto?

Talvez muitos estudantes tenham pensado em participar de algumas contribuições de código aberto para melhorar suas capacidades técnicas e influência. Mas normalmente há alguma distância entre os ideais e a realidade: porque estou muito ocupado no trabalho e não tenho tempo para participar, o limite para projetos de código aberto é muito alto e não sei como começar, tentei algumas contribuições; , mas a resposta da comunidade não é alta e não persisti. Nesta palestra, Li Benchao combinará sua própria experiência para compartilhar algumas histórias curtas e pensamentos sobre sua contribuição para a comunidade de código aberto, como superar essas dificuldades, finalmente alcançar avanços na comunidade de código aberto e encontrar um equilíbrio entre trabalho e trabalho aberto. contribuição fonte.

Li Benchao

Diretor Técnico SQL da ByteDance Flink

Membro do Apache Calcite PMC, Apache Flink Committer, formado pela Universidade de Pequim, atualmente trabalha na equipe de streaming de computação da ByteDance e é o líder técnico do Flink SQL.

Discurso importante

Tópico: Data Lakes e Data Warehouses

A prática de construir um data lake em tempo real baseado no Flink

Os data lakes em tempo real são um componente central da arquitetura de dados moderna, permitindo que as empresas analisem e consultem grandes quantidades de dados em tempo real. Neste compartilhamento, apresentaremos primeiro os atuais pontos problemáticos dos data lakes em tempo real, como a alta pontualidade, diversidade, consistência e precisão dos dados. Em seguida, apresentaremos como construímos um data lake em tempo real baseado em Flink e Iceberg, principalmente por meio das duas partes a seguir: como colocar dados no lago em tempo real e como usar o Flink para realizar consultas ad hoc OLAP. Por fim, vamos apresentar alguns benefícios práticos do ByteDance no data lake em tempo real.

Wang Zheng

Engenheiro de P&D de computação nativa em nuvem do Volcano Engine

Ingressou na ByteDance em 2021 e atuou na equipe de infraestrutura de plataforma aberta, principal responsável pela pesquisa e desenvolvimento do Serverless Flink e outras direções.

Min Zhong Yuan

Engenheiro de P&D de computação nativa em nuvem do Volcano Engine

Ingressou na ByteDance em 2021 e atua na equipe de infraestrutura de plataforma aberta, sendo responsável principalmente pela pesquisa e desenvolvimento de Serverless Flink, Flink OLAP e outras direções.

Prática de redução de custos e melhoria de eficiência da ByteDance com base no formato Parquet

O data warehouse offline ByteDance usa o formato Parquet para armazenamento de dados por padrão. No entanto, durante o uso comercial, encontramos problemas relacionados, como muitos arquivos pequenos e altos custos de armazenamento de dados. Para resolver o problema de muitos arquivos pequenos, a solução técnica existente geralmente é ler vários arquivos pequenos do Parquet por meio do Spark e, em seguida, gerar novamente os dados e mesclá-los em um ou mais arquivos grandes. Para o problema de custos excessivos de armazenamento, atualmente os data warehouses off-line só têm soluções TTL em nível de partição no nível de linha se você precisar excluir dados de campo detalhados (TTL em nível de coluna) que não são mais usados ​​na partição e são responsáveis ​​por um grande volume. proporção, você precisa ler os dados através do Spark e sobrescrever os campos que precisam ser excluídos, definindo-os como NULL. Quer se trate de fusão de arquivos pequenos ou TTL em nível de coluna, há um grande número de operações de substituição em arquivos de dados Parquet. Como o formato Parquet possui regras de codificação especiais, uma série de operações como (des)serialização especial, (des)compactação e (des)codificação são necessárias para ler e gravar dados no Parquet. Nesse processo, operações como codificação, decodificação e descompactação são cálculos que fazem uso intensivo da CPU e consomem uma grande quantidade de recursos computacionais. A fim de melhorar a eficiência de substituição de arquivos no formato Parquet, estudamos profundamente a definição do formato de arquivo Parquet e usamos o método de cópia binária para otimizar a operação de substituição de dados, ignorando operações redundantes, como codificação e decodificação na substituição comum. a eficiência de substituição de arquivos é bastante melhorada e o desempenho é 10 vezes superior ao dos métodos de substituição comuns. Para melhorar a facilidade de uso, também fornecemos uma nova sintaxe SQL para ajudar os usuários a concluir operações de maneira conveniente, como mesclagem de pequenos arquivos e TTL em nível de coluna.

Xu Qing

Engenheiro Sênior de P&D da Volcano Engine LAS

Ele está envolvido na pesquisa e desenvolvimento de componentes relacionados a big data, como Hive Metastore, SparkSQL, Hudi e assim por diante, há muitos anos.

Wang Ence

Engenheiro Sênior de P&D da Volcano Engine LAS

Responsável pelo design e desenvolvimento do mecanismo de computação distribuída de big data da ByteDance, ajudando a empresa a extrair informações de alto valor de dados massivos.

Tópico: Inteligência Artificial/Aprendizado de Máquina

Prática de treinamento integrado de fluxo de lote de aprendizagem profunda ByteDance

Com o desenvolvimento dos negócios da empresa, a complexidade dos algoritmos continua a aumentar, e cada vez mais modelos de algoritmos estão explorando o treinamento em tempo real com base em atualizações offline para melhorar os efeitos do modelo. A fim de obter um arranjo flexível e comutação livre de treinamento complexo off-line e em tempo real, e agendar recursos de computação off-line em uma faixa mais ampla, o treinamento do modelo de aprendizado de máquina tende gradualmente a integrar lote e fluxo. Desta vez, compartilharemos o aprendizado de máquina ByteDance. agendamento de treinamento Alguns conteúdos incluem a evolução arquitetônica da estrutura, prática de integração de fluxo em lote, treinamento elástico heterogêneo, etc. Ele também se concentra na experiência prática de orquestração híbrida de fontes de dados múltiplos em vários estágios, embaralhamento global de amostras de streaming, nativação de link completo e insights de dados de treinamento no cenário MFTC (treinamento colaborativo integrado em fluxo em lote).

Mao Hong Yue

Engenheiro de infraestrutura da ByteDance

Ingressou na ByteDance em 2022 e está envolvido em pesquisa e desenvolvimento de treinamento de aprendizado de máquina. Ele é o principal responsável pelo mecanismo de treinamento de modelo de IA integrado em fluxo de lote nativo da nuvem em grande escala, que oferece suporte a empresas, incluindo recomendação de vídeo Douyin, recomendação Toutiao, publicidade pangolim,. Publicidade gráfica Qianchuan e outros negócios.

ByteDance Spark suporta prática de inferência de modelo Wanka

Com o desenvolvimento dos negócios da empresa, a complexidade dos algoritmos continua a aumentar, e cada vez mais modelos de algoritmos estão explorando o treinamento em tempo real com base em atualizações offline para melhorar os efeitos do modelo. A fim de obter um arranjo flexível e comutação livre de treinamento complexo off-line e em tempo real, e agendar recursos de computação off-line em uma faixa mais ampla, o treinamento do modelo de aprendizado de máquina tende gradualmente a integrar lote e fluxo. Desta vez, compartilharemos o aprendizado de máquina ByteDance. agendamento de treinamento Alguns conteúdos incluem a evolução arquitetônica da estrutura, prática de integração de fluxo em lote, treinamento elástico heterogêneo, etc. Ele também se concentra na experiência prática de orquestração híbrida de fontes de dados múltiplos em vários estágios, embaralhamento global de amostras de streaming, nativação de link completo e insights de dados de treinamento no cenário MFTC (treinamento colaborativo integrado em fluxo em lote).

Liu Chang

Engenheiro de infraestrutura da ByteDance

Ingressou na ByteDance em 2020 e trabalha na equipe de infraestrutura de computação em lote. Ele é o principal responsável pelo desenvolvimento do Spark nativo da nuvem e do Spark On Kubernetes.

Zhang Yongqiang

Engenheiro de sistema de aprendizado de máquina ByteDance

Ingressou na ByteDance em 2022, trabalhou na equipe do sistema de aprendizado de máquina AML e participou da construção de uma plataforma de aprendizado de máquina em grande escala.

Tópico Especial: Armazenamento e Computação de Dados

Bytedance MapReduce -> Prática de migração suave do Spark

Com o desenvolvimento dos negócios, a ByteDance executa cerca de 1,2 milhão de tarefas Spark online todos os dias. Em contraste, ainda existem cerca de 20.000 a 30.000 tarefas MapReduce online todos os dias. Como uma estrutura de processamento em lote com uma longa história, a operação e manutenção do mecanismo MapReduce enfrenta uma série de problemas do ponto de vista da pesquisa e desenvolvimento de big data. Por exemplo, o ROI da iteração de atualização da estrutura é baixo, a adaptabilidade à nova estrutura de agendamento computacional é baixa e assim por diante. Do ponto de vista do usuário, também há uma série de problemas ao usar o mecanismo MapReduce. Por exemplo, o desempenho da computação é ruim e são necessárias ferramentas adicionais de Pipeline para gerenciar trabalhos em execução em série. Você deseja migrar o Spark, mas há um grande número de trabalhos existentes e um grande número de trabalhos que usam vários scripts que o próprio Spark não suporta. . Neste contexto, a equipe do Bytedance Batch projetou e implementou uma solução para migrar suavemente as tarefas do MapReduce para o Spark. Esta solução permite aos usuários concluir a migração tranquila do MapReduce para o Spark adicionando apenas um pequeno número de parâmetros ou variáveis ​​de ambiente aos trabalhos existentes. reduzindo significativamente os custos de migração e alcançando bons benefícios de custo.

Wei Zhongjia

Engenheiro de infraestrutura da ByteDance

Ele ingressou na ByteDance em 2018 e atualmente é engenheiro de desenvolvimento de big data da infraestrutura ByteDance. Ele se concentra no campo de computação distribuída de big data e é o principal responsável pelo desenvolvimento do kernel Spark e pelo desenvolvimento do Shuffle Service desenvolvido pela ByteDance.

Prática de cluster HDFS de centenas de bilhões de arquivos da ByteDance

Com o desenvolvimento profundo da tecnologia de big data, a escala de dados e a complexidade de uso estão aumentando cada vez mais, e o Apache HDFS está enfrentando novos desafios. Na ByteDance, o HDFS é o armazenamento para os negócios tradicionais de data warehouse do Hadoop, a base para os mecanismos de computação da arquitetura de separação de armazenamento e computação e a base de armazenamento para o treinamento do modelo de aprendizado de máquina. No ByteDance, o HDFS não apenas cria recursos de agendamento de armazenamento para atender ao agendamento de recursos de computação em larga escala em várias regiões e melhora a estabilidade das tarefas de computação, mas também fornece identificação de dados e agendamento quente e frio que integra cache do lado do usuário, três cópias convencionais, e capacidade de armazenamento a frio. Este compartilhamento apresenta como a ByteDance entende internamente os novos requisitos para o armazenamento tradicional de big data em cenários emergentes e apoia a estabilidade do sistema em diferentes cenários por meio da evolução tecnológica e da construção de sistemas de operação e manutenção.

Xiongmu

Engenheiro de P&D de armazenamento de big data do Volcano Engine

Principalmente responsável pela evolução dos serviços de metadados HDFS de armazenamento de big data e suporte ecológico de computação de camada superior.

Tópico: OLAP e análise de dados

Melhores práticas para gerenciamento de indicadores multimotores baseados em Apache Calcite

Introdução ao tópico

Existem vários indicadores na análise de dados. Ao manter indicadores massivos, muitas vezes existem os seguintes pontos problemáticos:

  • Segmentos repetidos não podem ser reutilizados
  • Diferentes mecanismos exigem a gravação de SQL diferentes
  • As alterações de calibre são difíceis de sincronizar com todos os processos posteriores

Para resolver estes problemas, a ByteDance tentou usar as capacidades técnicas existentes para projetar soluções:

  • Armazene os indicadores nas tabelas Hive tanto quanto possível: isso aumentará muito os custos de armazenamento e de retrocesso, o que não é viável
  • Encapsular indicadores no View: Isso não apenas gerará informações adicionais de tabela no Hive, dobrando o número de tabelas, mas também será hostil ao suporte ao particionamento. A experiência de uso de consultas é ruim, por isso é difícil promovê-la

Como a tecnologia atual não é suficiente para resolver os problemas acima, a ByteDance projetou e implementou dois conjuntos de novos recursos de sintaxe baseados no Apache Calcite:

  • Colunas virtuais: visualizações em nível de coluna, reutilização de permissões de coluna de tabela, promoção simples
  • Função SQL Define: Use SQL para definir funções diretamente para facilitar a reutilização de fragmentos SQL

A combinação destas duas capacidades pode efetivamente reduzir o custo da gestão de indicadores. Por exemplo:

  • O indicador só precisa ser modificado uma vez e não há necessidade de modificá-lo de forma síncrona a jusante.
  • Campos em tipos de coleção como MAP e JSON podem ser definidos como colunas virtuais, tornando a lógica mais clara e conveniente de usar.

Casos típicos específicos e princípios de implementação serão introduzidos no discurso PPT.

Xie Jiajun

Engenheiro Sênior de P&D da Volcano Engine LAS

Participou de palestra na Apache Asia Con 2022. Adoro código aberto e participo frequentemente de trabalhos comunitários. Agora sou um committer ativo do Apache Calcite e um contribuidor do Linkedin Coral.

Prática de gerenciamento refinado de permissões mistas em filas de big data

fundo:

Nos últimos anos, as questões de segurança de dados têm atraído gradualmente a atenção de governos e empresas em todo o mundo. Com a promulgação e implementação de leis nacionais de segurança de dados e leis de protecção de informações pessoais, foram apresentados requisitos claros para o princípio da suficiência mínima de dados. Portanto, como controlar as permissões de maneira mais detalhada tornou-se um problema que toda empresa deve resolver.

Problemas atuais:

A indústria geralmente extrai pontos de permissão em SQL com base em regras e gerencia esses pontos de permissão horizontalmente de acordo com a dimensão da linha, ou verticalmente de acordo com a dimensão da coluna.

Essa granularidade de controle de permissão unidimensional é muito grosseira e não suporta o relacionamento combinado entre múltiplas permissões. Em um cenário intermediário de grandes tabelas como o ByteDance, onde diversas linhas de negócios são armazenadas de maneira unificada, é difícil atender à demanda por controle de permissão de dados refinado.

solução:

Com base nos problemas acima, a ByteDance projetou uma solução de gerenciamento refinada para permissões mistas em linhas e colunas com base no Apache Calcite e em seu serviço de permissão autodesenvolvido Gemini.

  • Extração precisa de pontos de autoridade com base na linhagem de calcita

    • Com base na capacidade de relacionamento sanguíneo, ele localiza com precisão as informações do ponto de permissão (tabela, linha, coluna, etc.) realmente usadas em SQL e executa extração de permissão refinada.
  • Gerenciamento e controle de permissões multidimensionais com permissões mistas em linhas e colunas

    • Além das permissões de biblioteca tradicionais, permissões de tabela e permissões de coluna, uma nova permissão de restrição de linha é adicionada às permissões de tabela/coluna como um recurso especial.
    • Cada permissão de tabela/permissão de coluna pode ser agrupada com vários recursos de permissão de linha ao mesmo tempo, e as restrições de linha de diferentes permissões de tabela/permissão de coluna são independentes umas das outras.
    • Através do agrupamento de pontos de permissão horizontais/verticais, os recursos de consulta são posicionados nas 'células de recursos' com linhas e linhas sobrepostas para obter permissões de nível de recurso mais refinadas.

Vantagens da solução:

  • Na nova solução, por meio de extração precisa de pontos de permissão e suporte multidimensional de permissão mista de linhas e colunas, o gerenciamento e o controle de recursos são refinados de uma linha horizontal ou coluna vertical para 'células de recursos' com linhas e linhas superiores sobrepostas. .
  • O escopo do controle de permissões é ainda mais refinado e as permissões necessárias são concedidas com a menor granularidade, garantindo ao mesmo tempo o uso normal dos usuários.
  • Casos típicos específicos e princípios de implementação serão introduzidos no discurso PPT.

Zhu Jiang

Engenheiro Sênior de P&D da Volcano Engine LAS

Tópico: Nativo da nuvem

Prática ByteDance Cloud Native YARN

O negócio offline interno da Bytedance tem uma escala enorme. Existem centenas de milhares de nós e milhões de tarefas em execução online todos os dias, e a quantidade de recursos usados ​​​​todos os dias chega a dezenas de milhões. respectivamente responsável pelos negócios offline e gerenciamento de agendamento de negócios online. No entanto, com o desenvolvimento da escala de negócios, este sistema expôs algumas deficiências: pertence a dois sistemas off-line e alguns cenários de atividades importantes exigem conversão de recursos off-line por meio de operação e manutenção. A carga de operação e manutenção é pesada e o ciclo de conversão é longo. ;pool de recursos A falta de uniformidade torna baixa a taxa geral de utilização de recursos, e o gerenciamento e controle de cotas, operação e manutenção de máquinas, etc., não podem ser reutilizados. capacidades, capacidades convenientes de operação e manutenção, etc. Os sistemas off-line precisam ser unificados urgentemente, e os mecanismos tradicionais de big data não são projetados para serem nativos da nuvem e são difíceis de implantar diretamente na nuvem nativa. Cada mecanismo de computação e cada tarefa exigem uma transformação profunda para suportar vários recursos originalmente no YARN e o custo. de transformação é enorme. Com base neste histórico, a ByteDance propõe uma solução YARN nativa da nuvem - Serverless YARN, que é 100% compatível com o protocolo Hadoop YARN. Os trabalhos de big data no ecossistema Hadoop podem ser migrados de forma transparente para sistemas nativos da nuvem sem modificação e recursos online. e Os recursos off-line podem ser convertidos e reutilizados de maneira eficiente e flexível de maneira compartilhada, e a utilização geral dos recursos do cluster é significativamente melhorada.

Shao Kai Yang

Engenheiro de P&D de computação nativa em nuvem do Volcano Engine

Responsável por trabalhos relacionados ao agendamento offline na infraestrutura ByteDance e tem muitos anos de experiência em arquitetura de engenharia.

Tópico: Sistema de mensagens

Kafka sem Zookeeper

Atualmente, Kafka depende do ZooKeeper para armazenar seus metadados, como informações do corretor, tópicos, partições, etc. KRaft é uma nova geração de Kafka sem Zookeeper. Esta palestra incluirá:

  1. Por que Kafka precisa desenvolver novos recursos do KRaft
  2. Arquitetura do antigo (com Zookeeper) Kafka e do novo (sem Zookeeper) Kafka
  3. Benefícios de adotar Kafka
  4. como funciona internamente
  5. Indicadores de monitoramento
  6. Ferramentas para ajudar a resolver problemas de Kafka
  7. Uma demonstração para mostrar o que alcançamos até agora
  8. Roteiro da comunidade Kafka para KRaft

Após esta palestra, o público compreenderá melhor o que é o KRaft, como funciona, como difere do Kafka baseado no Zookeeper e, o mais importante, como monitorá-lo e solucioná-lo.

Lucas Chen

RedHat, engenheiro de software sênior

Engenheiro de software sênior na RedHat, dedicado a executar produtos Apache Kafka na nuvem. Apache Kafka Committer e membro do PMC, contribui para o Apache Kafka há mais de 3 anos.

Deng Ziming

Engenheiro de P&D de Big Data da ByteDance, Apache Kafka Committer

A interação do estande está esperando você jogar

A ByteDance Open Source montará um estande interativo no local da conferência, onde os projetos de código aberto da ByteDance serão exibidos e interagirão com os participantes. Não há apenas um ambiente comunitário rico no local, mas também vários links interativos. Os amigos participantes podem fazer check-in ~.

Siga a conta pública de código aberto da ByteDance , haverá surpresas no local!

Veja a programação completa: https://apachecon.com/acasia2023/en/tracks.html

Companheiro de frango, deepin-IDE de "código aberto" e finalmente conseguiu a inicialização! Bom cara, a Tencent realmente transformou o Switch em uma "máquina de aprendizagem pensante" Revisão de falhas e explicação da situação da Tencent Cloud em 8 de abril Reconstrução de inicialização de desktop remoto RustDesk Cliente Web Banco de dados de terminal de código aberto do WeChat baseado em SQLite WCDB inaugurou uma grande atualização Lista de abril TIOBE: PHP caiu para o nível mais baixo, Fabrice Bellard, o pai do FFmpeg, lançou a ferramenta de compressão de áudio TSAC , o Google lançou um grande modelo de código, CodeGemma , isso vai te matar? É tão bom que é de código aberto - ferramenta de edição de imagens e pôsteres de código aberto
{{o.nome}}
{{m.nome}}

Acho que você gosta

Origin my.oschina.net/u/6210722/blog/10095491
Recomendado
Clasificación