基本組件: Zookeeper: 分布式協作框架 節點數目: 測試集群:3個 生產集群:(7個差不多) 小型集群:3個或者5個 中型集群:5個或者7個 大型集群:更多,奇數個 HDFS: 存儲海量數據 YARN: 集群資源管理 資源調度 MapReduce: 並行計算框架 思想: 分而治之 集群大小:雙十一模擬,峰值,宕機處理一類,11月9號 測試集群: 機器數量:(測試數據,每秒讀取數據一類) 5台 - 10台 機器配置: 內存:24G/32G以上 8G-12G NameNode:2G 每台內存越多越好 MR內存來自於NN DataNode:6G-8G RS:4G 硬盤:4T / 10T 以上 CPU核:6核以上(i5,i7) 一個map任務默認1G 100萬個文件 網卡/網線:(數據傳輸讀寫)萬兆,十萬,百萬 生產集群:(十幾二十幾就可以,內存128G,硬盤15T,浪潮,16核,網卡10萬兆) 小型集群: 20台以下。 中型集群: 50台以下。 大型集群: 50台以上。 Hadoop發行版本: Apache CDH:服務收錢,開源免費 (Cloudera's Distribution Hadoop) Cloudera公司:發布版本,只支持64位操作系統 安裝:tar包:http://archive.cloudera.com/cdh5/cdh/5 rmp包:http://archive.cloudera.com/cdh5/redhat(lunix發行版本)/6/x86_64/cdh 京東等,自己編譯rmp包 parcels包(壓縮包,生態系統所有壓縮在里面,最好的):cdh 4.1.2 以后才有的 13年 官方推薦的方式 Cloudera Manager進行安裝 HDP:(Hortonworks Data Platform) Hortonworks 公司版本: apache -> cdh | hdp 面試題: apache和cdh比較,為什么選擇了cdh? CDH省時省力,自動探測host,選擇版本,配置簡單,幾乎是傻瓜式一鍵安裝。MapR方便程度就稍微差一些,但是仍然比Apache要方便很多。但是MapR版本有一個致命的缺點,它用的不是Hadoop的HDFS而是他們自己實現的MapRFS。導致了Hadoop生態系統中所有涉及到文件系統操作的系統都需要使用MapR的發行版。為了兼容MapRFS,源碼都被改過。可以到MapR的github賬戶上看到。Apache的話就真心需要專職運維人員去管理了。需要使用一些集群管理配置工具了。手動絕對累死。你所說的CDH沒有對yarn的開發力度不大我覺得這個倒不用太擔心。CDH會定期根據Apache開源的最新穩定版本發布相應的CDH版本,所以不存在版本落后最新版很多的情況。而且我記得CDH現在加入了parcel管理,可以非常簡單方便地切換hadoop版本而不需要重新安裝集群。這個功能誘惑力太大了。另外CDH對於超過50個節點的集群就要開始收費了。這個是需要考慮的問題。5.0后50個節點限制取消。 CDH對Hadoop版本的划分非常清晰,只有兩個系列的版本,分別是CDH3和CDH4,分別對應Hadoop 1.0和Hadoop 2.0。相比而言,Apache版本則混亂得多。 CDH比Apache在兼容性,安全性,穩定性上有增強。 CDH3版本是基於Apache Hadoop 0.20.2改進的,並融入了最新的patch,CDH4版本是基於Apache Hadoop 2.X改進的,CDH總是並應用了最新Bug修復或者Feature的Patch,並比Apache hadoop同功能版本提早發布,更新速度比Apache官方快。 CDH支持Kerberos安全認證,Apache則使用簡陋的用戶名匹配認證. CDH文檔清晰,很多采用Apache版本的用戶都會閱讀CDH提供的文檔,包括安裝文檔、升級文檔等。 CDH支持Yum/Apt包,Tar包,RPM包,Cloudera Manager四種方式安裝,Apache 只支持Tar包安裝。 CDH使用推薦的Yum/Apt包安裝時,有以下幾個好處: 1、聯網安裝、升級,非常方便 2、自動下載依賴軟件包 3、Hadoop生態系統包自動匹配,不需要你尋找與當前Hadoop匹配的Hbase,Flume,Hive等軟件,Yum/Apt會根據當前安裝Hadoop版本自動尋找匹配版本的軟件包,並保證兼容性。 4、自動創建相關目錄並軟鏈到合適的地方(如conf和logs等目錄);自動創建hdfs, mapred用戶,hdfs用戶是HDFS的最高權限用戶,mapred用戶則負責mapreduce執行過程中相關目錄的權限。 集群環境准備: 機器: 磁盤陣列: RADI0 RADI1 JBOD RADI1:兩塊磁盤映射為一塊磁盤使用。裝了CentOs 6.4版本,其中一塊磁盤損壞,不會影響系統,因為相互映射備份 0+1更保險 JBOD:磁盤櫃。DataNode存儲數據推薦的方式。調優。讀取快。 datanode存儲位置可以配置,掛載一個磁盤,通常:/dfs/data01 /dfs/data02 /dfs/data03 裝系統:redhat 5/6 推薦6、CentOs 6.x 64位 6.4版本、sles 11ur版本 clouder文檔:查看適應哪個版本 系統: IP地址:盡可能在同一網段,盡量在一個交換機上(機架Rack,默認機架/default)。 設置主機名:bigdata-cdh01.ibeifeng.com、bigdata-cdh02.ibeifeng.com、bigdata-cdh03.ibeifeng.com(主機名里面不能有_下划線) 修改主機名: hostname vi /etc/sysconfig/network 例: hostname bigdata-cdh02.ibeifeng.com vi /etc/sysconfig/network HOSTNAME=bigdata-cdh02.ibeifeng.com IP和主機名映射(所有機器): 禁用IPv6(所有機器): sudo echo "alia net-pf-10 off" >> /etc/modprobe.d/dist.conf sudo echo "alia ipv6 off" >> /etc/modprobe.d/dist.conf tail -f /etc/modprobe.d/dist.conf vi /etc/hosts ## BigData CDH 5.x 172.16.200.11 bigdata-cdh01.ibeifeng.com bigdata-cdh01 172.16.200.12 bigdata-cdh02.ibeifeng.com bigdata-cdh02 172.16.200.13 bigdata-cdh03.ibeifeng.com bigdata-cdh03 windows下: C:/Windows/System32/drivers/etc/hosts 172.16.200.11 bigdata-cdh01.ibeifeng.com bigdata-cdh01 172.16.200.12 bigdata-cdh02.ibeifeng.com bigdata-cdh02 172.16.200.13 bigdata-cdh03.ibeifeng.com bigdata-cdh03 普通用戶(所有機器):所有集群中普通用戶名字一定要一致 用於安裝軟件: adduser beifeng passwd 123456 su - beifeng 切換用戶 su sudo 切換方便 配置普通用戶的sudo權限(所有): su 寫權限:chmod 777 /etc/sudoers/chmod u+w /etc/sudoers 添加:vi /etc/sudoers beifeng ALL=(root)NOPASSWD:ALL 收回權限:chmod 777 /etc/sudoers/chmod u-w /etc/sudoers 關閉防火牆(所有,不同機器,關鍵字不同); sudo service iptables stop 永久關閉:sudo chkconfig iptables off 查看防火牆是否關閉:sudo chkconfig --list|grep iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off 全部關閉 more /etc/inittab:默認運行級別5,節省內存3 Selinux(所有): 禁用:因為麻煩,沒有專業運維,運用少,系統服務和驅動程序不兼容,涉及安全 sudo vi /etc/sysconfig/selinux SELINUX=disabled 卸載JDK: 查看版本:sudo rpm -qa|grep java 卸載,參數強制性,因為有些是有關聯的:sudo rpm -e --nodeps xxx 設置文件打開數量和用戶最大進程數(所有): 文件打開數量: ulimit -a 用戶最大進程數: ulimit -u 設置: sudo vi /etc/security/limits.conf 內容: *(任何參數用戶) soft nofile 65535 * hard nofile 65535 * soft nproc 32000 * hard nproc 32000 文檔:www.cloudera.com/content/www/en-us/documentation/enterprise/5-3-x.html 軟件: 集群時間同步: CentOS配置時間同步NTP,為什么要使用ntpd而不是ntpdate? 原因很簡單,ntpd是步進式的逐漸調整時間,而ntpdate是斷點更新,比如現在服務器時間是9.18分,而標准時間是9.28分,ntpd會在一段時間內逐漸的把時間校准到與標准時間相同,而ntpdate會立刻把時間調整到9.28分,如果你往數據庫內寫入內容或在其他對時間有嚴格要求的生產環境下,產生的后果會是很嚴重的。(注:當本地時間與標准時間相差30分鍾以上是ntpd會停止工作) 找集群一台機器作為【時間服務器】:bigdata-cdh01.ibeifeng.com sudo rpm -qa|grep ntp sudo vim /etc/ restrict (ifconfig:inet6 addr) mask 255.255.255.0 nomodify notrap #server 0.centos.pool.ntp.org #server 1.centos.pool.ntp.org #server 2.centos.pool.ntp.org server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 sudo vi /etc/sysconfig/ntpd SYNC_HWCLOCK=yes sudo service ntpd status sudo service ntpd start sudo chkconfig ntpd on sudo chkconfig --list|grep ntpf 客戶端同步(剩余其他台機器):zookeeper依賴性特別高 定時任務: Linux Crontab su crontab -l:查看定時器任務 crontab -e:創建定時器任務 ## sync cluster time 0-59/10 * * * * /usr/sbin/ntpdade bigdata-cdh01.ibeifeng.com sudo reboot
