Jianpuマスター|行き方ビッグデータ学習インタビュー知識マップ

私は質問を受ける公共、舞台裏の返信[JAVAPDFページ200]の数が心配です!
神の大規模データパスへの懸念の50,000人、それについて知って来ないのですか?
神への道50000ビッグデータの懸念は、実際にそれを見ませんか?
神の大規模データパスへの懸念の50,000人は、実際にそれについて学ぶために決定されていないのですか?

ご関心ようこそ「神の道にビッグデータを。」

私はこの記事を読んで、早期の技術自体からの技術的な人々を理解し、早期に鄧小総統したいと思います。
すべての技術結局ちょうど綿毛。

ファイル

アウトライン

このシリーズのテーマは、いつ、大規模な研究のすべての人の基本的なラインデータを提供し、技術スタックデータの開発だけでなく、当社の開発就職の面接を改善するために設計されたビッグデータ開発インタビューガイドで、どのような大規模な研究データの焦点である、これらの企業インタビュアーは、どのようなスキルを願っています。
この記事は、特集記事を追跡していきます、特定のポイントに拡張の詳細な知識を実行していない、私は読者がいっぱい漏洩する研究やレビューとして概説します願っています。

言語の基礎

Javaの基本
全体ビッグデータ開発技術は、ビューのリアルタイムのポイントから私たちを積み重ね、それは二つの部分の主にオフラインコンピューティングおよびリアルタイム計算、ビッグデータの開発や生態系のほとんどは、JavaのJavaと互換性のあるフレーム全体を構成されていAPI呼び出しは、その後、JVM上の最初の言語Javaのよう私たちは過去ホムの周りに、Java言語は、私たちは、ソースコードとチューニングの基礎を読み取る基礎となるものです。
Javaの団体は、主に以下のセクションが含まれています。

  • 言語の基礎
  • ロック
  • マルチスレッド
  • そして、同時コンテナは、一般的に契約を使用(JUC)

言語の基礎

Javaオブジェクト指向の
Java言語の3つの機能:カプセル化、継承、ポリモーフィズム
のJava言語のデータ型
Javaの自動型変換を、キャスト
、仮想マシンの定数プールの不変の文字列、String.intern()の基本原則
のJava言語のキーワード:instanceofは、最終的な、静的な基本原理、一過性、揮発性、同期
のコレクションを実装して、一般的にJavaクラスで使用される原則:ArrayListの/ LinkedListは/ベクタ、synchronizedList /ベクタ、HashMapの/ハッシュテーブル/ ConcurrentHashMapの互いの違いや基礎となります原則として
動的プロキシ実装

ロック

CAS、楽観と悲観的ロックロックは、ロック機構に関連するデータベース、分散ロックは、軽量で、ヘビー級のロックをロックし、ロックを監視する傾向があり
、ブロッキング、ロックの最適化を、ロック、ロック粗大化、スピンロック、リエントラントロックを排除しますロック、デッドロックの
デッドロックの原因と
解決策のデッドロック
されたCountDownLatch、CyclicBarrierをし、セマフォ3つの使用のクラスと原則

マルチスレッド

並行性と並列性の差の
スレッドとプロセスの違い
、スレッドの優先度のスレッドの状態を達成するために、スレッドのスケジューリング、スレッドを作成するためのさまざまな方法、スレッドガード
デザイン、独自のスレッドプール、提出()およびexecute()、スレッドプールの原則
なぜエグゼキュータは、スレッドプールを作成することはできません
、デッドロックのトラブルシューティングを行う方法デッドロック、およびスレッドセーフなメモリモデルとの関係
ThreadLocal変数
のスレッド・プールを作成するには、エグゼキュータは、いくつかの方法:
newFixedThreadPool(nthreadsの値int型)
newCachedThreadPool()
newSingleThreadExecutor()
newScheduledThreadPool(int型corePoolSize)
newSingleThreadExecutor ()
戦略拒否し、スレッドプールを作成ThreadPoolExecutor
スレッドプール閉じ道を

同時コンテナ(JUC)

CopyOnWriteArrayListと:パッケージListインタフェースの実装クラスのJUC
JUCパッケージセットインタフェースの実装クラス:CopyOnWriteArraySet、ConcurrentSkipListSetの
Mapインタフェースを実装しJUCパッケージクラス:のConcurrentHashMap、ConcurrentSkipListMapのの
実装クラスJUCパッケージキューインタフェース:ConcurrentLinkedQueue、ConcurrentLinkedDeque、ArrayBlockingQueue、LinkedBlockingQueue 、LinkedBlockingDeque

Javaの詳細記事

高度な記事のセクションでは、必要なスキルに精通し、当社のビッグデータフレームワークのソースの一部であり、Javaの基本に加えてですが、また私たちのインタビューが最も難しい上級職の面接時にヒット。

JVM

JVMメモリアーキテクチャ
クラスファイル形式、ランタイムデータ領域:ヒープ、スタック、メソッド領域、ダイレクトメモリ、実行時定数プール
との間のヒープ及びスタック差
ヒープそれに割り当てられた特定のJavaオブジェクト?
Javaのメモリモデル
コンピュータモデルメモリ、キャッシュコヒーレンス、MESIプロトコル、可視性、原子、シーケンス、事前発生、メモリバリア、同期、揮発性、最終的に、ロック
ガベージコレクションの
GC方法:クリアマーク、参照カウント、コピー、タグ圧縮、回復の発生、増分回復、GCパラメータ、ライブオブジェクトを決定し、ガベージコレクタ(CMS、GL、ZGC、イプシロン)
JVMチューニングパラメータと
-Xmx、-Xmn、-Xms、XSS、 -XX PermSizeを、-XX:MaxPermSizeを、-XXは:SurvivorRatio、-XX MaxTenuringThreshold
Javaオブジェクトモデル
OOP-のklass、オブジェクトヘッダ
のHotSpot
-timeコンパイラは、コンパイラは、最適化
、仮想マシンのパフォーマンスモニタリングおよびトラブルシューティングツール
JPS、jstack、jmapは、JSTAT、 JConsoleを、Jinfoの、jhat、てjavap、btrace 、TProfiler、Arthasは
クラスローディング機構の
クラスローダは、クラスローディングプロセス、親委譲(親デリゲートを損なう)、モジュラー(JBossのモジュール、OSG​​iの、ジグソーパズル)

NIO

ユーザ空間とカーネル空間
のLinuxネットワークI / Oモデル:(I / OをブロックI / Oをブロックする )、 非ブロックI / O(非ブロッキングI / O)、I / O の多重化(I / O多重化)、信号ドライブI / O(信号駆動I / O)、 非同期I / Oの
精神コピー(zerocopy)
NIOとBIO比較
バッファバッファ
チャンネルチャネル
反応器
セレクタ
AIO

RPC

RPCプログラミングモデル原理
共通RPCフレームワーク:倹約、ダボ、SpringCloud
差RPCアプリケーションシナリオ及びメッセージキュー
RPCコア技術点:公表サービス、リモートプロキシオブジェクトの通信シーケンス

Linuxの基礎知識

Linuxのに一般的なコマンドを学び
、リモートログイン
アップロードとダウンロードの
システムディレクトリの
ファイルとディレクトリの操作の
権限システムのLinuxの下で
の圧縮とパッケージング
のユーザーおよびグループは、
スクリプトを書くシェル
のパイプライン動作

分散理論の記事

以下のようなクラスター(クラスター)、負荷分散(ロードバランサ):いくつかの基本的な概念は、中に分散
、分散システムの理論的根拠:一貫性、2PCや3PC
分散システムの理論的根拠:CAP
時間、時計、およびイベント:システム理論的根拠分散オーダー
分散システム論高度:パクシは、
分散システムの理論は高度:ラフトは、ザブは
選挙、過半数とリース:理論は、高度なシステムの分散
の分散ロックのためのソリューションを
分散トランザクションソリューション
IDジェネレータを解決するために、分散しますスキーム

大きなデータネットワーク通信フレーム基礎--Netty

ネッティーは、そのようなアプリケーションの広い範囲へのアクセスなど、最も人気のNIOフレームワーク、ネッティーインターネット分野では、ビッグデータは分散コンピューティング、ゲーム業界、通信業界、で、業界をリードするオープンソースコンポーネントは、それが通信ネットワークに来る、ネッティーは最良の選択肢であります。
ネッティーについて私たちが把握する:
ネッティー3層ネットワークアーキテクチャ:原子炉通信スケジューリング層、責任パイプラインのチェーン、ビジネスロジック層を

ネッティースレッドスケジューリングモデル

連載

リンク可用性検出

トラフィックシェーピング

エレガントストップ作戦

でSSL / TLSのためネッティーサポート

高品質の網状源は、それが読み取るためのコアコードセクションに推奨されます。

網状のバッファ

網状の原子炉

網状のパイプライン

ネッティーのハンドラレビュー

網状のChannelHandler

ネッティー的LoggingHandler

網状のTimeoutHandler

網状のCodecHandler

ネッティー的MessageToByteEncoder

オフライン計算

Hadoopのシステムは、我々の研究に大きなデータフレームワーク、特にMapReduceの、HDFS、発展方向の全データパスの糸トロイカの基本的なパッドの礎石です。我々はまた、他のフレームワークの背後にある基本を学び、私たちは何をするか、Hadoopの自分自身について持っている必要がありますか?

MapReduceの:

MapReduceのマスター作品

MapReduceの手書きのコードは単純なアルゴリズムのWORDCOUNTかのTopNを達成することができます

MapReduceのコンバイナとパーティショナのマスターの役割

Hadoopクラスタを構築するための、および一般的なエラーを解決することができ、プロセスに精通

Hadoopクラスタ拡張プロセスと共通ピットに泊まりました

MapReduceのデータの傾きを解決する方法

原則とシャッフルを低減する方法をシャッフル

HDFS:

HDFSアーキテクチャ図と読み取りと書き込みのプロセスに精通

HDFSの構成に精通

役割と名前ノードに精通データノード

HA構成や機能、Fsimage名前ノードシーンとEditJournalを確立

一般的な操作コマンドHDFSファイル

HDFSのセキュリティモデル

糸:

背景とアーキテクチャの糸

糸部門の役割とそれぞれの役割

糸の構成と共通リソーススケジューリング方針

糸は、タスク、リソーススケジューリングプロセスを実施します

OLAPエンジンハイブ

ハイブは、Hadoopの中に構造化されたデータを処理するデータウェアハウス・ツール・ベースです。これは、Hadoopのの上に構築され、ビッグデータは常にあり、およびクエリーと分析が容易になります。ハイブは、最も広く使用されているOLAPのフレームワークです。ハイブSQLは、私たちの最も使用されるSQLの開発フレームワークです。
ハイブについての知識は次のことを習得する必要があります。
HiveSQL原則:私たちは皆、HiveSQLは、それがSQLのMapReduceにある翻訳されたか、MapReduceのタスクの実行に変換されます知っていますか?

ハイブと共通リレーショナルデータベースの違いは何ですか?

データ形式は、ハイブをサポートしています

NULLのハイブは、どのように基礎となるストレージ

数名の参加者は、それが何を意味する(並べ替え/受注/ Distrbuteことでことでことで/クラスタ)HiveSQLソートをサポート

ハイブ動的パーティショニング

一般的な違いは何HQLとSQL

ハイブの内側と外側のテーブル間の差

ロングテールとデータスキューの問題を解決するためにどのようにクエリに関連付けられハイブテーブル

HiveSQL最適化(システム・パラメータの調整、SQL文の最適化)

柱状データベースHBaseの

私たちは、柱状のデータベースの概念を述べたときは、最初の反応は、HBaseのです。
HBaseのは、構造化された膨大な量のデータへの高速なランダムアクセスを提供するために設計されたGoogleの大きなテーブルと同様の性質上、データモデル、です。これは、フォールトトレラントのHadoopファイルシステム(HDFS)を提供を使用しています。
それは、ランダム読み取り/書き込みアクセスのためのリアルタイムデータを提供し、HadoopのエコシステムであるHadoopのファイルシステムの一部です。
私たちは、直接またはHBaseのストレージHDFSデータによることができます。HBaseのは、消費者HDFSに使用/ランダム・アクセス・データを読み込みます。Hadoopのファイルシステムの上でのHBase、および読み取りと書き込みアクセスを提供します。
HBaseのは、列指向データベースであり、それはテーブルの行をソートします。キーと値のペアである表のスキーマ定義列のみ家族、。複数の列と、各列の芳香族基を有するテーブルは、任意の数の列を有することができます。値の後続の列は、ディスク上に連続して格納します。各テーブルのセルの値は、タイムスタンプを持っています。要するに、HBaseのに:表の行の集合であり、列の行は、家族の集まりであり、カラムファミリは列のコレクションであり、カラムは、キーと値のペアの集合です。
HBaseのについてあなたが知っている必要があります:
HBaseのアーキテクチャとの原則を

HBaseのは、プロセスの読み取りと書き込み

HBaseのには並行性の問題を持っていませんか?どのようにHBaseのは、彼らのMVVCを実現しますか?

HMASTER、リージョンサーバー、WALメカニズム、MemStore:いくつかの重要な概念でのHBase

HBaseの設計プロセス中にテーブルとどのように列ファミリのrowKeyデザイン

HBaseのデータとホットな問題の解決策を見つけます

読み、共通プラクティスのHBaseの書き込み性能の向上

原則とのRowFilterのブルームフィルタでのHBase

HBaseのAPI共通コンパレータ

HBaseの事前パーティション

HBaseの的コンパクション

HBaseのクラスタのダウンタイムがどのように解決HRegionServer

リアルタイムシステムの記事

分散メッセージキューカフカ

カフカはもともと分散し、サポートパーティション(パーティション)、複数のコピー(複製)分散型メッセージングシステムで、その最大の特徴は、シーンの様々なニーズを満たすために、リアルタイムで大量のデータを処理する能力である、LinkedInのによって開発されました:例えば、Hadoopのベースのバッチ処理システム、低遅延リアルタイムシステム、ストリーミングエンジンをスパーク、nginxのログ、アクセスログ、メッセージングサービスなど、Scalaの言語では、Apache財団に2010年にLinkedInの貢献とトップになりますオープンソースプロジェクト。
カフカカフカまたは類似の各企業は、独自のニュース「ホイール」はすでにビッグデータフィールド・メッセージング・ミドルウェアのデファクトスタンダードである作りました。現在、カフカが同様のKafkaSQL他の機能をサポートし、バージョン2.xに更新されている、カフカは、それがプラットフォームの方向に進化して、簡単なメッセージングミドルウェアを満たしていません。
カフカについて、私たちは知っている必要があります:
特性や使用シナリオカフカ

カフカ概念のいくつか:リーダー、ブローカー、プロデューサー、コンシューマー、トピック、グループ、オフセット、パーティション、ISR

カフカの全体的なアーキテクチャ

カフカの選挙戦略

何カフカ読み、その過程でメッセージを書き込むには行われています

どのようにKakfaデータ同期(ISR)

パーティションのメッセージシーケンスの原則のカフカ実現

消費者や消費者団体との関係

消費者カフカメッセージベストプラクティス(ベストプラクティス)何

どのようにカフカ保証メッセージ配信の信頼性と冪等

どのようにトランザクションメッセージカフカが実装されています

オフセットカフカのメッセージを管理する方法

カフカファイルストレージメカニズム

カフカはかならず1回セマンティクスをサポートされている方法

カフカと、一般的にもRocketMQ比べて他のメッセージングミドルウェアが必要です

スパーク

スパークは、特に大規模なデータ処理のために設計された汎用コンピューティングエンジンは、高速汎用クラスタコンピューティングプラットフォームです。これは、大規模、低遅延のデータ分析アプリケーションを構築するために使用され、カリフォルニア大学バークレー校AMP研究所によって開発されたユニバーサルメモリ並列コンピューティングのフレームワークです。これは、広く使われているMapReduceの計算モデルを拡張します。より効率的な計算モード、および対話型のクエリ処理を含むストリームをサポートしています。主な特徴は、やはりスパークのMapReduceよりも効率的であっても、ディスクに依存する複雑な計算場合は、メモリ内にスパークを計算する能力です。
生態スパークは、次のとおり、コアスパークストリーミングスパーク、スパーク SQL、構造化Stremingのライブラリとマシンが関連学びます。
スパーク学習は、私たちは持っている必要があります:
(1)スパークコア:
(クラスタ内の火花の役割)スパーククラスタとクラスタアーキテクチャ建物

スパーククラスタとクライアントモードの違い

弾力性、分散データをRDDを設定し、スパーク

スパークDAG(有向非巡回グラフ)

マスタースパークRDDプログラムオペレータのAPI(変換とアクションオペレータ)

広いと狭い依存性に依存している何RDDの依存関係、

血液のRDDメカニズム

スパークコアコンピューティング機構

スパークタスクスケジューリングとリソースのスケジューリング

チェックポイントとフォールトトレランスのスパーク

スパーク通信メカニズム

スパークシャッフル原理とプロセス

(2)スパークストリーミング:
分析(ソースコードレベル)の原理および動作機構

そのAPI操作をDSTREAMスパーク

スパークストリーミング消費カフカの2つの方法があり

スパーク消費カフカメッセージオフセット処理

データ処理方式が傾斜しています

スパークストリーミング演算子曲

ブロードキャストおよび並列処理変数

シャッフルチューニング

(3)スパークSQL:
スパークSQL原理と動作機構を

触媒の全体的なアーキテクチャ

SQL的にデータフレームをスパーク

スパークSQLの最適化戦略:メモリ柱状ストレージとメモリキャッシュのテーブル、列、ストレージ圧縮、論理的なクエリの最適化、最適化に参加
(4)構造化ストリーミング
2.3.0バージョンから火花が構造化されたストリーミングをサポートするために始めた、それが構築されたスパークSQLエンジンですスケーラブルでフォールトトレラントストリーム処理エンジンで、バッチ処理とストリーム処理の統一。それは対抗することができ、統一流れ、バッチおよびFLINKの側面に参加する仕組ストリーミングスパークます。
私たちは知っている必要があります:
構造化ストリーミングモデルを

構造化されたストリーミング結果出力モード

タイムイベント(イベント時)および遅延されたデータ(遅延データ)

ウィンドウの操作

透かし

トレランスとデータ復旧の障害

MLIBスパーク:
このセクションでは、スパーク機械学習支援の一環で、我々は、Spark一般的に使用される分類、回帰、クラスタリング、協調フィルタリング、次元削減と下層の最適化アルゴリズムと原始的なツールについて学ぶことができ、学生の空き容量がある学びます。あなたは、自分の使用スパークMLIBは、いくつかの単純なアルゴリズムを実行する試すことができます。

ApacheのFLINK(以下、FLINKと呼ぶ)プロジェクトはゆっくりと、最近の新星を処理するデータの大規模なフィールドであり、他のビッグデータ・プロジェクトは異なるその多くの機能がますます注目を集めています。特に、初期の2019年に点滅はFLINKは、前例のない程度に上げて注目を開きます。
私たちは知識の中核を把握する必要があります。このフレームワークFLINKは?
FLINKは、クラスタを構築します

アーキテクチャのFLINK原則

FLINKプログラミングモデル

HA FLINKのクラスタ構成

FLINK DataSetのAPI和DataSteam

連載

FLINKアキュムレータ

状態管理と回復の状態

そして、時間ウィンドウ

平行

FLINK結合およびメッセージングミドルウェアカフカ

FLINK表およびSQLの原則と使用

また、SQLのためのアリババブリンクサポートについてここで話の焦点は、あなたが最も誇りに思うのは、SQLはSQLのサポートですされ、最も一般的な二つの問題のいくつかを点滅、アリの雲の公式ウェブサイトで見ることができます:ダブル1問題のJOIN、2.State重要な問題は、我々の注意の障害です。

ビッグデータアルゴリズム

アルゴリズムのこの部分は、2つの部分からなります。最初の部分は次のとおりです。大規模データ処理のための面接の質問の一般的なアルゴリズムを、第二部は、次のとおりです。一般的に使用される機械学習とデータマイニングアルゴリズム。
私たちは、最初の部分の一部をハイライトし、私たちの学校の第二部は、学生の何人か、面接の過程で明るいスポット考えることができることに到達するための予備の容量を持っています。
ビッグデータの一般的なアルゴリズムの問題:
単語共起を見つけるための2つの大きなファイル

大規模なデータ要件のTopN

独自のデータを識別するために、膨大な量のデータ

ブルームフィルタ

ビットマップ

ヒープ

トライ

転置インデックス

企業は、それはのようだったあなたは何を期待しますか?

のは、大規模なデータ開発エンジニアの数典型的なBAT募集要件を見てみましょう:
ファイル
ファイル
ファイル

以上の3つのジョブは、その後、我々は彼らの要求にまとめている、百度とテンセント、アリからです:
1から2言語基盤

固体背景の開発基盤

オフライン計算の方向(等のHadoop / HBaseの/ハイブ)

リアルタイムで算出された方向(火花/ FLINK /カフカ、等)

知識優先度の広い範囲(+他の対応経験)

あなたはその後、トップレベルのApacheプロジェクトのコミッタお祝いしている場合は、オブジェクトを、それらを誘い出すために、競合する大手企業であることを行っています。
私たちは、あなたの履歴書を書くときに注意を払う必要がありますか?
私がインタビュアーとして多くの人々にインタビューをしている、私は比較的良好な履歴書が含まれているべきだと思う:
美しいレイアウトを、単語の使用、フォーマットされたテンプレートを排除し、PDFを生成値下げを推奨

専門用語を重ねないでください、ない、理解していない書いていない、またはあなたが深刻な虐待されます

1〜2優れたプロジェクト経験、あなたの履歴書はデモとしてシンプルかつ明白なように見えることはできません。

プロジェクトの履歴書に書かれた、私はあなたが知っている必要はない場合は、すべての詳細に精通している必要がありことを示唆しているが、達成可能な開発方法であります

大きなプラスでよく知られている会社インターンシップや仕事の経験がある場合

技術的な深さと幅?
技術的な方向では、我々は、スキルをマルチする学生の両方の幅広さと深さを好む、当然のことながら、この要件は、すでに高いです。しかし、少なくともそれは行う必要があり、あなたも原則を認識しておく必要があり、使用方法に慣れていないだけの技術を使用することです。
あなたが持っているか、その技術的優位性と前向きを強調するので、グループ内のコア技術のリーダーとして発展した場合、今のホイールを使用しての長所と短所のいくつかに精通する必要が、だけでなく、前向き特定を持っており、今後の技術開発を予測すべきですセックス。
あなたの履歴書を送信する方法?
最も推奨される方法は、グループを募集またはプッシュの学生や同僚のための直接責任者を見つけることです。

ビッグデータ技術とアーキテクチャ
私の社会的関心のスキャンコード番号へようこそ、返信] [JAVAPDFは200秋のトリックインタビューの質問を取得することができます!

おすすめ

転載: www.cnblogs.com/importbigdata/p/11517117.html