CDH 部署 Hadoop:5.開始安裝


Cloudera Enterprise 6.2.x   或者參考https://blog.csdn.net/shawnhu007/article/details/52579204

第零步:優化相關

echo 'vm.swappiness = 10' >> /etc/sysctl.conf sysctl -p ## 禁用透明大頁面壓縮 echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled

第一步:配置網絡名稱

https://www.cloudera.com/documentation/enterprise/6/6.2/topics/configure_network_names.html#configure_network_names

CDH 支持 IPv4,不支持 IPv6

1.設置唯一的主機名

hostnamectl set-hostname foo-1.example.com

2.編輯 /etc/hosts

每個主機名的規范名稱必須是 FQDN(例如:myhost-1.example.com),而不應該是不合格的主機名(例如:myhost-1)

不要在 /etc/hosts 或 DNS 服務器中使用別名

非限定主機名(短名稱)在 Cloudera Manager 實例中必須是唯一的。例如,您不能同時擁有 test.baidu.com 和 test.163.com

vim /etc/hosts
1.1.1.1 foo-1.example.com foo-1 2.2.2.2 foo-2.example.com foo-2 3.3.3.3 foo-3.example.com foo-3 4.4.4.4 foo-4.example.com foo-4

3.編輯 /etc/sysconfig/network 為此主機的 FQDN

sed -i '/HOSTNAME/d' /etc/sysconfig/network echo "HOSTNAME=`hostname`" >> /etc/sysconfig/network cat /etc/sysconfig/network

4.驗證設置

## a.使用 uname -a 命令查看是否有輸出匹配的主機名 ## b.運行 /sbin/ifconfig 命令,請注意 inet addr 在 eth0 or bond0 中的地址 ## c.運行 host -v -t A $(hostname) 命令輸出內容是否匹配主機名,IP地址部分應該跟 ifconfig 所報告的相匹配

第二步:禁用防火牆和 SELinux

https://www.cloudera.com/documentation/enterprise/6/6.2/topics/install_cdh_disable_iptables.html

setenforce 0
sed -i -r "/^SELINUX=/c SELINUX=disabled" /etc/selinux/config which systemctl && systemctl stop firewalld which systemctl && systemctl disable firewalld which systemctl && systemctl stop iptables || service iptables stop which systemctl && systemctl disable iptables || chkconfig iptables off

第三步:啟用 NTP 服務

https://www.cloudera.com/documentation/enterprise/6/6.2/topics/install_cdh_enable_ntp.html

CDH 要求集群中的每台計算機都配置 NTP 服務,REHL7兼容操作系統默認使用 chronyd 而不是 NTPD

如果你系統上有同時安裝 NTPD 和 chronyd,Cloudera Manager依賴 chronyd驗證時間同步,即使它沒有正確同步

1.安裝chrony並配置(時間同步客戶端)

yum install -y chrony

# 修改前備份chrony.conf /bin/grep 666666 /etc/chrony.conf && /bin/cp /etc/chrony.conf.666666 /etc/chrony.conf || /bin/cp /etc/chrony.conf /etc/chrony.conf.666666 # 刪除默認Server sed -i "/server/d" /etc/chrony.conf sed -i "/makestep/d" /etc/chrony.conf # 新增阿里雲服務器 echo "server ntp.aliyun.com iburst" >>/etc/chrony.conf echo "makestep 1.0 -1" >>/etc/chrony.conf

2.重啟服務並查看狀態是否正常並設置開機自動啟動

systemctl enable chronyd systemctl restart chronyd systemctl status chronyd chronyc tracking

3.常用命令:

# 查看時間同步源: chronyc sources -v # 查看時間同步源狀態: chronyc sourcestats -v # 啟用NTP時間同步: timedatectl set-ntp yes # 校准時間服務器: chronyc tracking # 強制同步下系統時鍾 chronyc -a makestep

第四步:安裝 Python2.7

https://www.cloudera.com/documentation/enterprise/6/6.2/topics/install_python_27.html

CDH6中的 Hue 需要 Python2.7,默認情況下他已經包含在 REHL7

兼容 REHL6的操作系統默認包含 Python2.6,在安裝或升級到 Cloudera Enterprise 6 之前,必須在所有 Hue 主機上安裝 Python2.7

第五步:配置本地 YUM 庫

https://www.cloudera.com/documentation/enterprise/6/6.2/topics/cm_ig_create_local_package_repo.html

1.設置 Web 服務器

yum install -y httpd systemctl enable httpd systemctl stop httpd systemctl start httpd systemctl status httpd

2.下載並發布包存儲庫

## Cloudera Manager 6 mkdir -p /var/www/html/cloudera-repos wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/cm6/6.2.0/redhat7/ -P /var/www/html/cloudera-repos wget https://archive.cloudera.com/cm6/6.2.0/allkeys.asc -P /var/www/html/cloudera-repos/cm6/6.2.0/ ## CDH 6 mkdir -p /var/www/html/cloudera-repos wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/cdh6/6.2.0/redhat7/ -P /var/www/html/cloudera-repos wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/gplextras6/6.2.0/redhat7/ -P /var/www/html/cloudera-repos chmod -R ugo+rX /var/www/html/cloudera-repos/cdh6 chmod -R ugo+rX /var/www/html/cloudera-repos/gplextras6

3.配置主機以使用內部存儲庫

cat <<\EOF >/etc/yum.repos.d/cloudera-repo.repo
[cloudera-repo]
name=cloudera-repo
baseurl=http://192.168.100.66/cloudera-repos/cm6/6.2.0/redhat7/yum
enabled=1
gpgcheck=0
EOF

第六步:配置本地 Parel 存儲庫

https://www.cloudera.com/documentation/enterprise/6/6.2/topics/cm_ig_create_local_parcel_repo.html

1.設置 Web 服務器

1.安裝 httpd

yum install -y httpd

2.編輯 Apache HTTP Server配置文件

當嘗試從本地存儲庫下載包時,跳過此步驟可能會導致哈希驗證失敗的錯誤,尤其在 Cloudera Manager 6 及更高的版本中

## 在 IfModule mime_module 部分添加以下行
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak vim /etc/httpd/conf/httpd.conf AddType application/x-gzip .gz .tgz .parcel

2.啟動 Start Apache HTTP Server

systemctl enable httpd systemctl stop httpd systemctl start httpd systemctl status httpd

3.下載和發布 Parcel 倉庫

1.下載 CDH6

## Apache Impala, Apache Kudu, Apache Spark 2, and Cloudera Search 包含在 CDH parcel mkdir -p /var/www/html/cloudera-repos wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/cdh6/6.2.0/parcels/ -P /var/www/html/cloudera-repos wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/gplextras6/6.2.0/parcels/ -P /var/www/html/cloudera-repos chmod -R ugo+rX /var/www/html/cloudera-repos/cdh6 chmod -R ugo+rX /var/www/html/cloudera-repos/gplextras6

2.下載 Apache Accumulo for CDH

mkdir -p /var/www/html/cloudera-repos wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/accumulo-c5/parcels/1.7.2/ -P /var/www/html/cloudera-repos chmod -R ugo+rX /var/www/html/cloudera-repos/accumulo-c5

3.下載 CDS Powered By Apache Spark 2 for CDH

mkdir -p /var/www/html/cloudera-repos wget --recursive --no-parent --no-host-directories https://archive.cloudera.com/spark2/parcels/2.3.0.cloudera3/ -P /var/www/html/cloudera-repos chmod -R ugo+rX /var/www/html/cloudera-repos/spark2

4.下載 Cloudera Navigator Key Trustee Server

5.下載 Cloudera Navigator Key Trustee KMS and HSM KMS

6.Sqoop Connectors

mkdir -p /var/www/html/cloudera-repos wget --recursive --no-parent --no-host-directories http://archive.cloudera.com/sqoop-connectors/parcels/latest/ -P /var/www/html/cloudera-repos chmod -R ugo+rX /var/www/html/cloudera-repos/sqoop-connectors

7.驗證已下載文件是否存在

訪問以下地址,驗證您下載的文件是否存在
http://192.168.100.66/cloudera-repos

4.使用本地 Parcel 倉庫

1.打開 Cloudera Manager Admin Console 並導航到 Parcels 頁面

2.選在“”

Cloudera Enterprise 6.2.x

第一步:配置存儲庫

https://www.cloudera.com/documentation/enterprise/6/6.2/topics/configure_cm_repo.html#cm_repo

方法1:使用官方 YUM 庫

## 下載 repo 文件 wget https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/ ## 導入 GPG 密鑰 rpm --import https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPM-GPG-KEY-cloudera

方法2:使用上一步建議的本地 YUM 倉庫

cat <<\EOF >/etc/yum.repos.d/cloudera-repo.repo
[cloudera-repo]
name=cloudera-repo
baseurl=http://192.168.100.66/cloudera-repos/cm6/6.2.0/redhat7/yum
enabled=1
gpgcheck=0
EOF

第二步:安裝 JDK 環境

https://www.cloudera.com/documentation/enterprise/6/6.2/topics/cdh_ig_jdk_installation.html

- 要求:

JDK 必須是64位,不要使用32位 JDK 必須將 JDK 安裝在 /usr/java/jdk-version 集群的所有主機必須安裝相同版本的 JDK

- 經過測試和推薦的 Oracle JDK8 版本

1.8u181 Recommended / Latest version tested(推薦/最后測試版本) 1.8u162 Recommended(推薦) 1.8u141 Recommended(推薦) 1.8u131 Recommended(推薦) 1.8u121 Recommended(推薦) 1.8u111 Recommended(推薦) 1.8u102 Recommended(推薦) 1.8u91 Recommended(推薦) 1.8u74 Recommended(推薦) 1.8u31 Minimum required(最低要求)

- 使用 Cloudera Manager 安裝 Oracle JDK

yum install -y oracle-j2sdk1.8

第三步:安裝 Cloudera Manager Server

在Cloudera Manager Server主機上,鍵入以下命令以安裝Cloudera Manager軟件包

yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

第四步:安裝和配置數據庫

Cloudera Manager使用各種數據庫和數據存儲來存儲有關Cloudera Manager配置的信息,以及諸如系統運行狀況或任務進度等信息。

雖然您可以在單個環境中部署不同類型的數據庫,但這樣做可能會產生意外的復雜情況。Cloudera建議為所有Cloudera數據庫選擇一個受支持的數據庫提供程序。

- 需要數據庫的組件

Cloudera Manager Server:
    包含有關配置的服務及角色分配、所有配置歷史記錄、命令、用戶和正在運行的進程的所有信息
    這個數據庫相對較小(<100MB),但是非常重要
    重啟進程時,將使用 Cloudera Manager Server 數據庫中保存的信息重新部署每個服務的配置 如果此信息不可用,則集群會無法啟動或正常運行,所以務必安排並維護 Cloudera Manager Server 數據庫的定期備份 Oozie Server: 包含 Oozie workflow, coordinator, and bundle data。可以增長到很大 Sqoop Server: 包含 entities such as the connector, driver, links and jobs。相對較小 Activity Monitor:活動監控 包含過去活動的信息,在大型集群中,此數據庫可能會變的很大。只有部署了 MapReduce 服務,才需要配置活動監視數據庫 Reports Manager: 跟蹤磁盤利用率和處理活動的歷史記錄。中型 Hive Metastore Server: 包含 Hive metadata。相對較小 Hue Server: 包含 用戶賬戶信息、作業提交和 Hive 查詢。相對較小 Sentry Server: 包含授權元數據。相對較小 Cloudera Navigator Audit Server:審計服務 包含審計信息。在大型集群中,此數據庫可能會變的很大 Cloudera Navigator Metadata Server:元數據服務 包含授權、策略和審計報告元數據。相對較小 Host Monitor and Service Monitor services 使用本地磁盤存儲數據。

1.安裝 MySQL 數據庫

https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

安裝MySQL 5.7或更高版本后,請 不要運行mysql_secure_installation,因為Yum存儲庫安裝已經執行了該程序的功能

## 1.設置存儲庫 cat <<\EOF >/etc/yum.repos.d/mysql-community.repo [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql EOF  ## 2.安裝 MySQL ## 這將安裝MySQL server(mysql-community-server)的包以及運行服務器所需組件的包,包括client(mysql-community-client)的包,客戶端和服務器的常見錯誤消息和字符集(mysql-community-common)以及共享客戶端庫(mysql-community-libs) yum install -y mysql-community-server  ## 3.啟動並設置開機自動啟動 systemctl enable mysqld.service systemctl stop mysqld.service systemctl start mysqld.service systemctl status mysqld.service  ## 4.更改初始密碼 grep 'temporary password' /var/log/mysqld.log mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'Xiaoliu123!';

2.修改配置以使其適用於Cloudera Manage

少於50台主機,你可以在同一主機上存儲多個數據庫(例如活動監視器和服務器監視器)。如果這樣做,需要將每個數據庫放在自己的存儲卷上,為每個數據庫 允許100最大連接,然后添加50個額外連接。 例如對於兩個數據庫,將最大連接數設置為250,如果一個主機上存儲5個數據庫(the databases for Cloudera Manager Server, Activity Monitor, Reports Manager, Cloudera Navigator, and Hive metastore),請將最大連接數設置為550

如果超過50台主機,不要再同一個主機上存儲多個數據庫,為每個數據庫使用單獨的主機

## 以下為 Cloudera 推薦的配置文件示例 cat <<\EOF > /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock ## 防止死鎖,將隔離級別設置為 讀提交 transaction-isolation = READ-COMMITTED # Disabling symbolic-links is recommended to prevent assorted security risks; # to do so, uncomment this line: ## 是否支持符號鏈接,即數據庫或表可以存儲在my.cnf中指定datadir之外的分區或目錄,0不開啟 symbolic-links = 0 #In later versions of MySQL, if you enable the binary log and do not set #a server_id, MySQL will not start. The server_id must be unique within #the replicating group. ## 指定 server_id server_id=1 key_buffer_size = 32M max_allowed_packet = 32M thread_stack = 256K thread_cache_size = 64 query_cache_limit = 8M query_cache_size = 64M query_cache_type = 1 ## 最大連接 max_connections = 550 #expire_logs_days = 10 #max_binlog_size = 100M ## 定義日志 bin log 日志路徑 #log_bin should be on a disk with enough free space. #Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your #system and chown the specified folder to the mysql user. log_bin=/var/lib/mysql/mysql_binary_log ## 日志格式為混合模式 binlog_format = mixed read_buffer_size = 2M read_rnd_buffer_size = 16M sort_buffer_size = 8M join_buffer_size = 8M # InnoDB settings innodb_file_per_table = 1 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 64M innodb_buffer_pool_size = 4G innodb_thread_concurrency = 8 ## Management Service 需要寫入高吞吐量,建議設置此項 ## innodb使用O_DIRECT打開數據文件,使用fsync()刷寫數據文件跟redo log innodb_flush_method = O_DIRECT innodb_log_file_size = 512M [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid sql_mode=STRICT_ALL_TABLES EOF

3.安裝 MySQL JDBC Driver

在 Cloudera Manager Server 主機上和所有需要數據庫訪問的主機上安裝 JDBC 驅動

Cloudera建議僅使用JDBC驅動程序的5.1版

## 1.下載 MySQL JDBC driver ## https://dev.mysql.com/downloads/connector/j/5.1.html wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz ## 2.解壓 tar zxvf mysql-connector-java-5.1.47.tar.gz ## 3.將重命名的 JDBC 驅動文件 COPY 到 /usr/share/java/ 目錄 mkdir -p /usr/share/java/ cd mysql-connector-java-5.1.47 cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

4.為 Cloudera Manager 創建數據庫和用戶

Databases for Cloudera Software

Service                             Database        User Cloudera Manager Server scm scm Activity Monitor amon amon Reports Manager rman rman Hue hue hue Hive Metastore Server metastore hive Sentry Server sentry sentry Cloudera Navigator Audit Server nav nav Cloudera Navigator Metadata Server navms navms Oozie oozie oozie

創建數據庫和用戶,並對用戶權限做授權

mysql -u root -p

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'Xiaoliu123!'; GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'Xiaoliu123!'; exit;

你可以使用以下命令查看創建的數據庫

SHOW DATABASES;

查看用戶授權

SHOW GRANTS FOR '<user>'@'%';

第五步:設置 Cloudera Manager 數據庫

https://www.cloudera.com/documentation/enterprise/6/6.2/topics/prepare_cm_database.html

Cloudera Manager Server包含一個可以為自己創建和配置數據庫的腳本。該腳本可以:

創建Cloudera Manager Server數據庫配置文件
(MariaDB,MySQL和PostgreSQL)為Cloudera Manager Server創建和配置數據庫以供使用
(MariaDB,MySQL和PostgreSQL)為Cloudera Manager Server創建和配置用戶帳戶

/opt/cloudera/cm/schema/scm_prepare_database.sh <databaseType> <databaseName> <databaseUser> 示例:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm <databaseType> 輸入后端數據庫類型 <databaseName> 上邊為Cloudera Manager Server建立的數據庫名 <databaseUser> 此數據庫賬號 回車后根據提示輸入 scm 賬號的密碼 此腳本將創建數據庫配置文件: /etc/cloudera-scm-server/db.properties

第六步:安裝 CDH 和 其他軟件

https://www.cloudera.com/documentation/enterprise/6/6.2/topics/install_software_cm_wizard.html

1.啟動 Cloudera Manager Server

設置Cloudera Manager數據庫后,啟動Cloudera Manager Server,然后登錄Cloudera Manager Admin Console:

systemctl enable cloudera-scm-server systemctl stop cloudera-scm-server systemctl start cloudera-scm-server systemctl status cloudera-scm-server

2.觀察啟動過程

tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log ## 當出現以下信息說明啟動完畢 INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server. ## 如果啟動失敗,請參考以下網頁進行排錯 https://www.cloudera.com/documentation/enterprise/6/6.2/topics/cm_ig_troubleshooting.html#cmig_topic_19

3.登錄 Cloudera Manager Admin Console

Cloudera Manager 不支持已安裝的 admin 用戶,但是你可以添加新用戶並添加管理權限后刪除 admin 賬戶。

http://<server_host>:7180 Username: admin Password: admin 1.歡迎界面,點【繼續】 2.許可協議,選【接受】 3.顯示許可證信息,點【繼續】后進入添加集群向導

4.集群向導

1.歡迎頁面

Adding a cluster in Cloudera Manager consists of two steps. 在Cloudera Manager中添加群集包含兩個步驟。 Add a set of hosts to form a cluster and install Cloudera Manager Agent software and CDH. 添加一組主機以形成群集並安裝Cloudera Manager Agent軟件和CDH。 Select and configure CDH services to run on this cluster. 選擇並配置CDH服務以在此群集上運行。

2.Cluster Basics - 群集基礎知識

群集名稱:為集群起個名字

    A Regular Cluster contains storage nodes, compute nodes, and other services such as metadata and security collocated in a single cluster. 常規群集包含存儲節點,計算節點和其他服務,例如在單個群集中並置的元數據和安全性。

3.Specify Hosts - 指定主機

在這里輸入需要安裝服務的主機名稱或IP地址 可以使用“,”或不同的行來指定多個地址或地址范圍 建議同時將 Cloudera Manager Server 一同加入,這將啟用對該主機的狀況監控 Cloudera Manager Server 主機需要提前跟需要被安裝主機做好 SSH 互信或者在下一步提供遠程主機的 root 密碼 這里可以使用通配符: 10.1.1.[1-4] 10.1.1.1, 10.1.1.2, 10.1.1.3, 10.1.1.4 host[1-3].example.com host1.example.com, host2.example.com, host3.example.com host[07-10].example.com host07.example.com, host08.example.com, host09.example.com, host10.example.com

4.選擇存儲庫

要點:您無法在同一群集中使用parcel和包安裝軟件。

此步驟需要在目標主機安裝 Cloudera Manager Agent

存儲庫選擇
    已經自動將前邊我們在 Cloudera Manager Server 自定義的本地 YUM 倉庫信息填入了 CDH and other software: 這里可以選擇需在目標主機安裝的角色

5.JDK 安裝選項

選擇:
    安裝 Oracle Java SE 開發工具包 (JDK) 安裝 Java 無限制強度加密政策文件

6.提供 SSH 登錄憑據

這里可以選擇為所有主機接受相同密碼和所有主機接受相同私鑰,根據自己情況選擇

7.Install Agents

等待安裝完成

8.Install Parcels

選定的 Parcel 正在下載並安裝在群集的所有主機上。等待下載完成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM