超詳細!搭建本地大數據研發環境(16G內存+CDH)

工欲善其事必先利其器,在經過大量的理論學習以後,需要有一個本地的研發環境來進行練手。已經工作的可以不依賴於公司的環境,在家也可以隨意的練習。而自學大數據的同學,也可以進行本地練習,大數據是一門偏實踐的學科,在找工作之前進行一些實踐操作,也更利於對大數據知識的理解。

本文將從頭開始詳細的記錄整個大數據環境的搭建過程,本文所使用的筆記本電腦內存爲16G,將使用CDH6.3.2管理整個大數據集羣。

由於cloudera官網從2021年2月1日起全面移除的非訂閱用戶的下載鏈接,所以本文所有的安裝包都已經備份,可以關注 大數據流動 回覆 CDH16G 獲取。

本文共四個部分,一定要保證每一個部分都安裝成功以後再向下進行。

首先要安裝好VMwareWorkstation軟件,隨後新建三臺centos系統的虛擬機,在三臺虛擬機中搭建CDH大數據管理工具,最後使用CDH搭建大數據集羣。

一、安裝VMwareWorkstation虛擬化軟件

首先我們使用VMwareWorkstation來快速的進行虛擬機的新建。VMwareWorkstation是一款功能強大的桌面虛擬計算機軟件,我們使用的版本爲VMwareWorkstation 16.1.2。

1、打開安裝程序,點擊下一步。

2、選擇接受條款,點擊下一步。

3、修改安裝路徑,增強型虛擬鍵盤主要作用是提高安全性,這裏不勾選。點擊下一步。

4、將檢查更新和體驗提升都去掉,點擊下一步。

5、快捷方式看自己的情況選擇吧,點擊下一步。

6、點擊安裝,開始進行虛擬機安裝。

7、安裝完成後點擊 許可證 用註冊機生成的密鑰進行產品激活。

8、點擊完成,大功告成。VMwareWorkstation就成功安裝並激活了。

這樣,第一部分VMwareWorkstation軟件已經搭建完成。

二、新建三臺Centos虛擬機

首先準備Centos7的鏡像文件,CentOS-7-x86_64-DVD-1908.iso。

請注意三臺虛擬機的CPU初次設置爲1核,內存設置爲4G(這樣虛擬機佔用12G,留出一些空間),硬盤爲20G,這些以後也是可以修改的。

新建虛擬機

1、打開VMwareWorkstation,選擇新建虛擬機

2、選擇自定義安裝,點擊下一步。

3、這裏不用修改,是VMware的版本和一些限制說明,點擊下一步。

4、這裏先選擇稍後安裝操作系統,點擊下一步。

5、選擇系統爲Linux,版本爲Centos7 64位,點擊下一步。

6、修改虛擬機名稱,位置,點擊下一步。

7、CPU默認爲1核,點擊下一步。

8、內存設置爲4GB,點擊下一步。

9、網絡使用默認的NAT,點擊下一步。

10、I/O 使用默認

11、磁盤類型默認

12、創建新的虛擬磁盤

13、設置磁盤大小爲20GB

14、默認文件名

15、最後可以看到這些設置,點擊完成。

16、虛擬機新建完成,可以繼續編輯虛擬機,將安裝鏡像掛載。

安裝Centos系統

1、開啓此虛擬機

注意:點擊進入虛擬機操作,要退出來的話使用 Ctrl + Alt

2、選擇安裝centos7

選擇語言

進行基本設置

設置密碼 Bigdataflowing

提示重啓電腦

等待安裝完成,完成後重啓。進入操作系統

設置虛擬機網絡

此時的虛擬機是無法上網的,需要對網絡進行設置。

首先設置主機的網絡共享,再看一下vnet8的網絡ip,我的是192.168.137.0

在vmvare的虛擬網絡編輯器中,設置ip

進入虛擬機進行網卡設置

進入網卡設置目錄
cd /etc/sysconfig/network-scripts/
設置網卡
vi ifcfg-ens33
設置如下(重點是下面幾個設置,固定IP)
BOOTPROTO=static
IPADDR=192.168.137.101
NETMASK=255.255.255.0
GATEWAY=192.168.137.1
ONBOOT=yes

設置完成後重啓網卡
service network restart
重啓後驗證上網情況
ping www.baidu.com

xshell遠程連接機器

一直在虛擬機裏操作是不方便的,所以我們通過xshell進行遠程連接。網絡已通,所以我們用用戶名密碼連接即可。

上面操作完成後,我們可以使用vmvare的克隆功能,快速的複製出其他兩臺虛擬機。不過要記得複製完以後。進入系統把ip修改爲不同的地址。

克隆虛擬機

克隆自 虛擬機中的當前狀態

完整克隆

克隆完成後,修改node02和node03的網絡設置。

進入網卡設置目錄
cd /etc/sysconfig/network-scripts/
設置網卡
vi ifcfg-ens33
設置如下(node02改成192.168.137.102   node03改成192.168.137.103 )
IPADDR=192.168.137.101

此時將三臺虛擬機開啓,最終的效果三臺虛擬機正常運行,xshell可以遠程同時操作這三臺機器。

這樣第二部分,三臺centos虛擬機新建完成,下面我們可以進行CDH環境的安裝了。

三、使用CDH搭建Hadoop集羣環境

CDH(Cloudera’s Distribution, including Apache Hadoop),是Hadoop衆多分支中的一種,由Cloudera維護,基於穩定版本的Apache Hadoop構建,並集成了很多補丁,可直接用於生產環境。

我們使用CDH6.3.2的版本進行安裝。

CDH分爲Cloudera Manager管理平臺和CDH parcel(parcel包含各種組件的安裝包),需要先安裝CM,再安裝parcel。

CM 6.3.1,CDH 6.3.2 (6.3.3版本及以上的要收費了)

組件版本支持情況

https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_63_packaging.html#cdh_630_packaging

準備工作

1、修改文件打開限制

vi /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* soft nproc 131072

2、關閉防火牆

systemctl disable firewalld
systemctl stop firewalld

3、修改主機名及hosts

依次修改主機名
vi /etc/hostname
修改hosts文件

vi /etc/hosts
192.168.137.101 node01
192.168.137.102 node02
192.168.137.103 node03
生效
source /etc/hosts

4、免密設置

node01 設置

ssh-keygen -t rsa
一路回車
ssh-copy-id node02
ssh-copy-id node03
輸入密碼

5、安裝jdk

scp jdk-8u221-linux-x64.rpm node02:/opt/
scp jdk-8u221-linux-x64.rpm node03:/opt/

rpm -ivh jdk-8u221-linux-x64.rpm

java -version

vim /etc/profile

# 末尾追加以下內容
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

source /etc/profile

echo $JAVA_HOME

6、關閉selinux

//臨時生效selinux設置
setenforce 0
//修改配置文件
vi /etc/selinux/config
把SELINUX=enforcing修改爲SELINUX=disabled

7、安裝ntp服務

// 安裝 ntp 服務
yum install -y ntp
 
// 開啓並設置開機自啓ntp服務
systemctl start ntpd
systemctl enable ntpd
 
// 查看ntp服務狀態
systemctl status ntpd

8、node01安裝Mysql

移除mariadb  
yum remove mariadb-libs.x86_64

wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

yum localinstall ./mysql80-community-release-el7-1.noarch.rpm

yum install mysql-community-server

service mysqld start 

# 查看臨時密碼
grep 'temporary password' /var/log/mysqld.log


# 登錄
mysql -uroot -p
# 輸入剛纔的密碼


ALTER USER 'root'@'localhost' IDENTIFIED BY 'Bigdataflowing@123';
# 新建scm用戶
CREATE USER 'scm'@'%' IDENTIFIED BY 'Bigdataflowing@123';
grant all privileges on *.* to 'scm'@'%' with grant option;
flush privileges;

新建CDH所需的數據庫:

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE reports DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

create user 'root'@'localhost' identified by  'Bigdataflowing@123';
grant all privileges on *.* to 'root'@'%' with grant option;

flush privileges; 

9、各節點準備mysql8的驅動

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz

tar -zxf mysql-connector-java-5.1.46.tar.gz

mkdir /usr/share/java/

cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

安裝CDH

1、配置本地yum源

node01 安裝httpd createrepo並設置開機自啓動:
yum -y install httpd createrepo
systemctl start httpd
systemctl enable httpd

將包放在目錄下
mkdir -p /var/www/html/cloudera-repos/cm6
將文件傳入此目錄下
createrepo .


配置本地yum源
備份  cp -r /etc/yum.repos.d  /etc/yum.repos.d.bak
cd /etc/yum.repos.d/
vim cloudera-manager.repo

[cloudera-manager]
name=Cloudera Manager 6.3.1
baseurl=http://node01/cloudera-repos/cm6
gpgcheck=0
enabled=1

yum clean all && yum makecache

驗證成功,瀏覽器訪問 http://192.168.127.101/cloudera-repos/cm6/

分發包
scp -r cloudera-manager.repo root@node02:$PWD
scp -r cloudera-manager.repo root@node03:$PWD
其他節點
yum clean all && yum makecache

node01安裝cloudera manager server

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

安裝完CM後/opt/ 下會出現cloudera目錄,上傳cdh parcel 文件到/opt/cloudera/parcel-repo/


chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*

初始化數據庫

cd /opt/cloudera/cm/schema/   
./scm_prepare_database.sh -h localhost -P 3306 mysql scm scm Bigdataflowing@123

成功消息
[main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!

3、node02 node03安裝agent

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

配置Agent文件:vim /etc/cloudera-scm-agent/config.ini

將 server_host=localhost

更改爲: server_host=node01

啓動

server 和agent 一起啓動,報錯看log /var/log/cloudera-scm-server

node01

systemctl start cloudera-scm-server
systemctl enable cloudera-scm-server

node02 node03

systemctl start cloudera-scm-agent & systemctl enable cloudera-scm-agent

訪問網址 http://192.168.137.101:7180/cmf/login成功!

賬號密碼 admin/admin

那麼CDH管理工具已經安裝完成,下面我們使用CDH安裝Hadoop集羣環境。

四、安裝部署HADOOP大數據集羣

開始安裝

同意條款

選擇安裝版本,可以選擇試用或者免費版

開始安裝,輸入集羣名稱

選擇主機

這裏有坑,直接選擇後邊沒法改存儲庫

這裏可以點上方按鈕進入主頁,先刪除主機,再加回來

按下面設置好,大部分已經默認

JDK已經安裝 不用選

機器賬號密碼

這裏會做一些檢測,基本是一些警告,選擇 i understand 繼續。

下面進入到組件的安裝,由於內存有限,我們選擇自定義服務,先只安裝hdfs和hive,zookeeper,其他的組件後續也可以增加。

要設置節點的分配,儘量平均就可以。

這裏全部連node01的mysql庫

一些hdfs設置,可以默認

等待安裝中。。

安裝基本完成。

安裝完成!可以愉快的玩耍了。

再提醒一下

由於cloudera官網從2021年2月1日起全面移除的非訂閱用戶的下載鏈接,所以本文所有的安裝包都已經備份,可以關注 大數據流動 回覆 CDH16G 獲取。

踩坑大全

1、客戶機操作系統已禁用 CPU,請關閉或重置虛擬機。

大部分是Vmvare版本及鏡像問題,使用Vmvare16.1.2版本

2、mysql版本:'for the right syntax to use near 'identified by 'password' with grant option'

問題分析:mysql版本8.0.13,在給新用戶授權時,發生了變化:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'password' with grant option' at line 5, Time: 0.000000s

出錯的語句:

grant all privileges on . to 'root'@'172.16.10.203' identified by 'password' with grant option

修正後的語句:分開三次執行

創建賬戶

create user 'root'@'172.16.10.203' identified by 'password'

賦予權限,with grant option這個選項表示該用戶可以將自己擁有的權限授權給別人

grant all privileges on . to 'root'@'172.16.10.203' with grant option

改密碼&授權超用戶,flush privileges 命令本質上的作用是將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存裏

flush privileges;

3、missing requires of libmysqlclient.so.18()(64bit)

錯誤提示安裝依賴的庫文件沒有找到: libmysqlclient.so.18()(64bit)

解決:
缺少Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm這個包

wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

4、cm啓動後無法訪問

centos7會開啓ipv6,需要禁用掉

vi /etc/default/grub

GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"

grub2-mkconfig -o /boot/grub2/grub.cfg

5、Parcel hash file missing: CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

缺少CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha文件,添加到指定目錄

6、Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was

14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"

yum源有問題,修改 /etc/yum.repos.d下yum配置文件

7、無法安裝 cloudera-manager-agent 包

查看log看具體報錯信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章