2019.10.27 頭條面試準備

2019.10.27 頭條面試準備

我的簡歷

2019.06 - 至今上海華爲開發工程師php

實習部門:5G開發部
項目:網站開發、運維開發、數據處理
2019.06至今華爲實習
Python+Django+Javascript+Nginx+rabbitMQ+ELK
基於 Django 框架使用 Python 開發網站基礎進程監控系統,實現進程異常記錄、進程異常自動恢復、發送告警郵件,而且用 Web 界面進行展現和管理。整個框架由本人獨立設計完成並上線,保證了部門 Web 的穩定。
使用Python對文件裏面的數據進行處理分析,並完成web展現。html

2019.06 - 至今網站基礎進程監控系統開發工程師前端

1,基於 Django 框架使用 Python 開發網站基礎進程監控系統;
2,使用pymysql實現進程異常記錄、利用subprocess+ssh鏈接機器檢查進程狀態、異常自動恢復、使用rabbitMQ做消息隊列發送告警郵件和短信通知;
3,使用JavaScript、Jquery、echarts等開發 Web 界面進行展現和管理進程。4,整個框架由本人獨立設計完成並上線,保證了部門 Web 的穩定。java

2018.12 - 2019.03華爲雲意見反饋系統開發工程師node

1,基於Spring boot框架+Mybatis+Redis+Restful等技術的一個意見反饋系統。2,本人在項目裏面負責後端部分,使用IDEA開發工具,Git協同開發
3,實現了登陸校驗,發佈,刪除,評論等功能。python

IT技能:熟悉Python、Java,有紮實的數據結構算法基礎,熟悉Linux操做,熟悉JavaScript頁面開發;
職位相關技能:瞭解Hadoop,瞭解redis,瞭解機器學習、深度學習。
CET6:520 有良好的英語閱讀能力mysql

準備

  • 說一下Django框架
  • 說一下進程監控系統

生產服務依靠不少關鍵性進程的運行來維持。好比rabbit_mq消費者,數據分析的腳本,網站響應速度,數據庫健康情況等等。這些進程分佈在不一樣機器上,並且數量巨大。爲了把這些進程監控起來,就開發了一個簡單的監控系統。經過前端界面進行配置服務相關信息,全部進程的狀態均可以經過前端進行查看。一旦有異常會根據郵件分組進行發送,若是配置了異常自動恢復功能,會自動恢復服務。nginx

底層原理:ssh,ping,connect,urlopen,rabbit_mq消息隊列git

不足:雖然功能簡單,可是能穩定運行。其中也有不少不足的地方,若是機器數量特別大,那麼這個監控系統可能管理起來就會很麻煩。程序員

優化:能夠借鑑開源框架的C/S模式,客戶端上報機器信息,服務端進行彙總監控。

  • python文件數據分析

對5G一些模塊生成的文件,進行分析統計一些高頻函數。

elk

elasticsearch

rabbitMQ 和 kafka

都是消息隊列:

  • kafka: scala,分佈式多分區多副本基於zk協調的分佈式消息系統。高吞吐的分佈式發佈訂閱消息系統,水平擴展、高吞吐率
  • rabbitMQ,起源於金融系統,分佈式系統存儲轉發,高可靠性

nginx

  • [x] Nginx 相關負載均衡算法

  • [x] 原理

  • [x] Nginx如何作到高併發下的高效處理?

    上文已經說起Nginx的worker進程個數與CPU綁定、worker進程內部包含一個線程高效迴環處理請求,這的確有助於效率,但這是不夠的。

    做爲專業的程序員,咱們能夠開一下腦洞:BIO/NIO/AIO、異步/同步、阻塞/非阻塞...

    要同時處理那麼多的請求,要知道,有的請求須要發生IO,可能須要很長時間,若是等着它,就會拖慢worker的處理速度。

    Nginx採用了Linux的epoll模型,epoll模型基於事件驅動機制,它能夠監控多個事件是否準備完畢,若是OK,那麼放入epoll隊列中,這個過程是異步的。worker只須要從epoll隊列循環處理

Java

  • [x] 讀寫鎖http://www.javashuo.com/article/p-qiiopult-ge.html
  • [x] hashtable、hashmap、concurrenthashmap
  • [x] wait 和 sleep 的區別
  • [x] 接口和抽象類的區別
  • [x] 集合類 arraylist linkedlist 區別 擴容
  • [ ] 什麼時候會STW,全部垃圾回收器都會有STW嗎
  • [x] String str = new String(「abc」)的操做有幾個對象產生
  • [x] public protected private區別
  • [x] final和finally區別?final能夠用在方法參數上嗎?
  • [x] RuntimeException和非RuntimeException?各舉幾個例子?比方說文件讀寫的時候會有什麼異常?
  • [x] 怎麼實現序列化?除了Java原生序列化方法,序列化還有什麼格式?
  • [x] Java IO(序列化、BIO、NIO、AIO)

  • spring boot基礎

    • 什麼Spring的原理,
    • Ioc和
    • AOP,
    • 事務,
    • 多個bean的關係,
    • SpringMVC的流程

redis

  • [x] Redis 實現分佈式鎖的原理說一下
  • [x] Redis 實現緩存是存儲什麼數據,過時時間是多少
  • [x] 除了 Redis 實現分佈式鎖,還有什麼辦法:ZK
  • [x] Redis 在項目中怎麼使用,使用什麼特性
  • [x] 分佈式鎖的實現除了 Redis 還有什麼?
  • [x] 緩存與硬盤的優勢缺點比較,爲何須要緩存
  • [x] Redis 緩存存放什麼數據/使用什麼數據格式存儲
  • [x] redis 持久化
  • [x] redis緩存一致性

hadoop

reference:

hadoop源碼分析

優秀的大數據博客

hadoop面試 實戰問題

大數據面試題及答案github

BigData-Interview github

mapreduce 的 shuffle過程 特別清晰

hadoop面試寶典

《海量數據算法面試大全》

hadoop大數據面試題(全) 知乎

Hadoop基礎面試題整理

數據開發崗找實習心得

最近經歷的一些大數據(Spark/Hadoop)面試題

  • [x] mapreduce
    • [x] shuffle過程
    • [x] mapreduce 排序發生在哪幾個階段,排序是否能夠避免,爲何?
    • [x] 具體過程
    • [x] map方法如何調用reduce方法
    • [x] MR詳細過程(請注意詳細,從RPC開始說)
  • [x] 數據傾斜怎麼處理
  • [x] maptask和reducetask的數量怎麼控制
  • [x] resourcemanager,nodemanager,applicationmanager和MRAppMaster等等
  • [x] hdfs
    • [x] namenode 和 datanode 怎麼數據交換
    • [x] HA的實現
    • [x] 數據如何存儲到datanode上的,具體存到哪裏
    • [x] datanode壞了 如何恢復(有備份),每一個datanode有幾個副本,能夠更改嗎
    • [x] 讀寫數據的過程
    • [x] datanode 首次加入 cluster 的時候,若是 log 報告不兼容文件版本,那須要namenode執行格式化操做,這樣處理的緣由是?
    • [x] hdfs架構
    • [x] 建立文件流程
    • [x] fsimage和editlog的區別
  • [x] yarn
    • [x] yarn架構
    • [x] 調度mapreduce
    • [x] YARN容錯機制
  • [x] hadoop 和 sparks的區別
  • [x] hadoop 優化
  • [x] hadoop1.x 和 2.x區別,優缺點
  • [x] 經常使用配置文件有哪些:core-site.xml, mapred-site.xml, hdfs-site.xml,配置怎麼優化
  • [x] 小文件過多會有什麼危害,如何避免
  • [x] 啓動hadoop集羣會分別啓動哪些進程,各自的做用

zookeeper

reference:

多是全網把Zookeeper概念講的最清楚的一篇文章

  • [ ] ZK 實現分佈式鎖的原理了解嗎?不瞭解,但瞭解如何實現服務註冊與發現
  • [ ] zk 如何保證高可用
  • [ ] zk 高可用的實現原理是什麼

  • 流處理框架
  • 設計模式
    • 單例模式
  • 哈希一致算法
  • Hive
    • 分區和分桶
  • hbase
    • [ ] hbase過濾器
    • [ ] hive和hbase的區別

spark

reference:

有什麼關於Spark的書推薦 知乎

Spark面試題整理 簡書

Spark常見面試題 知乎

Spark Core面試篇01

  • [x] spark工做的一個流程,運行架構
  • [x] spark程序執行流程
  • [ ] spark partitioner有哪些
  • [x] RDD緩存級別
  • [x] RDD懶加載什麼意思
  • [x] spark部署方式
  • [x] spark on yarn 模式下的cluster 模式和client模式有什麼區別
  • [x] sort shuffle 的優勢
  • [ ] stage怎麼劃分?
  • [ ] spark內存管理機制,spark1.6先後分析對比 spark2.0作出來哪些優化
  • [ ] spark廣播變量
  • [ ] spark如何處理數據傾斜
  • [ ] spark一段代碼哪些部分在driver端執行,哪些部分在worker端執行
  • [x] 寬窄依賴是什麼?
  • [x] spark讀數據是幾個partition hsfs幾個block就有幾個partition
  • [ ] region多大會分區
  • [ ] spark工做模式,部署分佈式架構圖
  • [ ] spark工做流程,集羣上各角色對應關係
  • [x] 算子有哪些
  • [ ] spark怎麼整合hive
  • [ ] spark如何處理結構化數據,非結構化數據
  • [ ] spark性能優化手段?
  • [ ] spark對於現有大數據的現狀的優點劣勢在哪裏
  • [ ] spark開發分哪兩個方面?
  • [ ] spark sql 爲何比hive快
  • [ ] RDD數據結構怎麼樣
  • [ ] spark怎麼讀hbase spark on hbase

hive

數據挖掘算法

算法

  • 二叉樹中序遍歷 非遞歸

  • 冒泡排序

  • 最長遞增子序列https://leetcode-cn.com/problems/longest-increasing-subsequence/solution/dong-tai-gui-hua-she-ji-fang-fa-zhi-pai-you-xi-jia/

  • 動態規劃 http://www.javashuo.com/article/p-wwzkecyj-bv.html

  • 最長公共子串

  • Top K問題 http://www.javashuo.com/article/p-efyxkywx-cg.html

  • 微信掃碼登陸設計原理 https://www.jianshu.com/p/047acc4190cb

  • 01揹包

  • 二叉樹序列化與反序列化

  • 二叉樹前序遍歷中序遍歷構造還原

  • LRU算法實現

  • 單鏈表奇數位遞增,偶數位遞減進行排序

  • 矩陣中的二分查找(一個二維矩陣,從左到右是升序,從上到下是降序,找一個數是否存在於矩陣中(相似於二叉查找樹))

  • 數組內部重複,求重複部分(1,2,3,1,2,3 求 1,2,3)

  • 二叉樹是否存在和位N的路徑

  • 求二叉樹最長路徑

  • 歸併排序

  • 快速排序

  • 經過內存計數器實現限流器

  • 名人問題:

    • 連接:https://www.nowcoder.com/discuss/115824
      全部人都認識TA,可是TA不認識任何其餘人
      a [i] [j] = 1, i 認識 j
      a [i] [j] = 0, i 不認識 j
      a [i] [i] 置空
      給定n*n的二維數組,有多少個名人?具體都是誰?
  • 刪除鏈表中全部重複元素

  • 輸入一個字符串String str,求重複次數最多的字符的第一個索引值
    例如
    輸入:"aabcbcbc"
    輸出:2(b和c都出現了3次,但b在c前面)

    • ~~對char轉換成int,而後26取模,在對應位置加26,遍歷一遍,找到大於2*26的數(兩次重複能這麼作)~~

self:

場景題:

  • 遊戲保證100人在線不卡:長鏈接,消息隊列靜態資源分配
  • 小米搶購怎麼作
  • 搶紅包隨機算法,保證公平性
  • 微博高併發應對措施
  • 爬蟲多個電商數據,如何存放,如何找到同一商品最便宜的url
  • 一個五升桶,一個三升桶,怎麼倒出四升水,水能夠無限量使用
  • 滴滴派發訂單功能設計?
  • 有聲小說音頻自動匹配字幕情景題,有大量的音頻文件,非人力可以作到,語音識別匹配生成字幕文件,字幕文件中語音和字幕的時間需一致,如何設計?
  • 英雄聯盟H5小遊戲排名,實時動態更新,如何實現?
  • 杭州G20形象工程須要擦窗子,估計杭州擦窗子要多少費用?
  • 假設公司要建一個數據中心,你會如何處理?
  • 例如銷售衣服,針對衣服能夠創建哪些特徵向量,這裏只是舉了一個例子。不能說把算法全都掌握,但至少要熟悉一類,瞭解算法的原理以及該算法解決的實際問題。

數據庫

  • 索引:

    • 平衡樹,b樹 和 b+樹 http://www.javashuo.com/article/p-ckwxkowl-eh.html

    • 彙集索引(根據主鍵生成平衡樹,而後進行查找),通常的查找步驟是,根據字段查找對應的id,而後根據id再查到具體的信息。 創建索引的目的就是加快id查找,根據多字段創建索引也能夠省略根據id查找具體信息的目的。 好比:我要查name 小王 的 score成績,根據這兩個字段創建索引:<這種方式叫覆蓋索引>

    • create index name_and_score on student(name, score);
      select score from student where name='小王';
  • b樹 和 b+樹的區別

  • 數據庫事務隔離級別

  • mysql 和 hbase對比

  • mysql數據庫默認存儲引擎,有什麼優勢

  • 數據庫引擎結構、區別

  • 索引底層結構,插入數據索引結構的變化等

  • 索引的優化方法,以及爲何(就是優化底層是怎麼實現)

  • 索引使用(優化器如何界定)

  • 數據庫幾種日誌,以及如何刷新,區別

  • 數據庫三個線程用處

  • 數據庫事務詳細(不是指ACID幾個性質,就是事務究竟是基於什麼實現的)

    • 關係型和非關係型數據庫的區別(各自優勢)

    • 經常使用SQL語句(DDL,DML,DCL,TCL)

    • 數據庫中join的類型與區別(inner join, outer join, cross join, natural join, self join),注意適用場景和sql語句的編寫

    • 數據庫的索引類型

    • 彙集索引和非彙集索引的區別(葉節點存儲內容)

    • 惟一性索引和主碼索引的區別

    • 索引的優缺點,何時使用索引,何時不能使用索引(重點)

    • 索引的底層實現(B+樹,爲什麼不採用紅黑樹,B樹)

    • B樹和B+樹具體實現

    • 索引最左前綴問題

    • Mysql的優化(高頻,索引優化,性能優化)

    • 數據庫引擎介紹,Innodb和Myisam的特色與區別

    • 數據庫中事務的ACID(四大特性都要可以舉例說明,理解透徹,好比原子性和一致性的關聯,隔離性很差會出現的問題)

    • 數據庫隔離性設置不一樣會出現的問題(髒讀、不可重複讀、丟失修改、幻讀)

    • 數據庫的隔離級別,Mysql和Oracle的隔離級別分別是什麼

    • 數據庫鏈接池的做用

    • Mysql的表空間方式,各自特色

    • 分佈式事務

    • 數據庫的範式

    • 數據的鎖的種類,加鎖的方式

    • 視圖的做用與使用方法(如何刪除等)

    • 分庫分表,主從複製,讀寫分離。(我不會,也沒碰到過)

    • 項目中哪裏用到了數據庫,怎麼用的

    • Memcache和Redis瞭解

    大數據和分佈式

    • Hadoop框架下,各個組件的構成及做用

    • BASE原則,CAP原則

    • 一致性算法Raft的過程

    • TIDB原理

    • HBase的存儲原理

    • HDFS運行原理

    • Hive的瞭解

    • Spark的瞭解

    • 介紹熟悉的設計模式(單例,簡單工廠,觀察者模式等等)

    • 寫單例模式(餓漢模式和懶漢模式),線程安全版本

    • MVC設計模式

others:

  • epoll

https://www.nowcoder.com/discuss/271862?type=2

相關文章
相關標籤/搜索