Agent:安裝在每臺主機上。它負責啓動和中止進程,解壓縮配置,觸發安裝和監控主機 Management Service:執行各類監控、報警和報告功能的一組角色的服務。 Database:存儲配置和監控信息 (元數據) Cloudera Repository:可供Cloudera Manager分配的軟件的存儲庫 Client:用於與服務器進行交互的接口 Admin Console:管理員控制檯 API:開發人員使用 API能夠建立自定義的Cloudera Manager應用程序
CentOS 6.5基礎環境準備html
VMWare中新建虛擬機,按步驟操做便可java
這裏選擇本身配置的虛擬機
- 複製三份,並將文件夾分別重命名爲cdh001,cdh002,cdh003,cdh004,cdh005
- 雙擊.vmx文件,則在VmWare中打開,並根據相應文件夾重命名
- 在虛擬機中進行配置三臺虛擬機的內存(任務管理器-性能-本機內存爲8G),所以每臺虛擬機內存分配不能超過2G。設置1G
- 分配最大可佔用的磁盤空間,這裏40G
- 配置ISO映像文件正確路徑(CentOS 64)python
配置參數列表mysql
IP | 主機名 | 環境配置 | 安裝 |
---|---|---|---|
192.168.64.151 | cdh001 | 關閉防火牆和SELinux,host映射,時鐘同步 | JDK 等 |
192.168.64.152 | cdh002 | 關閉防火牆和SELinux,host映射,時鐘同步 | JDK 等 |
192.168.64.153 | cdh003 | 關閉防火牆和SELinux,host映射,時鐘同步 | JDK 等 |
192.168.64.154 | cdh004 | 關閉防火牆和SELinux,host映射,時鐘同步 | JDK 等 |
192.168.64.155 | cdh005 | 關閉防火牆和SELinux,host映射,時鐘同步 | JDK 等 |
主機名 | Server | Agent | MySQL |
---|---|---|---|
cdh001 | √ | ||
cdh002 | √ | ||
cdh003 | √ | ||
cdh004 | √ | ||
cdh005 | √ | √ |
主機名 | ZK | ResourceManager | JobHistory | NodeManager | Hive | Kafka | HBase(master 僅001) | Phoenix(SQL on HBase) | impala(Daemon全選,其它001) | KUDU(TS全選,MS001) | Oozle | Hue |
---|---|---|---|---|---|---|---|---|---|---|---|---|
cdh001 | √ | √ | √ | √ | √ | √ | √ | √ | √ | |||
cdh002 | √ | √ | √ | √ | √ | √ | ||||||
cdh003 | √ | √ | √ | √ | √ | √ | √ | |||||
cdh004 | √ | √ | √ | √ | √ | √ | √ | |||||
cdh005 | √ | √ | √ | √ | √ | √ | √ | √ | √ |
將相應包上傳到相應節點的~目錄下 # 安裝傳輸工具 yum -y install lrzsz # SecureCRT View-Command Window,後右擊,選擇 send command to all sessions # 下載路徑 https://archive.cloudera.com/cdh6/6.2.1/parcels/ https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPMS/x86_64/ https://archive.cloudera.com/phoenix/6.2.0/parcels/ https://archive.cloudera.com/phoenix/6.2.0/csd/ # cdh001 CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1 cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm jdk-8u202-linux-x64.tar.gz manifest.json mysql-connector-java-5.1.40.jar PHOENIX-1.0.jar PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel.sha PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel # cdh002-004 cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm jdk-8u202-linux-x64.tar.gz mysql-connector-java-5.1.40.jar # cdh005 cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm jdk-8u202-linux-x64.tar.gz mysql-connector-java-5.1.40.jar mysql-community-client-5.7.31-1.el7.x86_64.rpm mysql-community-common-5.7.31-1.el7.x86_64.rpm mysql-community-devel-5.7.31-1.el7.x86_64.rpm mysql-community-libs-5.7.31-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm mysql-community-server-5.7.31-1.el7.x86_64.rpm
網絡上解決步驟各異,其實就一句話。 只要保證vm virtual machine的.vmx配置文件、ifconfig –a、/etc/sysconfig/network-scripts/ifcfg-eth0、/etc/udev/rules.d/70-persistent-net.rules, 所使用的網卡設備和MAC地址一致便可。
# 打開三臺虛擬機設置,查看 MAC 地址(若相同,則要生成新的) cdh001 00:50:56:20:4D:DB cdh002 00:50:56:21:A4:77 cdh003 00:50:56:33:50:65 cdh003 00:50:56:30:82:D0 cdh003 00:50:56:39:A8:83
# 執行 ONBOOT改成yes:啓動時會激活網卡 BOOTROTO設置爲static,表示靜態IP cd /etc/sysconfig/network-script vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 輸入 **reboot 重啓**三臺主機 # 輸入 ifconfig,查看ip是否正確 # 安裝 ifconfig yum search ifconfig yum install net-tools.x86_64 # 輸入 ping www.baidu.com 查看可否正確聯網,CTRL+C結束終止進程 # vim 安裝 yum -y install vim*
# 執行修改主機名 hostnamectl set-hostname cdh003 # 打開添加域名映射 vim /etc/hosts 192.168.64.151 cdh001 192.168.64.152 cdh002 192.168.64.153 cdh003 192.168.64.154 cdh004 192.168.64.155 cdh005
# 複製虛擬機並重覆上一步驟,每臺聯網 # 執行關閉命令 systemctl stop firewalld.service # 執行開機禁用防火牆自啓命令 systemctl disable firewalld.service
SELinux 是Linux的一種安全子系統(三種工做模式)
- 強制模式:違反規則,則制止,並記錄到日誌文件
- 寬容模式:違反規則,不制止,記錄到日誌文件
- 關閉linux
# 修改selinux的配置文件 vi /etc/selinux/config # 將其中的模式改成: SELINUX=disabled
爲何要免密登陸
Hadoop 節點衆多, 因此通常在主節點啓動從節點, 這個時候就須要程序自動在主節點登陸到從節點中, 若是不能免密就每次都要輸入密碼, 很是麻煩git
第一步:在三臺機器執行如下命令,生成公鑰與私鑰(按enter 3次)web
ssh-keygen -t rsa
三臺機器將拷貝公鑰到第一臺機器,三臺機器執行命令: ssh-copy-id cdh001
在第一臺機器上面執行如下命令 scp /root/.ssh/authorized_keys cdh002:/root/.ssh scp /root/.ssh/authorized_keys cdh003:/root/.ssh scp /root/.ssh/authorized_keys cdh004:/root/.ssh scp /root/.ssh/authorized_keys cdh005:/root/.ssh
# 安裝 yum -y install gcc python-devel cyrus-sasl* chrony iotop yum-utils yum-plugin-downloadonly psmisc ntp ntpdate httpd createrepo wget git rsync mod_ssl cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi libxslt krb5-devel cyrus-sasl-gssapi cyrus-sasl-devel libxml2-devel libxslt-devel openldap-devel python-devel python-simplejson sqlite-devel # 卸載 yum -y remove mariadb-libs # 時鐘同步 systemctl start ntpd systemctl enable ntpd
sysctl vm.swappiness=10 echo 'vm.swappiness=10'>> /etc/sysctl.conf echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
# 建立安裝目錄 mkdir /usr/java # 輸入以下指令到全部節點執行 tar -zxf jdk-8u202-linux-x64.tar.gz -C /usr/java/ cat << EOF >> /etc/profile export JAVA_HOME=/usr/java/jdk1.8.0_202 export PATH=\$PATH:\$JAVA_HOME/bin EOF source /etc/profile jps # 檢驗安裝版本 java -version
# 下載這6個MySQL的rpm包 mysql-community-client-5.7.31-1.el7.x86_64.rpm mysql-community-common-5.7.31-1.el7.x86_64.rpm mysql-community-devel-5.7.31-1.el7.x86_64.rpm mysql-community-libs-5.7.31-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm mysql-community-server-5.7.31-1.el7.x86_64.rpm # 在cdh005上執行運行(不清楚安裝包間是否相互依賴,儘可能按所給順序依次) yum -y localinstall mysql-community-common-5.7.31-1.el7.x86_64.rpm yum -y localinstall mysql-community-libs-5.7.31-1.el7.x86_64.rpm yum -y localinstall mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm yum -y localinstall mysql-community-devel-5.7.31-1.el7.x86_64.rpm yum -y localinstall mysql-community-client-5.7.31-1.el7.x86_64.rpm yum -y localinstall mysql-community-server-5.7.31-1.el7.x86_64.rpm # 啓動 systemctl start mysqld # 開機自啓動 systemctl enable mysqld # 查看臨時密碼 cat /var/log/mysqld.log | grep password # 臨時密碼填充到引號內,執行 mysql -uroot -p'ly0h!Gw4PyBk' # 取消mysql密碼規範限制 set global validate_password_policy=0; set global validate_password_length=1; # 首次登陸設置密碼 set password=password('123456'); # 退出 quit; # 登錄設置容許外網訪問當前的MySQL mysql -uroot -p'123456' use mysql; update user set host='%' where host='localhost'; delete from user where host != '%'; flush privileges; # 退出 quit; # 建立ClouderaManager須要用到的幾個數據庫 # 登入 mysql -uroot -p'123456' # 建立庫 create database cmf default character set = 'utf8'; create database amon default character set = 'utf8'; create database hive default character set = 'latin1'; create database hue default character set = 'utf8'; create database oozie default character set = 'utf8'; quit; # 全部節點執行 mv mysql-connector-java-5.1.40.jar mysql-connector-java.jar mkdir /usr/share/java mv mysql-connector-java.jar /usr/share/java/
# 軟件包 cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm # 所有節點安裝 daemons 和 agent(安裝最好逐條輸入,防止宕機) yum -y localinstall cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm yum -y localinstall cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm # cdh001 上安裝 server yum -y localinstall cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm # 至此,CM服務安裝完畢
# 移動CDH安裝包至 /opt/cloudera/parcel-repo/ 目錄 mv CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel* /opt/cloudera/parcel-repo/ # 移動PHOENIX‐1.0.jar 至 /opt/cloudera/parcel-repo/ 目錄 mv PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel* /opt/cloudera/parcel-repo/ # 移動 manifest.json 至 /opt/cloudera/parcel-repo/ 目錄 mv manifest.json /opt/cloudera/parcel-repo/ # 移動 PHOENIX-1.0.jar 至 /opt/cloudera/csd/ 目錄 mv PHOENIX-1.0.jar /opt/cloudera/csd/ # 檢驗 CDH parcel 包是否完整(parcel包在傳輸過程當中因網絡可能缺失) sha1sum CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel cat CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1 # 上面兩條命令獲得的值必須同樣 # sha1確認後改成sha mv CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1 CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha # 校驗 PHOENIX sha 包是否完整 sha1sum PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel cat PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel.sha
# cdh001上修改server vi /etc/cloudera-scm-server/db.properties # 顯示行號 : set nu # 12行去掉註釋把localhost改爲cdh005 # 15行去掉註釋 # 18行去掉註釋,把cmf改爲root # 21行去掉註釋,密碼那裏填寫123456 # 28行,INIT改成 EXTERNAL
# 所有節點修改agent vi /etc/cloudera-scm-agent/config.ini # 15行把localhost修改成cdh001
# 在cdh001上啓動server systemctl start cloudera-scm-server # 另開一個窗口,查看相關日誌。有異常就解決異常 tail -200f /var/log/cloudera-scm-server/cloudera-scm-server.log # 下面這個異常能夠忽略 ERROR ParcelUpdateService:com.cloudera.parcel.components.ParcelDownloaderImpl: Unable to retrieve remote parcel repository manifest # 在所有節點上啓動agent systemctl start cloudera-scm-agent # 當在 cdh001上 netstat -tunlp | grep 7180 有內容時,說明咱們能夠訪問web頁面 # 若域名映射失敗,打開本地hosts文件,添加映射 C:\Windows\System32\drivers\etc\hosts # 瀏覽器輸入 cdh001:7180,按照步驟進行安裝。
# 廣義上來講,Hadoop一般是指一個更普遍的概念——Hadoop生態圈 # 狹義上來講,Hadoop是指Apache這款開源框架,它的核心組件有: - HDFS(分佈式文件系統):解決海量數據存儲 - YARN (做業調度和集羣資源管理的框架):解決資源任務調度 - MAPREDUCE(分佈式運算編程框架):解決海量數據計算
Zookeeper入門看這篇
sql
它是一個分佈式服務框架,是Apache Hadoop 的一個子項目,它主要是用來解決分佈式應用中常常遇到的一些數據管理問題. 如:統一命名服務、狀態同步服務、集羣管理、分佈式應用配置項的管理等。
Yarn 詳解shell
資源管理、任務調度的框架,主要包含三大模塊: - ResourceManager(RM):負責全部資源的監控、分配和管理 - ApplicationMaster(AM):負責每個具體應用程序的調度和協調 - NodeManager(NM):負責每個節點的維護
Hive 高級應用數據庫
是基於Hadoop的一個數據倉庫工具,能夠將結構化的數據文件映射爲一張數據庫表,並提供類SQL查詢功能
使用Scala語言編寫,是一個分佈式,分區的,多副本,多訂閱者的消息隊列系統。
當您須要對大數據進行隨機,實時的讀/寫訪問時。 Hbase是一種分佈式存儲的數據庫,技術上來說,它更像是分佈式存儲而不是分佈式數據庫,它缺乏不少RDBMS系統的特性,好比列類型,輔助索引,觸發器,和高級查詢語言等待。
Phoenix是一個開源的HBASE SQL層。它不只可使用標準的JDBC API替代HBASE client API建立表,插入和查詢HBASE,也支持二級索引、事物以及多種SQL層優化。
Impala 是參照google 的新三篇論文Dremel(大批量數據查詢工具)的開源實現,功能相似shark(依賴於hive)和Drill(apache),impala 是clouder 公司主導開發並開源,基於 hive並使用內存進行計算,兼顧數據倉庫,具備實時,批處理,多併發等優勢。是使用cdh 的首選PB 級大數據實時查詢分析引擎。(也能夠單獨安裝使用,但通常都是和CDH一塊兒使用;)
簡單來講:kudu是一個與hbase相似的列式存儲分佈式數據庫。 官方給kudu的定位是:在更新更及時的基礎上實現更快的數據分析
- Oozie是大數據四大協做框架之一——任務調度框架,另外三個分別爲數據轉換工具Sqoop,文件收集庫框架Flume,大數據WEB工具Hue。 - 它可以提供對Hadoop MapReduce和Pig Jobs的任務調度與協調。 - Oozie須要部署到Java Servlet容器中運行。 - 功能類似的任務調度框架還有Azkaban和Zeus。
是cdh專門的一套web管理器,它包括3個部分hue ui,hue server,hue db。hue提供全部的cdh組件的shell界面的接口。 你能夠在hue編寫mr,查看修改hdfs的文件,管理hive的元數據,運行Sqoop,編寫Oozie工做流等大量工做。
# 測試語句 create table if not exists t1(id int,name string,score double) row format delimited fields terminated by ',' stored as parquet; select count(*) from t1; # 執行 按 Ctrl+enter
# 按左側刷新 # 執行測試語句 create table t2 ( name string, dt string, primary key(name,dt) ) partition by hash partitions 16 stored as kudu tblproperties ( 'kudu.master_addresses' = 'cdh001:7051' ); # 插入數據 insert into t2 values('zhangsan','2020‐05‐06'); # 查詢 select count(*) from t2; select * from t2;
# phoenix 在linux上操做,選一臺機器,輸入 phoenix-sqlline # 執行建表 create table if not exists t1( id Integer, name varchar, clazz varchar, score double constraint pk primary key(id) ); # !tables 顯示全部表 # 插入數據 upsert into t1 values(1001,'zhangsan','606',87.5); # 退出 !quit
yum clean all yum makecache
更改ISO爲centOS7
安裝失敗。 沒法接收 Agent 發出的檢測信號。 請確保主機的名稱已正確配置。 請確保端口 7182 可在 Cloudera Manager Server 上訪問(檢查防火牆規則)。 請確保正在添加的主機上的端口 9000 和 9001 空閒。 檢查正在添加的主機上 /var/log/cloudera-scm-agent/ 中的代理日誌(某些日誌可在安裝詳細信息中找到)。 若是在 Cloudera Manager 中啓用爲代理使用 TLS 加密(管理 -> 設置 -> 安全),請確保 /etc/cloudera-scm-agent/config.ini在正在添加的主機上有 use_tls=1。重啓相應的代理,並單擊此處的重試連接。 解決:網上說是 由於開啓了Auto-TLS致使了沒法接收 Agent 發出的檢測信號,重裝時不開啓Auto-TLS 本人折騰許久,換了個安裝視頻重裝
此篇必有成功後續(在我進公司,有云服務器後),步驟沒有錯。
# 數據量很大,須要流處理的 - 能夠考慮 impala+kudu ,將數據存在kudu上,用impala創建,對kudu進行數據分析 - HBase 作存儲,HIVE對其進行分析 或者 phoenix 對其進行分析 # 傳統數倉項目(主要是離線數據分析) - Hive 作查詢,HDFS上以 Parquet 格式存儲,HIVE進行數據的插入更新,在YARN上進行操做。 - impala用Hive的源數據對HDFS上的數據進行分析
搭建過程來源於B站視頻,十分感謝UP主的分享!!!