hadoop3.0.1.0集羣安裝(hortonworks(HDP)發行版)

一、前言:

爲了實現公司項目對海量業務數據、文件進行存儲,系統間共享

  • 數據安全 
    需要實現數據冗餘,避免數據的單點故障
  • 可線性擴展 
    當數據增長到TB、甚至PB以上時,存儲方案需要支持可線性擴展
  • 存儲高可用 
    某個存儲服務宕掉時,不影響整體存儲方案的可用
  • 性能 
    性能達到應用要求

二、版本選擇:

 

三、hortonworks簡介

 

http://public-repo-1.hortonworks

http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.1.0/ambari-2.7.1.0-centos7.tar.gz

http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.1.0/HDP-3.0.1.0-centos7-rpm.tar.gz

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz

vi /etc/sysconfig/network-scripts/ifcfg-eno16777736

IPADDR=192.168.200.128
GETWAY=192.168.200.2
NETMASK=255.255.255.0

service network restart

準備工作:

2.1服務器防火牆關閉

    2.1.1執行運行下面命令,關閉掉linux防火牆(所有機器)

sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

    2.1.2 安裝完成後,可以重新啓動iptables。如果您環境中的安全協議阻止禁用iptables,則可以啓用iptables,如果所有必需端口都已打開且可用,Ambari會在Ambari Server安裝過程中檢查iptables是否正在運行。如果iptables正在運行,則會顯示警告,提醒檢查所需端口是否已打開且可用。羣集安裝嚮導中的“主機確認”步驟還會爲運行iptables的每個主機發出警告。

2.2修改主機名及機器隱射(hosts)

 2.2.1通過vi /etc/hostname 進行修改

  各個節點修改成相應的名稱,分別爲master,slave1.slave2.slave3,例master。

 2.2.2修改/etc/hosts文件(所有機器)

  這裏主要是爲了可以實現通過名稱來查找相應的服務器

[root@master ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.136 master master.hbase
192.168.200.137 slave1 slave1.hbase
192.168.200.138 slave2 slave2.hbase

4、修改/etc/sysconfig/network(所有機器)

[root@master ~]# vi /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes

   2.2.3重啓電腦

       執行命令:reboot

2.3服務器的免登陸(所有機器)

    2.3.1配置master節點無密碼登錄到其他節點,在master節點上操作

## 生成密鑰對(所有機器)
ssh-keygen -t rsa   ## 一路回車即可
## 將公鑰導入至authorized_keys
cat ~/.ssh/id_rsa >> authorized_keys
## 修改文件權限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

第二種方式
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id master

 
## 配置主從互相免密登陸
[root@node1 ~]# cat ~/.ssh/id_rsa | ssh root@slave1 'cat - >> ~/.ssh/authorized_keys'
[root@node1 ~]# cat ~/.ssh/id_rsa | ssh root@slave2 'cat - >> ~/.ssh/authorized_keys'

   2.3.2測試所有機器是否SSH免登陸互通

1

2

3

4

[root@master ~]# ssh slave1 date ;ssh slave2 date;ssh master date;

2019年 06月 19日 星期三 14:18:06 CST

2019年 06月 19日 星期三 14:18:07 CST

2019年 06月 19日 星期三 14:18:07 CST

   2.3.3將創建的祕鑰拷貝出來,因爲後面ambari安裝的時候需要上傳這個祕鑰。創建祕鑰是在隱藏文件夾/root/.ssh/下面的,所以需要先把祕鑰拷貝到可見區域,我們這邊把它拷貝到/home/tools下

[root@master ~]# cp /root/.ssh/id_rsa /home/tools/
[root@master ~]# ls /home/tools/id_rsa
id_rsa
注:是id_rsa,而不是id_rsa.pub,之前就因爲這個複製錯了導致我重新安裝集羣。

 

2.4刪除openJDK

    2.4.1一些開發版的centos會自帶jdk,我們一般用自己的jdk,把自帶的刪除。先看看有沒有安裝java -version

1

2

3

4

[root@java-test-01 ~]# java -version

openjdk version "1.8.0_101"

OpenJDK Runtime Environment (build 1.8.0_101-b13)

OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)

    2.4.2查找他們的安裝位置

1

2

3

4

5

6

7

8

[root@java-test-01 ~]# rpm -qa | grep java

java-1.8.0-openjdk-headless-1.8.0.101-3.b13.el7_2.x86_64

tzdata-java-2016f-1.el7.noarch

java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64

javapackages-tools-3.4.1-11.el7.noarch

java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.2.el7_2.x86_64

java-1.7.0-openjdk-1.7.0.111-2.6.7.2.el7_2.x86_64

python-javapackages-3.4.1-11.el7.noarch

    2.4.3刪除全部,noarch文件可以不用刪除

1

2

3

4

[root@java-test-01 ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.101-3.b13.el7_2.x86_64

[root@java-test-01 ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64

[root@java-test-01 ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.2.el7_2.x86_64

[root@java-test-01 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.2.el7_2.x86_64

    2.4.4檢查有沒有刪除

1

2

[root@java-test-01 ~]# java -version

-bash/usr/bin/java: 沒有那個文件或目錄

    注:如果還沒有刪除,則用yum -y remove去刪除他們

2.5安裝JDK

scp -r /home/tools/ root@slave1:/home/

進入配置JAVA環境
vi /etc/profile

JAVA_HOME=/home/tools/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


使環境變量生效
source /etc/profile

2.6服務器時間同步

2.6.1安裝ntp服務(所有機器)

1

[root@master ~]# yum -y install ntp

2.6.2設置master爲主服務器,開啓nptd服務(主服務器)

1

[root@master ~]# vi /etc/ntp.conf

紅色框內是需要修改的部份:
restrict 192.168.0.0 mask 255.255.255.0

#註釋掉其他上游時間服務器
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

新增:
server 127.127.1.0
fudge 127.127.1.0 stratum 10

啓動服務:

1

[root@master ~]# systemctl start ntpd.service

開機自啓動:  

1

[root@master ~]# systemctl enable ntpd.service

2.6.3子節點設置同步(子節點)

       主服務器開啓ntp服務器以後,子節點就不需要開啓了,因爲當server與client之間的時間誤差過大時(可能是1000秒),處於對修改時間可能對系統和應用帶來不可預知的問題,NTP將停止時間同步!所以如果發現NTP啓動之後時間並不進行同步時,應該考慮到可能是時間差過大引起的,此時需要先手動進行時間同步!所以直接使用定時手動同步的方式就可以了。 

    添加任務計劃實時同步master服務器時間:

[root@master ~]# crontab -e
0-59/10 * * * * /usr/sbin/ntpdate master
[root@slave1 data]# crontab -l
0-59/10 * * * * /usr/sbin/ntpdate master

2.7禁用SELinux和PackageKit將檢查umask值

     2.7.1禁用sellinux(所有機器)

[root@master ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

    主要就是把SELINUX改爲disabled。

    2.7.2umask值(所有機器)

    sudo sh -c "echo umask 0022 >> /etc/profile"

    使環境變量生效

    source /etc/profile

2.8服務器的文件句柄數設置

     2.8.1永久設置(所有機器)

[root@master ~]# vi /etc/security/limits.conf
# End of file
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

    2.8.2關閉當前shell窗口,重新打開熟人ulimit -a查看是否設置成功

1

2

 

[root@master ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7217
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 131072
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

    可見這兩個參數值已經修改好了:

    open files                      (-n) 65536

    max user processes              (-u) 131072

 

2.9修改yum源,實現離線安裝

   2.9.1、安裝httpd服務(主服務器)

[root@master ~]# yum -y install httpd
[root@master ~]# service httpd restart Redirecting to /bin/systemctl restart httpd.service
[root@master ~]# chkconfig httpd on
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

    2.9.2、將上面下載的三個包放到/var/www/html目錄下(主服務器)

[root@master ~]# mkdir /var/www/html/hdp3  在http服務默認目錄下添加目錄
[root@master ~]# cd /var/www/html/hdp3    進入添加的目錄
上傳之前下載包
[root@master hdp3]# ls   查看
ambari-2.7.3.0-centos7.tar.gz HDP-UTILS-1.1.0.22-centos7.tar.gz HDP-3.1.0.0-centos7-rpm.tar.gz
[root@master hdp3]# tar -zxvf ambari-2.7.3.0-centos7.tar.gz    解壓
[root@master hdp3]# tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz  解壓
[root@master hdp3]# tar -zxvf HDP-3.1.0.0-centos7-rpm.tar.gz  解壓
[root@master hdp3]# rm -rf ambari-2.7.3.0-centos7.tar.gz HDP-UTILS-1.1.0.22-centos7.tar.gz HDP-3.1.0.0-centos7-rpm.tar.gz 刪除tar包
[root@master hdp3]# ls    查看
ambari  HDP  HDP-UTILS

現在可以通過訪問http://192.168.200.136/hdp3/查看是否能成功訪問

2.9.3、製作本地源

(1)安裝本地源製作相關工具(主服務器)

[root@master hdp3]# yum install yum-utils createrepo yum-plugin-priorities -y

[root@master hdp3]# createrepo  ./

(2)修改文件裏面的源地址(主服務器)

1)設置ambari的yum源
[root@master hdp3]# vi ambari/centos7/2.7.3.0-139/ambari.repo
#VERSION_NUMBER=2.7.3.0-139
[ambari-2.7.3.0]
#json.url = http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json
name=ambari Version - ambari-2.7.3.0
baseurl=http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0
gpgcheck=1
gpgkey=http://192.168.200.136/hdp3/ambari/centos7/2.7.3.0-139/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

2)把設置好的yum文件,複製到/etc/yum.repos.d/
[root@master hdp3]# cp ambari/centos7/2.7.3.0-139/ambari.repo /etc/yum.repos.d/
[root@master hdp3]# scp -r ambari/centos7/2.7.3.0-139/ambari.repo root@slave1:/etc/yum.repos.d/

3)設置HDP的yum源
[root@master hdp3]# vi HDP/centos7/3.1.0.0-78/hdp.repo
#VERSION_NUMBER=3.1.0.0-78
[HDP-3.1.0.0]
name=HDP Version - HDP-3.1.0.0
baseurl=http://192.168.200.136/hdp3/HDP/centos7/3.1.0.0-78
gpgcheck=1
gpgkey=http://192.168.200.136/hdp3/HDP/centos7/3.1.0.0-78/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1


[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://192.168.200.136/hdp3/HDP-UTILS/centos7/1.1.0.22
gpgcheck=1
gpgkey=http://192.168.200.136/hdp3/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
~             
4)把設置好的yum文件,複製到/etc/yum.repos.d/
[root@master hdp3]# cp HDP/centos7/3.1.0.0-78/hdp.repo /etc/yum.repos.d/
[root@master hdp3]# scp -r HDP/centos7/3.1.0.0-78/hdp.repo root@slave1:/etc/yum.repos.d/

5)把設置好的yum重置
[root@master ambari]# yum clean all
[root@master ambari]# yum makecache
[root@master ambari]# yum repolist

 

 

三、開始安裝ambari-server

首先 yum -y install ambari-server 下載ambari-server,然後安裝mysql。

檢查是否有自帶的mariadb,有的話先刪除
[root@master hdp3]# rpm -qa | grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
[root@master hdp3]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64

檢測系統是否自帶安裝mysql
[root@master hdp3]# yum list installed | grep mysql
如果發現有系統自帶mysql,請卸載
[root@master hdp3]# yum -y remove mysql-libs.x86_64


[root@master tools]# yum -y install wget
下載mysql yum源
[root@master tools]# wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
安裝mysql源
[root@master tools]# rpm -ivh mysql-community-release-el6-5.noarch.rpm
安裝mysql 服務器命令
[root@master tools]# yum install mysql-community-server
安裝成功後啓動
[root@master tools]# service mysqld start
查看mysql是否自啓動,並且設置開啓自啓動命令
[root@master tools]# chkconfig --list | grep mysqld
[root@master tools]# chkconfig mysqld on

CentOS 7 安裝mySQL如何出現 [Errno 256] No more mirrors to try的話輸入以下:
[root@master bin]# yum --enablerepo=mysql56-community clean metadata
然後再yum -y install mysql-community-server 即可解決

登陸mysql,第一次默認沒有密碼
[root@master ~]# mysql -uroot 
設置登錄密碼
mysql> set password for 'root'@'localhost' = password('yourPassword');
添加遠程登錄用戶
mysql> grant all privileges on *.* to 'root'@'%' identified by 'yourPassword';

創建ambari-server需要用到的庫表
CREATE DATABASE ambari;  
use ambari;  
CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambarizk123';  
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';  
CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambarizk123';  
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';  
CREATE USER 'ambari'@'master' IDENTIFIED BY 'ambarizk123';  
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'master';  
FLUSH PRIVILEGES;  
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql  
show tables;  
use mysql;  
select Host,User,Password from user where user='ambari';  
CREATE DATABASE hive;  
use hive;  
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';  
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';  
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';  
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost';  
CREATE USER 'hive'@'master' IDENTIFIED BY 'hive';  
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'master';  
FLUSH PRIVILEGES;  
CREATE DATABASE oozie;  
use oozie;  
CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie';  
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';  
CREATE USER 'oozie'@'localhost' IDENTIFIED BY 'oozie';  
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'localhost';  
CREATE USER 'oozie'@'master' IDENTIFIED BY 'oozie';  
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'master';  
FLUSH PRIVILEGES;


建立mysql與ambari-server的連接
網上下載mysql-connector-java-5.1.40.jar放到root文件下,注意目錄必須按照下面規定得否則無法啓動
[root@master tools]# mkdir /usr/share/java
[root@master tools]# cp /home/tools/mysql-connector-java.jar /usr/share/java/mysql-connector-java.jar
[root@master tools]# cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar
[root@master tools]# vi /etc/ambari-server/conf/ambari.properties
添加server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar

初始化設置ambari-server並啓動

[root@master ~]# ambari-server setup
下面是配置執行流程,按照提示操作
(1) 提示是否自定義設置。輸入:y
Customize user account for ambari-server daemon [y/n] (n)? y
(2)ambari-server 賬號。
Enter user account for ambari-server daemon (root):
如果直接回車就是默認選擇root用戶
如果輸入已經創建的用戶就會顯示:
Enter user account for ambari-server daemon (root):ambari
Adjusting ambari-server permissions and ownership...
(3)檢查防火牆是否關閉
Adjusting ambari-server permissions and ownership...
Checking firewall...
WARNING: iptables is running. Confirm the necessary Ambari ports are accessible. Refer to the Ambari documentation for more details on ports.
OK to continue [y/n] (y)?
直接回車
(4)設置JDK。輸入:2
Checking JDK...
Do you want to change Oracle JDK [y/n] (n)? y
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
==============================================================================
Enter choice (1): 2
如果上面選擇3自定義JDK,則需要設置JAVA_HOME。輸入:/home/tools/jdk1.8.0_121
WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
Path to JAVA_HOME: /home/tools/jdk1.8.0_121
Validating JDK on Ambari Server...done.
Completing setup...
Checking GPL software agreement...
GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? n  
Completing setup...
Configuring database...
(5)數據庫配置。選擇:y
Configuring database...
Enter advanced database configuration [y/n] (n)? y
(6)選擇數據庫類型。輸入:3
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
==============================================================================
Enter choice (3): 3
(7)設置數據庫的具體配置信息,根據實際情況輸入,如果和括號內相同,則可以直接回車。如果想重命名,就輸入。
Hostname (localhost):
Port (3306):
Database name (ambari):
Username (ambari):
Enter Database Password (bigdata):ambarizk123
Re-Enter password: ambarizk123
(8)將Ambari數據庫腳本導入到數據庫
WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql 
Proceed with configuring remote database connection properties [y/n] (y)?  
啓動
[root@master ~]# ambari-server start
進入ambari-server管理界面賬號密碼默認都爲admin
http://192.168.200.136:8080


所有節點安裝ambari-agent 
[root@master ~]# yum -y install ambari-agent
[root@master ~]# chkconfig --add ambari-agent

 

四、安裝配置部署HDP集羣

安裝hive的話一定要執行
[root@nd-00 ~]# ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar

五、HA高可用

https://blog.csdn.net/Happy_Sunshine_Boy/article/details/86595945#43__Repo_380

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