日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

cdh 安装_使用Cloudera的CDH部署Hadoop:第三步,安装管理平台和数据库

發布時間:2025/3/21 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cdh 安装_使用Cloudera的CDH部署Hadoop:第三步,安装管理平台和数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

導讀

這篇文章是關于使用CDH搭建Hadoop集群的第三步:安裝Cloudera Manager Server和數據庫的。

這篇文章有點長,涉及的知識點較多,略顯零碎。雖然筆者可以將一些內容剔除,但筆者沒有這么做,是因為想盡可能的把筆者的實踐過程完整的記錄下來,讓后面的同學切實感受到安裝的過程并可以避開筆者踩過的坑。

本文主要參考Cloudera官方文檔。

在進行這一步之前,應該進行充分的前期準備。關于前期準備工作的相關內容請參考文章:

1)使用Cloudera的CDH部署Hadoop:準備工作

2)使用Cloudera的CDH部署Hadoop:第一步,配置package倉庫

3)使用Cloudera的CDH部署Hadoop:第二步,安裝JDK

1安裝Cloudera Manager Server

安裝Cloudera Manager Server packages的主機不必是集群的一個主機,這個主機要能訪問本地或遠程的數據庫。

如果你配置了局域網yum源那么命令:

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

如果沒有,那么命令:

sudo yum --nogpgcheck localinstall cloudera-manager-daemons-*.rpm

sudo yum --nogpgcheck localinstall cloudera-manager-server-*.rpm

注意:先不裝cloudera-manager-agent,因為后面使用管理系統自動安裝。

2安裝數據庫

Cloudera Manager使用數據庫來存儲Cloudera Manager configuration,系統健康狀況,任務執行進度等信息。

建議Cloudera Manager Server和數據庫分開部署,這樣可以隔離錯誤。

2.1需要數據庫的組件

Cloudera Manager Server, Oozie Server, Sqoop Server, Activity Monitor, Reports Manager, Hive Metastore Server, Hue Server, Sentry Server, Cloudera Navigator Audit Server, Cloudera Navigator Metadata Server。

2.2安裝與配置數據庫(MySql)

訪問https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#cdh_cm_supported_db查看支持的數據庫版本。

注意:

1)如果安裝5.6或 5.7,必須安裝MySQL-shared-compat或MySQL-shared package

2)注釋:雖然CDH官網這么說,但是mysql官網的5.7安裝包中已經沒有MySQL-shared-compat或MySQL-shared package,不過5.6的有。

3)datadir目錄默認是/var/lib/mysql劃分了足夠的空間

使用命令:du -hs /var/lib/mysql

4)Mysql的GTID復制機制開啟了,Cloudera Manager安裝會失敗。

下載MySql然后手動安裝。

下面這些命令在聯網情況下可以,若不連接外網則沒法使用這個命令來裝。

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

例:

wget http://192.168.107.83/mysql/mysql-community-release-el7-5.noarch.rpm

sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

sudo yum update

sudo yum install mysql-server

sudo systemctl start mysqld

將MySQL加入局域網yum源

還是使用事先構建好的局域網的yum源。

去網站:https://dev.mysql.com/downloads/mysql/5.7.html#downloads將mysql下載下來。然后放到yum服務器上。

注意要自己生成repodata目錄文件,使用createrepo命令。

例如,將rpm包放置于/var/www/html/mysql/5.7.23下,那么執行命令:

createrepo /var/www/html/mysql/5.7.23

命令執行成功:

在/var/www/html/mysql/5.7.23下生成一個repodata文件夾

打開這個repodata,看到文件:

配置客戶端,使用此yum源

打開/etc/yum.repos.d/,創建一個repo文件

[mysql]

name=mysql

baseurl=http://192.168.107.83/mysql/5.6.5.6.41-1.el7.x86_64/enabled=1

gpgcheck=0

priority=1

將baseurl設置為http://192.168.107.83/mysql,那么repodata文件夾就要在mysql目錄下,所以將上述生成的repodata移動到mysql下。

準備工作都已完成,開始安裝mysql。

初次在Centos上安裝mysql報錯:

這是軟件包依賴 mariadb組件的緣故,卸載這個。

yum -y remove mariadb-libs

然后安裝mysql:

yum install mysql-community-server (安裝5.6的命令式yum install mysql-server)

選y,繼續。

但是有如下報錯:

看來是找不到文件,因為機器自動找的是http://192.168.107.83/mysql/mysql-community-common-5.7.23-1.el7.x86_64.rpm

這個文件當然不存在,因為其在:/var/www/html/mysql/5.7.23,這個路徑下。

于是將baseurl改為:

http://192.168.107.83/mysql/5.7.23

這樣就完全沒有問題了。

查看安裝了哪些服務:

rpm -qa | grep mysql*

啟動MySql

systemctl start mysqld.service

可能要等幾毫秒的時間。

看mysql是否正常運行

ps -ef | grep mysqld

附:卸載mariadb

systemctl stop mariadb

rpm -qa | grep mariadb

rpm -e --nodeps mariadb-5.5.52-1.el7.x86_64

rpm -e --nodeps mariadb-server-5.5.52-1.el7.x86_64

rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64

另外,安裝完5.6以后,沒找到/etc/my.cnf,原因是:

第一種說法,my.cnf只是MySQL啟動時的一個參數文件,可以沒有它,這時MySQL會用內置的默認參數啟動,

第二種說法,MySQL在啟動時自動使用/usr/share/mysql(或/usr/)目錄下的my-medium.cnf文件,這種說法僅限于rpm包安裝的MySQL,

解決方法:

只需要復制一個/usr/share/mysql目錄下的.cnf文件到/etc目錄,并改名為my.cnf即可。

3配置和啟動MySql服務

1)如果Mysql啟動,那么停止他:sudo systemctl stop mysqld

2)把/var/lib/mysql/ib_logfile0 和/var/lib/mysql/ib_logfile1移到備份位置。使用命令(mv /var/lib/mysql/ib_logfile0 /root/)

3)確定my.cnf的位置,默認的為/etc/my.cnf

4)更新my.cnf

· 為了避免死鎖,隔離級別設置為READ-COMMITTED

· 配置為使用InnoDB。配置MyISAM,那么Cloudera Manager啟不來。

· 使用命令mysql> show table status;檢查使用的是哪種引擎。

· 設置innodb_flush_method property為O_DIRECT,因為系統需要高的寫吞吐量。

· 根據集群規模設置max_connections

配置示例:

[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:

symbolic-links = 0

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

#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

#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=1

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

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

5)如果AppArmor和Mysql跑在同臺機器上,要配置AppArmor許可Mysql寫二進制文件

6)允許開機啟動MySql:sudo systemctl enable mysqld

7)啟動Mysql:sudo systemctl start mysqld

Centos 7 裝5.6上述命令無法使用,要用:systemctl start mysql

8)設置密碼

這一步似乎不行,下面見下面9)給出正確做法

運行sudo /usr/bin/mysql_secure_installation設置MySQL root password,新安裝的MySql服務,root password是空的。

sudo /usr/bin/mysql_secure_installation

過程類似:

[...]

Enter current password for root (enter for none):

OK, successfully used password, moving on...

[...]

Set root password? [Y/n] Y

New password:

Re-enter new password:

Remove anonymous users? [Y/n] Y

[...]

Disallow root login remotely? [Y/n] N

[...]

Remove test database and access to it [Y/n] Y

[...]

Reload privilege tables now? [Y/n] Y

All done!

9)設置密碼

grep "password" /var/log/mysqld.log

隨機密碼是:lVBIfgklx1>&

使用上面生成的隨機密碼登錄系統:

mysql -u root -p

lVBIfgklx1>&

更改密碼:

SET PASSWORD = PASSWORD('cnki2018');

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

flush privileges;

執行這個語句會報錯:

這是因為:

為了加強安全性,MySQL5.7為root用戶隨機生成了一個密碼,在error log中,關于error log的位置,如果安裝的是RPM包,則默認是/var/log/mysqld.log。

如果只是修改為一個簡單的密碼,會報錯誤。

這與validate_password_policy的值有關:

validate_password_policy取值:

默認是1,即MEDIUM,所以剛開始設置的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字符。

為了能設置一個簡單的密碼,可將validate_password_policy設置為0:

set global validate_password_policy=0;

設置完后,要重新設置密碼

但是設置密碼為cnki太短,先設置密碼為cnki2018!,然后看下密碼長度要求:

select @@validate_password_length;

所以設置為將密碼設置為cnki2018。

可以設置密碼長度:set global validate_password_length=1;

但是注意,密碼長度有最小限制:

validate_password_number_count+ validate_password_special_char_count+ (2 * validate_password_mixed_case_count)

其中,validate_password_number_count指定了密碼中數據的長度,validate_password_special_char_count指定了密碼中特殊字符的長度,validate_password_mixed_case_count指定了密碼中大小字母的長度。

這些值默認都是1,所以密碼最小值為4。

設置用戶 root 可以在任意 IP 下被訪問:

grant all privileges on *.* to root@"%" identified by "new password";

刷新權限使之生效:

flush privileges;

在選錯MySQL版本或者無法安裝需要重裝的情況下,要卸載Mysql

卸載MySql:

rpm -qa |grep -i mysql

yum remove

注意先查出來然后再卸載

殺死MySQL進程,強制登錄

執行grep "password" /var/log/mysqld.log無法獲得臨時密碼

采用強制登錄:

1、systemctl stop mysqld

2、systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

3、systemctl start mysqld

4、mysql -u root

5、UPDATE mysql.user SET authentication_string = PASSWORD('cnki2018') WHERE User = 'root' AND Host = 'localhost';

6、FLUSH PRIVILEGES;

7、quit;

執行完上述步驟在執行其他語句可能出錯

所以在執行下面語句:

SET PASSWORD = PASSWORD('cnki2018');

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

flush privileges;

4安裝MySql JDBC驅動

在Cloudera Manager Server主機上及其他需要的主機上安裝MySql JDBC。

注意MySQL 5.6需要5.1.26及以上版本的JDBC驅動。

Cloudera建議使用5.1版本的JDBC驅動。

注意不要使用yum install來安裝MySQL驅動包,因為他會安裝OpenJDK(如果將openJDK卸載了,那么就沒問題)。

下載MySQL JDBC driver(.tar.gz格式文件):http://www.mysql.com/downloads/connector/j/5.1.html

解壓:tar zxvf mysql-connector-java-5.1.46.tar.gz

拷貝剛解壓的文件到:/usr/share/java/,如果沒有就先創建這個目錄。

sudo mkdir -p /usr/share/java/

cd mysql-connector-java-5.1.46

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

5創建數據庫

一定要配置為支持utf8編碼。

一定要記錄下所創建的數據庫名稱,用戶名,密碼。Cloudera Manager安裝向導會用到這些信息。

1)以root賬號登陸:mysql -u root -p

2)創建數據庫:

CREATE DATABASE DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

例: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;

GRANT ALL ON .* TO ''@'%' IDENTIFIED BY '';

例:GRANT ALL ON scm.* TO scm@'%' IDENTIFIED BY 'cnki2018';

GRANT ALL ON amon.* TO amon@'%' IDENTIFIED BY 'cnki2018';

GRANT ALL ON rman.* TO scm@'%' IDENTIFIED BY 'cnki2018';

注:

刪除數據庫命令:drop database ;

例:drop database scm;

Cloudera Manager configuration settings提供了一些默認值,但不必一定使用這些。

3)確認:

SHOW DATABASES;

SHOW GRANTS FOR ''@'%';

例:SHOW GRANTS FOR scm@'%';

注:一些mysql相關命令

使用數據庫:use ;

列出所有表:show tables;

總結

以上是生活随笔為你收集整理的cdh 安装_使用Cloudera的CDH部署Hadoop:第三步,安装管理平台和数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。