中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

bec聽力哪個網(wǎng)站做的好谷歌app官方下載

bec聽力哪個網(wǎng)站做的好,谷歌app官方下載,簡潔大氣企業(yè)網(wǎng)站源碼,wordpress下拉刷新先填一下上次許諾的坑: (許諾的那篇文章鏈接如下) 如何用sql在1分鐘從1T數(shù)據(jù)中精準定位查詢?Hive離線數(shù)倉 Spark分析-CSDN博客文章瀏覽閱讀1.2k次,點贊38次,收藏14次。在大數(shù)據(jù)-Hadoop體系中 ,…

先填一下上次許諾的坑: (許諾的那篇文章鏈接如下)

如何用sql在1分鐘從1T數(shù)據(jù)中精準定位查詢?Hive離線數(shù)倉 Spark分析-CSDN博客文章瀏覽閱讀1.2k次,點贊38次,收藏14次。在大數(shù)據(jù)-Hadoop體系中 ,spark批處理和hive離線數(shù)倉可以說是對立并行的兩個大分支技術棧,,,建議主攻其一,另一個靈活使用就行。他們是2015出現(xiàn)在國內,2017年之后國外各大公司紛紛采用,國內2020采用的,目前屬于很前沿,并且很主流,很頂層的技術。(注:19年國內云計算開始起勢,大數(shù)據(jù)的發(fā)展與云計算和人工智能等密切相關,更離不開芯片,硬件存儲技術等相關支撐,它們之間相輔相成https://blog.csdn.net/qq_61414097/article/details/140999898

? ? ? ? ? ? ? ?我的許諾有點多,請容我慢慢填坑 “后續(xù)的話我會出一期關于大數(shù)據(jù)所有主流組件搭載在一個集群實驗環(huán)境的運維配置文檔。此坑暫時填補嘿嘿 這篇文章就是

?

? ? ? ? ? ?先收藏,過幾天我會對文章進行精修,

?因為這是我兩年前用的,實驗集群配置 不過作為參考文檔也可有個約數(shù),自己有個對照配置,方便排查一些,組件不兼容的坑。

它其實是.txt文檔,所以放在這里有點粗放了哈哈哈,抱歉?

還要整理spark,所以這篇就先到這里吧 ,我先在已經(jīng)在磕云計算了,再不整理下就忘光了hhh

1?安裝VMware和CentOS7系統(tǒng)

CentOS7.9.io鏡像下載

建議 阿里云下載cents鏡像ios 鏈接如下?

https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2207-02.iso

VMware安裝

win7用 12

win10 用 15

win11用 16.2.4

別問為什么,問就是win和VMware不兼容導致虛擬機各種奇葩異常,重裝集群了?

這已經(jīng)是我當年實驗了20多次得出的結果,最佳兼容性搭配。

安裝過程 未完待續(xù)。。。


1.安裝了VMware和CentOS7系統(tǒng)
2.設置了網(wǎng)絡,使用Xshell進行連接
網(wǎng)絡問題:
3.協(xié)助大家遠程解決問題的軟件:teamViewer、向日葵
--------
/home ?2g
/boot 目錄用來存放文件內核0.5g
/ ? ? ?根目錄15g
/ ? ?swap為交換臨時數(shù)據(jù)目錄,最好不要用安裝時少分配空間1.5g

/必須掌握的linux命令:
1.文件和目錄操作
cd:切換目錄
ls -al :列出所在目錄的文件及文件夾
mkdir: 創(chuàng)建文件夾
cat :查看文件
mv:移動文件或者修改名字

tar -zxvf :解壓文件,后面經(jīng)常使用
vi或者vim :編輯文件,后面經(jīng)常使用

初學者完成 Linux 系統(tǒng)分區(qū)及安裝之后,需熟練掌握 Linux 系統(tǒng)管理必備命令,
命令包括:cd、ls、pwd、clear、chmod、chown、chattr、useradd、userdel、
groupadd、vi、vim、cat、more、less、mv、cp、rm、rmdir、touch、ifconfig、
ip addr、ping、route、echo、wc、expr、bc、ln、head、tail、who、hostname、
top、df、du、netstat、ss、kill、alias、man、tar、zip、unzip、jar、fdisk、
free、uptime、lsof、lsmod、lsattr、dd、date、crontab、ps、find、awk、
sed、grep、sort、uniq 等,
每個命令至少練習 30 遍,逐步掌握每個命令的用法及應用場景;


1.1安裝系統(tǒng)后的準備工作inux系統(tǒng)初始環(huán)境設置
1)配置服務器的IP地址
?? ?查看機器的網(wǎng)卡名稱。
?? ??? ? ip address show。
(2)設置服務器的主機名稱
?? ?設置主機名稱
?? ??? ?hostnamectl set-hostname master (主機名):修改以后永久生效
?? ??? ?hostname master11 ?:臨時修改主機名為master111
?? ?查看當前服務器的名稱。
?? ??? ?hostname
(3)綁定主機名與IP地址

? ? ? ? ? ? 查看ip ?
? ??? ?ip addr
?? ?192.168.20.134
? ? ? ?
?? ?修改hosts文件
?? ??? ?vi /etc/hosts
?? ?在其中增加相應內容(下面的內容表示主機名master對應的IP地址為192.168.1.1):
?? ?192.168.20.134 master

(4)
?? ?臨時關閉防火墻
?? ?關閉命令:
??? ??? ?systemctl stop firewalld
?? ?查看防火墻的狀態(tài)
?? ??? ?systemctl status firewalld?

?? ?我們此時永久關閉防火墻供后續(xù)使用,臨時關閉后續(xù)容易無法連接外網(wǎng)

[root@localhost ~]# systemctl ?disable ?firewalld.service?
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
?? ?
?? ??? ?查看防火墻的狀態(tài)
?? ??? ?systemctl status firewalld ?
?? ?
?? ?配置 selinux
[root@localhost ~]# getenforce?
Enforcing
[root@localhost ~]# setenforce 0


2.備份原來的yum源
[root@controller ~]# mkdir /etc/yum.repos.d/repobak
[root@controller ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repobak/


3.配置網(wǎng)絡yum源
原來的yum源已備份在 /etc/yum.repos.d/repobak

(1)-----這里直接使用 阿里 的 鏡像
?? ?新建文件 ?aliyun.repo
?? ?vi /etc/yum.repos.d/aliyun.repo
?? ?wget -O ?/etc/yum.repos.d/aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo
?? ?生成緩存列表:
?? ?yum makecache

?? ?生成緩存列表:
?? ?yum makecache
?? ?清理緩存?
?? ?yum clean all
?? ?yum repolist
?? ?檢查是否配置成功命令


2.用戶操作(了解)
只是用root登錄操作,不涉及權限和目錄所屬者或者所屬組的修改
useradd :添加用戶
passwd :給用戶設置密碼
chown: 更改文件所屬用戶或者組
chmod:更改文件權限
su:切換用戶
sudo:臨時取得權限

3.系統(tǒng)命令(臨時了解,后面還會用到)
clear:清除屏幕 ctl l(清屏)
hostname:顯示或者主機名(臨時生效)
hostnamectl set-hostname:設置主機名,重啟后永久生效
(不可以是中文也不可以是數(shù)字一般是設為英文)
ip: 查看ip
systemctl:系統(tǒng)服務的開關,例如關閉防火墻

4.用戶和組(了解,能答出來就可以)
?? ?用戶分3種類型:
?? ??? ?a,超級用戶,UID是0
?? ??? ?b,系統(tǒng)用戶,UID是1-999
?? ??? ?c,普通用戶,UID從1000開始

?? ?組分2中類型:
?? ??? ?a,系統(tǒng)組,GID是0-999
?? ??? ?b,私有組,GID從1000開始
?? ??? ?默認在創(chuàng)建用戶的時候,會創(chuàng)建一個與用戶名一樣的組

5.文件類型和權限
?? ?文件分4種類型:
?? ??? ?a,普通文件,標識符:-
?? ??? ?b,目錄文件,標識符:d
?? ??? ?c,鏈接文件,硬鏈接標識符:- 、軟鏈接標識符:l
?? ??? ?d,設備文件,字符設備文件標識符:c、塊設備文件標識符:b
?? ?
?? ?文件權限分3種:?? ?可讀(r)、可寫(w)、可執(zhí)行(x)
?? ?文件權限表示方法:數(shù)字表示、字符賦值
?? ??? ?0:--- 無任何權限
?? ??? ?1:--x 可執(zhí)行
?? ??? ?2:-w- 可寫
?? ??? ?3:-wx 可寫可執(zhí)行
?? ??? ?4:r-- 可讀
?? ??? ?5:r-x 可讀可執(zhí)行
?? ??? ?6:rw- 可讀可寫
?? ??? ?7:rwx 可讀可寫可執(zhí)行
=====================================================================
1.系統(tǒng)沒安裝好、遠程連接有問題
2.修改完配置文件profile以后,沒有source

2


一、hadoop概述:
1.起源:Google的分布式文件系統(tǒng)

2.Hadoop生態(tài)圈
?? ?HDFS:分布式文件系統(tǒng),具有高容錯性,提供高吞吐率的數(shù)據(jù)訪問,能夠有效處理海量數(shù)據(jù)集。
?? ?YARN:通用資源管理系統(tǒng),為上層應用提供統(tǒng)一資源管理調度。
?? ?MapReduce是面向大型數(shù)據(jù)處理的并行計算模型和方法,僅適合離線數(shù)據(jù)處理。
?? ?
?? ?ZooKeeper:分布式數(shù)據(jù)管理和協(xié)調框架,保證分布式環(huán)境中數(shù)據(jù)的一致性,是Hadoop組件的一個監(jiān)管系統(tǒng)。
?? ?HBase:基于HDFS的非關系型列式存儲數(shù)據(jù)庫,齊保存的數(shù)據(jù)可使用MapReduce來處理,它將數(shù)據(jù)存儲和并行計算完美地結合在一起。
?? ?Hive:數(shù)據(jù)倉庫技術,用于查詢和管理存儲在分布式環(huán)境下的大數(shù)據(jù)集,通常用于離線分析。
?? ?
?? ?Sqoop:主要用于傳統(tǒng)關系型數(shù)據(jù)庫和Hadoop之間傳輸數(shù)據(jù)。
?? ?
?? ?Flume:日志收集系統(tǒng),對日志數(shù)據(jù)進行過濾、格式轉換等,能夠將日志寫往各種數(shù)據(jù)目標。
?? ?
?? ?Kafka:分布式消息系統(tǒng),它主要用于處理活躍的流式數(shù)據(jù)。
?? ?
? ? Spark:計算引擎(框架)。
?? ?
? ? Mahout:數(shù)據(jù)挖掘算法庫,實現(xiàn)了一些可擴展的機器學習領域經(jīng)典算法。
?? ?Storm:是一個分布式的、容錯的實時處理系統(tǒng)。
?? ?Oozie: 工作流調度引擎,用于協(xié)調多個Hadoop作業(yè)的執(zhí)行。
?? ?Azkaban:批量工作流任務調度器,用于在一個工作流內以一個特定的順序運行一組工作和流程。
?? ?
3.hadoop版本演變(了解)
?? ?1.x 僅包含HDFS和MapReduce
?? ?2.x 引入了Yarn作為資源管理
?? ?3.x 增加了新的編碼、備份、負載均衡機制

4.hadoop運行模式
?? ?3種模式:
?? ??? ?單機模式:無需修改配置文件,不需要啟動HDFS和YARN
?? ??? ?偽分布模式:需要修改配置文件,需要啟動HDFS和YARN
?? ??? ?完全分布式:分主從節(jié)點分別啟動HDFS和YARN

5.hadoop的優(yōu)點:擴容能力強、成本低、高效率、高可靠

? ?腦海里一定要有圖:HDFS架構圖
?

二、hadoop核心組件(了解)


1.HDFS
?? ?分布式文件系統(tǒng),數(shù)據(jù)存儲管理的基礎,有NameNode和DataNode
?? ?NameNode:HDFS的管理者,負責處理客戶端請求、管理DataNode
?? ?SeconderNameNode:用于合并元數(shù)據(jù)文件FSImage,不是NameNode的備份,會幫助恢復NameNode
?? ?DataNode:數(shù)據(jù)節(jié)點,負責存儲數(shù)據(jù)、處理讀寫請求,定期向NameNode報告數(shù)據(jù)信息和心跳
?? ?FSImage:存儲元數(shù)據(jù)
?? ?edits:日志文件,記錄讀寫操作等
?? ?
?? ?HDFS的優(yōu)缺點(了解,根據(jù)HDFS的特點大膽猜測)
?? ?優(yōu)點:高可靠、高容錯、適合處理海量數(shù)據(jù)
?? ?缺點:不適合做實時分析、不適合處理小文件、不支持并發(fā)寫入和文件隨機修改

2.MapReduce
?? ?分布式計算模型,將任務分發(fā)給多節(jié)點并行處理,整合各節(jié)點結果后輸出最終結果
?? ?
?? ?MapReduce優(yōu)缺點:
?? ?優(yōu)點:高容錯、易編程、易擴展、適合離線數(shù)據(jù)處理
?? ?缺點:不適合實時計算、流式計算、有向圖計算
?? ?
3.YARN
?? ?資源管理系統(tǒng),負責資源分配和任務調度,采用的是Master/Slave(主/從)結構。
?? ?組件包括:
?? ?ResourceManager:資源管理器,負責整個系統(tǒng)的資源管理與分配。由兩個組件構成:
(1)調度器(Scheduler):根據(jù)資源情況和預先定義的策略以及應用程序的資源需求,將系統(tǒng)中的資源分配給各個正在運行的應用程序。
(2)應用程序管理器(Applications Manager):負責管理整個系統(tǒng)中所有應用程序,監(jiān)控 ApplicationMaster 運行狀態(tài)并在其失敗時重新啟動它。

?? ?NodeManager:管理單個節(jié)點上的資源。向ResourceManager匯報節(jié)點資源使用情況和Container的運行狀態(tài)。
?? ?負責接收 ResourceManager 的資源分配要求,分配具體的 Container 給應用的某個任務。
?? ?處理來自 ApplicationMaster 的Container啟動或停止請求。


?? ?ApplicationMaster:應用程序的第一個進程,負責監(jiān)控、管理應用程序所有任務的運行
?? ??? ?將要處理的數(shù)據(jù)進行切分
?? ??? ?為啟動任務,向ResourceManager申請資源,指示任務所在的NodeManager啟動Container。
?? ??? ?監(jiān)視任務的運行狀態(tài),重新啟動失敗的任務。當任務運行完畢,負責返還資源。

?? ?Container:
?? ?YARN 中動態(tài)創(chuàng)建的資源容器,它封裝了某個節(jié)點上的多維度資源,如內存、CPU、磁盤、網(wǎng)絡等。
-------------------------

?

3、Linux系統(tǒng)環(huán)境設置


(1)配置服務器的IP地址
?? ?查看機器的網(wǎng)卡名稱。
?? ??? ? ip address show。
(2)設置服務器的主機名稱
?? ?設置主機名稱
?? ??? ?hostnamectl set-hostname master :修改以后永久生效
?? ??? ?hostname master1 ?:臨時修改
?? ?查看當前服務器的名稱。
?? ??? ?hostname
(3)綁定主機名與IP地址
?? ?編輯本地名字解析文件hosts。
?? ??? ?vi /etc/hosts
?? ?在其中增加相應內容(下面的內容表示主機名master對應的IP地址為192.168.xxx.xxx):
?? ??? ?192.168.229.133 ?master
(4)查看SSH服務狀態(tài)
?? ?CentOS 7默認安裝SSH服務,查看SSH的狀態(tài)。
?? ??? ?systemctl status sshd
?? ?關閉防火墻
?? ?關閉命令:
??? ??? ?systemctl stop firewalld
?? ?查看防火墻的狀態(tài)
?? ??? ?systemctl status firewalld?
?? ??? ?
?? ?----
?? ?下載上傳JDK
?? ??? ?
(5)卸載自帶的OpenJDK
?? ?查找:rpm -qa | grep java?? ?
?? ?卸載:rpm -e --nodeps 包名
rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch
rpm -e --nodeps tzdata-java-2023c-1.el7.noarch

?? ??? ?
(6)安裝JDK
?? ?安裝包解壓到/opt目錄下
?? ??? ?tar -zxvf ?~/jdk-8u231-linux-x64.tar.gz -C /opt
?? ?查看目錄確認
?? ??? ?ll /opt?? ?
(7)設置JAVA環(huán)境變量
?? ?配置/etc/profile文件vi /etc/profile
?? ??? ?
?? ?在文件的最后增加如下兩行:
?? ??? ?export JAVA_HOME=/opt/jdk1.8.0_231
?? ??? ?export PATH=$PATH:$JAVA_HOOME/bin
?? ?
(8)設置JAVA環(huán)境變量
?? ?使設置生效:
?? ??? ?source /etc/profile
?? ?檢查JAVA是否可用。
?? ??? ?echo $JAVA_HOME
?? ??? ?java -version 或javac -version
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/git/bin:/usr/local/src/java/jdk1.8.0_141/bin
export CLASSPATH=/usr/local/src/java/jdk1.8.0_141/lib/

#export JAVA_HOME=/usr/local/java/jdk1.8.0_202
#export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
#export PATH=$PATH:$JAVA_HOME/bin
注意如果出現(xiàn) export PATH=/usr/local/sbin:/usr/local..... 那再寫#export JAVA_HOME=/....
#export PAT... 這種會報錯 要么全部拆分 要么合寫

如果你使用 yum 安裝了 OpenJDK 1.8.0_412,并且通過 java -version 命令驗證了安裝,那么 OpenJDK 的環(huán)境變量將會自動配置。
在 CentOS 7 中,OpenJDK 的環(huán)境變量 JAVA_HOME 通常位于 /etc/profile.d/jdk.sh 文件中。這個文件會在系統(tǒng)啟動時動加載,并設置 JAVA_HOME 和相關環(huán)境變量。
打開終端并以管理員身份登錄。
查看 /etc/profile.d/jdk.sh 文件:
cat /etc/profile.d/jdk.sh
輸出會顯示配置的環(huán)境變量,其中應該包含 JAVA_HOME 的定義。
如果你的系統(tǒng)上沒有 /etc/profile.d/jdk.sh 文件,那可能是因為你安裝的 OpenJDK 版本較新,或者使用了其他方式進行安裝。在這種情況下,你可以手動設置 JAVA_HOME 環(huán)境變量。
cd ?/usr/lib/jvm/ 我的是這個
ls$5
[root@master ~]# ls /usr/lib/jvm
java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
jre
jre-1.8.0
jre-1.8.0-openjdk
jre-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
jre-openjd
?vi /etc/profile
在文件的末尾添加以下行:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
export PATH=$PATH:$JAVA_HOME/bin?
這是我的
驗證 Java -version?
java?
echo $JAVA_HOME

例如,可以編輯 /etc/profile 文件,并在其中添加以下行:
export JAVA_HOME=/usr/lib/jvm/java-x.x.x
export PATH=$PATH:$JAVA_HOME/binecho $JAVA_HOME
確保將 java-x.x.x 替換為你實際的 Java 安裝路徑。
保存并關閉文件。然后運行以下命令使環(huán)境變量生效:
source /etc/profile
-------------
安裝hadoop
下載hadoop?? ?并上傳

(9)安裝Hadoop軟件
?? ?將安裝包解壓到/usr/local/src/目錄下
?? ??? ?tar -zxvf ~/hadoop-2.7.1.tar.gz -C /usr/local/src/
?? ?查看目錄確認。
?? ??? ?ll /usr/local/src/
(10)配置Hadoop環(huán)境變量
?? ?修改/etc/profile文件。
?? ??? ?vi /etc/profile
?? ?在文件的最后增加兩行:
?? ??? ?export HADOOP_HOME=/usr/local/src/hadoop-2.7.1
?? ??? ?export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(11)配置Hadoop環(huán)境變量
?? ?使設置生效:
?? ??? ?source /etc/profile
?? ?檢查設置是否生效:
?? ??? ?hadoop?? ??? ?
--------
單機版hadoop

(12)進入Hadoop目錄
?? ??? ?cd /usr/local/src/hadoop-2.7.1/
?? ?配置hadoop-env.sh文件
?? ?配置命令
?? ??? ?vi etc/hadoop/hadoop-env.sh
?? ?在文件中查找export JAVA_HOME這行,改為如下所示內容。
?? ??? ?export JAVA_HOME=/usr/local/src/jdk1.8.0_231
(13)創(chuàng)建輸入數(shù)據(jù)存放目錄
?? ?將輸入數(shù)據(jù)存放在~/input目錄(root用戶主目錄下的input目錄中)。
?? ??? ?mkdir ~/input
(14)創(chuàng)建數(shù)據(jù)輸入文件
?? ?創(chuàng)建數(shù)據(jù)文件data.txt,將要測試的數(shù)據(jù)內容輸入到data.txt文件中。
?? ??? ?vi ~/input/data.txt
?? ?輸入如下內容,保存退出。
?? ??? ?Hello World
?? ??? ?Hello Hadoop
?? ??? ?Hello Huasan?? ?
(15)測試MapReduce運行
?? ?運行WordCount官方案例,命令如下:
?? ??? ?hadoop jar /usr/local/src/hadoop-2.7.1/share/hadoop/mapreduce /hadoop-mapreduce-examples-2.7.1.jar ?? ??? ?wordcount ~/input/data.txt ~/output
?? ?查看運行結果:?
?? ??? ?ll ~/output
?? ?處理的結果存放在part-r-00000文件中,查看該文件:
?? ??? ?cat ~/output/part-r-00000
=====================================================

?

4免密登錄

實驗環(huán)境下Hadoop集群
?? ??? ?3個節(jié)點:
?? ??? ??? ?master:
?? ??? ??? ?slaver1:
?? ??? ??? ?slaver2:
?? ??? ?
SSH無密碼登錄
?? ??? ?SSH:安全網(wǎng)絡協(xié)議,開源實現(xiàn)、商業(yè)實現(xiàn)。?
?? ??? ??? ?連接的客戶端:putty、SecureCRT、XShell
?? ??? ??? ?守護進程sshd,監(jiān)聽端口號:22
?? ??? ??? ?兩個驗證:主機驗證:需要輸入server的IP;用戶驗證:需要輸入用戶名密碼
?? ??? ??? ?驗證機制:密碼驗證機制、公鑰認證機制
?? ??? ??? ?驗證機制:基于口令的安全驗證、基于秘鑰的安全驗證
?? ??? ?
?? ??? ?非對稱加密:
?? ??? ??? ?通過公鑰、私鑰進行加密、解密。不論是公鑰加密或者私鑰加密的數(shù)據(jù),都能用對應的私鑰或者公鑰解密
?? ??? ??? ?公鑰放服務器端、私鑰放本機
?? ??? ??? ?
?? ??? ?SSH安全機制驗證過程:
?? ??? ??? ?1.創(chuàng)建一個密鑰對,id_rsa(私鑰)、id_rsa.pub(公鑰),公鑰放到服務器(目標機)上
?? ??? ??? ?2.將公鑰的內容追加到目標機的授權文件中
?? ??? ??? ?

任務:
?? ?1.確保master主機,軟件包全部上傳到/opt/software下,jdk、hadoop已解壓安裝到了/usr/local/src下,且環(huán)境變量JAVA_HOME、HADOOP_HOME已配置(主機名、IP地址和主機名映射、防火墻關閉)java、hadoop命令都能識別
?? ?2.克隆master主機,克隆2臺,名字分別為slaver1、slaver2
?? ?3.開啟3臺虛擬機、使用Xshell進行連接
?? ?4.更改slaver1主機名、ip地址和主機名的映射關系、更改slaver2主機名、3臺主機ip地址和主機名的映射關系
?? ?
?? ?使用ssh-keygen命令時,第一次回車、第二次輸入y后,回車、第三第四次都回車,秘鑰對就生成好了,3臺主機都需要執(zhí)行

?? ??? ?
配置免密登錄(master到slaver1、slaver2;slaver1、slaver2到master)
?? ?1.前提:有3個節(jié)點,每個節(jié)點都安裝了JDK、Hadoop單機版、主機名、主機名和IP映射都配置好、環(huán)境變量JAVA_HOME、HADOOP_HOME已配置(主機名、IP地址和主機名映射、防火墻關閉)java、hadoop命令都能識別
?? ?
?? ?配置本主機免密登錄步驟:
?? ??? ?1.在本主機使用ssh-keygen -t rsa -P ''生成密鑰對
? ? ? ? ? ? ? ? ? ?.將id_rsa.pub的內容追加本機的授權文件authorized_key中
?? ??? ?
?? ?配置master到slaver1、slaver2免密登錄:
?? ??? ?1.在3個節(jié)點上都使用ssh-keygen -t rsa -P ''生成密鑰對
?? ??? ?2.將master的公鑰id_rsa.pub的內容追加slaver1的授權文件authorized_key中

?? ?配置slaver1、slaver2到master免密登錄
?? ??? ?1.在3個節(jié)點上都使用ssh-keygen -t rsa -P ''生成密鑰對
?? ??? ?2.將slaver2的公鑰id_rsa.pub的內容追加master的授權文件authorized_key中

ssh-keygen -t rsa -P ''
?ssh-keygen -t rsa -P ''
?ssh-keygen -t rsa -P ''
cd ~/.ssh/ = cd /root/.ssh/
? ls
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys?? ?

#slave1
[hadoop@slave1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[hadoop@slave1 .ssh]$ ls ~/.ssh/
#slave2
[hadoop@slave2 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[hadoop@slave2 .ssh]$ ls ~/.ssh/
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys?? ?
chmod 600 ~/.ssh/authorized_keys

修改 SSH 配置文件"/etc/ssh/sshd_conchmod 600 ~/.ssh/authorized_keysfig"的下列內容
#master
[hadoop@master .ssh]$ su - root
[root@master ~]# vi /etc/ssh/sshd_config
PubkeyAuthentication yes
#slave1
[hadoop@slave1 .ssh]$ su - root
[root@slave1 ~]# vi /etc/ssh/sshd_config
PubkeyAuthentication yes
#slave2
[hadoop@slave2 .ssh]$ su - root
[root@slave2 ~]# vi /etc/ssh/sshd_config
PubkeyAuthentication yes
設置完后需要重啟 SSH 服務,才能使配置生效。
?systemctl restart sshd
systemctl restart sshd
systemctl restart sshd
master
scp ~/.ssh/id_rsa.pub master@slave1:~/
?scp ~/.ssh/id_rsa.pub hadoop@slave2:~/
?cat ~/id_rsa.pub >>~/.ssh/authorized_keys
slave1
scp ~/.ssh/id_rsa.pub slave1@master:~/
scp ~/.ssh/id_rsa.pub slave1@slave2:~/
?cat ~/id_rsa.pub >>~/.sh/authorized_keys
slave2
scp ~/.ssh/id_rsa.pub slave2@slave1:~/
scp ~/.ssh/id_rsa.pub slave2@master:~/
?cat ~/id_rsa.pub >>~/.ssh/authorized_keys

rm -f ~/id_rsa.pub
rm -f ~/id_rsa.pub
rm -f ~/id_rsa.pub
看 查看 3個 節(jié)點 authorized_keys 文件
cat ~/.ssh/authorized_keys
?? ?####簡單的方法:

su - root
[root@master ~]# vi /etc/ssh/sshd_config
PubkeyAuthentication yes
?? ??? ?
1.知道服務器密碼的情況
#免密碼登錄被控的主機(ip是被控的,之后輸入yes,還會讓你輸入被控的密碼)
一定要修改hosts,三個均改,
若四臺則四臺每個都改且 每個/etc/hosts 中添加四個IP主機名

vim /etc/hosts?
192.168.28.145 root
192.168.28.144 slave1
192.168.28.143 slave2
cd /root/.ssh/?
ssh-keygen -t rsa

#上面的命令后三次回車
??


注意:cd /root/.ssh/ ? rm -rf known_hosts
在/root/.ssh/ 里面只是保留authorized_keys ?id_rsa ?id_rsa.pub兩個文件其余刪完否則會配失敗

#然后把想要免密登錄的服務器加進來
ssh-copy-id -i /root/.ssh/id_rsa.pub root@slave1
ssh-copy-id -i /root/.ssh/id_rsa.pub root@slave12
?


cd /root/.ssh/?
2.不知道服務器密碼的情況
#例子:pub能免密登錄pri(就是pri是被控的主機)
ssh-keygen -t rsa(兩臺都操作)
#上面的命令后三次回車
?#pub中
?cd /root/.ssh/
#(復制id_rsa.pub里的
?
Pri中
?
cd /root/.ssh/
vim authorized_keys ? ?#這個文件是自己寫的,內容是pub的id_rsa.pub里的
?
#在pub執(zhí)行下面的
ssh-copy-id -i /root/.ssh/id_rsa.pub root@pri的ip
#輸入yes就可以了
#如果不是22端口,就在后面加上 (-p 端口)
ssh-copy-id -i /root/.ssh/id_rsa.pub root@pri的ip -p 端口

?


5.hadoop集群運行

1.免密登錄
2.Hadoop的配置文件:4個
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
/usr/loacal/src/hadoop-2.7.6/etc/hadoop

記住2個路徑:
軟件包位置:
?? ?/opt/software/
軟件安裝路徑:
?? ?/usr/loacal/src/

3.配置文件:
?? ?xml有規(guī)則:
?? ??? ?a,在<configuration></configuration>標簽中配置
?? ??? ?b,<property></property>標簽中配置具體的name、value
?? ??? ?c,<name>參數(shù)名</name>,參數(shù)名不能隨便寫
?? ??? ?d,<value>參數(shù)值</value>
<property>
?? ?<name>參數(shù)名</name>
?? ?<value>參數(shù)值</value>
</property>
?? ??? ?
4.如何修改配置文件
?? ?a,<name>參數(shù)名</name>參數(shù)名是固定的寫法,不能瞎造,具體名字參看官網(wǎng)
?? ?b,<value>參數(shù)值</value>標簽中的值是我們可修改的,主要是主機名或者IP、端口號、整數(shù)值、hadoop運行產(chǎn)生的文件存放路徑
?? ?c,<!-- -->是xml中的注釋內容

5.如何啟動偽分布式?
?? ?a,按照實驗文檔4完成相應的配置后,在master上執(zhí)行格式化命令:hdfs namenode -format
?? ?b,格式化完畢,分別啟動nameNode、seconderyNamenode、dataNode、yarn,啟動命令從start開始都要手動敲,不能出錯
?? ??? ??? ??? ??? ?hadoop-daemon.sh start namenode
?? ??? ??? ??? ??? ?hadoop-daemon.sh start secondarynamenode
?? ??? ??? ??? ??? ?hadoop-daemon.sh start datanode
?? ??? ??? ??? ??? ?start-yarn.sh
?? ??? ??? ??? ??? ?hadoop-daemon.sh stop namenode
?? ??? ??? ??? ??? ?hadoop-daemon.sh stop secondarynamenode
?? ??? ??? ??? ??? ?hadoop-daemon.sh stop datanode
?? ??? ??? ??? ??? ?stop-yarn.sh
6.驗證偽分布式
?? ?在master上執(zhí)行進程查詢命令:jps
?? ??? ?出現(xiàn)一下進程就算成功:
?? ??? ??? ??? ??? ??? ??? ??? ?[root@master hadoop]# jps
?? ??? ??? ??? ??? ??? ??? ??? ??? ?2576 ResourceManager##
?? ??? ??? ??? ??? ??? ??? ??? ??? ?2418 SecondaryNameNode##
?? ??? ??? ??? ??? ??? ??? ??? ??? ?2245 DataNode##
?? ??? ??? ??? ??? ??? ??? ??? ??? ?2103 NameNode##
?? ??? ??? ??? ??? ??? ??? ??? ??? ?2711 NodeManager##
?? ??? ??? ??? ??? ??? ??? ??? ??? ?3421 Jps
至此,master主機的偽分布式已完成

7.全分布式就是偽分布式的復制,但是需要修改2個配置文件
?? ?a,在master上,找到hadoop安裝路徑下的etc下hadoop文件夾,配置masters和slavers
?? ?b,將master的hadoop安裝文件夾,遠程拷貝到slaver1、slaver2上
?? ??? ?scp -r /usr/loacal/src/hadoop-2.7.6/ root@slaver1:/usr/loacal/src/hadoop-2.7.6/
?? ??? ?scp -r /usr/loacal/src/hadoop-2.7.6/ root@slaver2:/usr/loacal/src/hadoop-2.7.6/
?? ?c,在master啟動集群:start-all.sh,或者分別啟動namenode、secondarynamenode、datanode、yarn

8.hadoop啟動只有單節(jié)點
?? ?原因有很多,一般情況:
?? ??? ?a,master節(jié)點上,主機名為localhost的原因
?? ??? ?b,復制過去的usr/loacal/src/hadoop/dfs/data下有一個VERSION,刪除這個文件,或者清空data
?? ??? ?c,重新格式化
?? ??? ?d,檢查主機名、主機名與IP的映射關系、防火墻是否關閉
9.查看集群狀態(tài)
?? ?a,HDFS集群狀態(tài):master:50070
?? ?b,secondaryNamenode狀態(tài):master:50090
?? ?c,map-reduce運行web界面:master:8088

10.分布式文件系統(tǒng)命令行
?? ?和linux命令一致,不過是多了hdfs dfs的前綴
?? ?上傳linux文件到hdfs系統(tǒng)中:hdfs dfs -put
?? ?在hdfs系統(tǒng)中創(chuàng)建文件夾: hdfs dfs -mkdir
?? ?在hdfs系統(tǒng)中查看文件:hdfs dfs -cat

11.運行wordcount例子
?? ??? ?現(xiàn)在linux的root目錄下創(chuàng)建data.txt文件,內容為實驗文檔要求的內容
?? ??? ?在hdfs上創(chuàng)建文件夾:hdfs dfs -mkdir /input
?? ??? ?上傳root目錄下創(chuàng)建data.txt文件到hdfs系統(tǒng)上,hdfs dfs -put /root/data.txt /input/
?? ??? ?運行wordcount例子,要求在hdfs系統(tǒng)上沒有output文件夾,如果有就刪掉:
?? ??? ??? ?hadoop jar hadoop安裝目錄的example wordcount /input/data.txt /output

?

6.Hive組件安裝配置

1.Hive是什么?
?

Hive是基于Hadoop的數(shù)據(jù)倉庫工具,可以用來對HDFS中存儲的數(shù)據(jù)進行查詢和分析。Hive能夠將HDFS上結構化的數(shù)據(jù)文件映射為數(shù)據(jù)庫表,并提供SQL查詢功能,將SQL語句轉變成MapReduce任務來執(zhí)行。

Hive對存儲在HDFS中的數(shù)據(jù)進行分析和管理,它可以將結構化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,通過SQL查詢分析需要的內容,查詢Hive使用的SQL語句簡稱Hive SQL(HQL)。

Hive通過簡單的SQL語句實現(xiàn)快速調用MapReduce機制進行數(shù)據(jù)統(tǒng)計分析,因此不必專門開發(fā)MapReduce應用程序即可實現(xiàn)大數(shù)據(jù)分析。

Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結構化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供類SQL查詢功能。

2.Hive的優(yōu)缺點
?? ?優(yōu)點:簡單容易上手、可擴展性強、元數(shù)據(jù)管理、容錯性強、延展性強、熱擴容
?? ?缺點:HQL表達能力有限、效率較低、調優(yōu)困難、計算過程可控性差

3.hive組織架構

a,hive與hadoop的關系
Hive構建在Hadoop之上,HQL中對查詢語句的解釋、優(yōu)化、生成查詢計劃是由Hive完成的。Hive讀取的所有數(shù)據(jù)都是存儲在Hadoop文件系統(tǒng)中。Hive查詢計劃被轉化為MapReduce任務,在Hadoop中執(zhí)行。

b,hive與數(shù)據(jù)庫的關系
hive支持了絕大多數(shù)的語句(如DDL、DML)以及常見的聚合函數(shù)、連接查詢、條件查詢等操作。
具有sql數(shù)據(jù)庫的外表,但應用場景完全不同,hive只適合用來做批量數(shù)據(jù)統(tǒng)計分析
Hive不適合用于聯(lián)機(online)事務處理,也不提供實時查詢功能。它最適合應用在基于大量不可變數(shù)據(jù)的批處理作業(yè)。


1.5?? ?Hive的數(shù)據(jù)存儲
1、Hive中所有的數(shù)據(jù)都存儲在 HDFS 中,沒有專門的數(shù)據(jù)存儲格式(可支持Text,SequenceFile,ParquetFile,RCFILE等)
2、只需要在創(chuàng)建表的時候告訴 Hive 數(shù)據(jù)中的列分隔符和行分隔符,Hive 就可以解析數(shù)據(jù)。
3、Hive 中包含以下數(shù)據(jù)模型:DB、Table,External Table,Partition,Bucket。
??? ?db:在hdfs中表現(xiàn)為${hive.metastore.warehouse.dir}目錄下一個文件夾
??? ?table:在hdfs中表現(xiàn)所屬db目錄下一個文件夾
??? ?external table:外部表, 與table類似,不過其數(shù)據(jù)存放位置可以在任意指定路徑
普通表: 刪除表后, hdfs上的文件都刪了
External外部表刪除后, hdfs上的文件沒有刪除, 只是把文件刪除了
??? ?partition:在hdfs中表現(xiàn)為table目錄下的子目錄
??? ?bucket:桶, 在hdfs中表現(xiàn)為同一個表目錄下根據(jù)hash散列之后的多個文件, 會根據(jù)不同的文件把數(shù)據(jù)放到不同的文件中?

1.6 mysql安裝
??

?# 關閉防火墻服務
?? ?[root@master ~]# systemctl stop firewalld
?? ?# 設置防火墻服務開機不啟動
?? ?[root@master ~]# systemctl disable firewalld?

?? ?1.查看之前是否安裝過mysql,3個節(jié)點都要執(zhí)行
?? ??? ?#卸載自帶環(huán)境
?? ??? ?# 查詢已安裝的 mariadb 軟件包
?? ??? ?[root@master software]# rpm -qa |grep mariadb
?? ??? ??? ?mariadb-libs-5.5.68-1.el7.x86_64
?? ??? ?# 卸載 mariadb 軟件包
?? ??? ?[root@master software]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64?? ?
?? ??? ?
?? ??? ?#查詢并卸載系統(tǒng)老版本的Mysql
?? ??? ?[root@master ~]# rpm -qa |grep mysql
?? ??? ?如果有,就卸載掉
?? ??? ?rpm -e --nodeps 文件名
?? ??? ?
?? ?2.安裝libaio依賴環(huán)境。

?? ??? ?輸入指令:rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm

?? ?3.安裝net-tools依賴環(huán)境。

?? ??? ?輸入指令:rpm -ivh net-tools-2.0-0.25.20131004git.el7.x86_64.rpm
?? ?
?? ?4.安裝mysql服務
?? ??? ?依次輸入指令:

?? ??? ?rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm

?? ??? ?rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm

?? ??? ?rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm

?? ??? ?rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm --nodeps --force
?? ??? ?將以下配置信息添加到/etc/my.cnf文件symbolic-links=0配置信息的下方。
?? ??? ??? ?default-storage-engine=innodb
?? ??? ??? ?innodb_file_per_table
?? ??? ??? ?collation-server=utf8_general_ci
?? ??? ??? ?init-connect='SET NAMES utf8'
?? ??? ??? ?character-set-server=utf8

?? ?5.啟動mysql服務
?? ??? ?輸入命令:systemctl start mysqld
?? ??? ?查看mysql服務是否啟動/查詢 MySQL 數(shù)據(jù)庫狀態(tài) ?service mysqld status
??? ??? ?mysqld 進程狀態(tài)為 active (running),則表示 MySQL 數(shù)據(jù)庫正常運行。
??? ?如果 mysqld 進程狀態(tài)為 failed,則表示 MySQL 數(shù)據(jù)庫啟動異常。此時需要排查 /etc/my.cnf 文件。

?? ??? ?[root@master software]# service mysqld status
?? ??? ??? ??? ?Redirecting to /bin/systemctl status mysqld.service
?? ??? ??? ??? ?● mysqld.service - MySQL Server
?? ??? ??? ??? ? ? Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
?? ??? ??? ??? ? ? Active: active (running) since 二 2022-10-25 15:26:49 CST; 15s ago
?? ??? ??? ??? ??? ? Docs: man:mysqld(8)
?? ??? ??? ??? ??? ??? ? ? http://dev.mysql.com/doc/refman/en/using-systemd.html
?? ??? ??? ??? ? ?Process: 40033 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
?? ??? ??? ??? ? ?Process: 39975 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
?? ?6.重置mysql密碼
?? ??? ?查看mysql安裝時隨機生成的密碼。

?? ??? ?輸入指令:grep 'temporary password' /var/log/mysqld.log
?? ??? ??? ?或者:cat /var/log/mysqld.log | grep 'temporary password'
?? ??? ?
?? ??? ?執(zhí)行mysql_secure_installation命令初始化MySQL數(shù)據(jù)庫
?? ??? ?
?? ??? ?[root@master ~]# mysql_secure_installation
?? ??? ?Securing the MySQL server deployment.
root@localhost: JYgT+Nl)C56=
?? ??? ?
?? ??? ?先輸入查到的臨時密碼
?? ??? ?輸入新密碼:Password123$
?? ??? ?# 再次輸入新密碼 Password123$
# 輸入 y
# 輸入 y
# 輸入 n
# 輸入 y
# 輸入 y
# 添加 root 用戶從本地和遠程訪問 MySQL 數(shù)據(jù)庫表單的授權。
[root@master ~]# mysql -uroot -p?? ?
# 輸入新設定的密碼 Password123$
mysql> grant all privileges on *.* to root@'localhost'identified by 'Password123$'; ?# 添加 root 用戶本地訪問授權

mysql> grant all privileges on *.* to root@'%' identified by'Password123$'; # 添加 root 用戶遠程訪問授權?? ?

mysql> flush privileges; ?# 刷新授權

mysql> select user,host from mysql.user where user='root'; # 查詢 root 用戶授權情況
mysql> exit; # 退出 MySQL 數(shù)據(jù)庫

? # ?DBPassword=Zabbix@2024
按照實驗步驟設置對應的

?? ?7.解壓hive
?? ??? ?[root@master ~]# tar -zxvf /opt/software/apache-hive-2.0.0-bin.tar.gz -C /usr/local/src
?? ??? ?
?? ??? ?將解壓后的apache-hive-2.0.0-bin文件夾更名為hive;
?? ??? ?[root@master ~]# mv /usr/local/src/apache-hive-2.0.0-bin usr/local/src/hive
?? ?8.修改環(huán)境變量,并使其生效
?? ?[root@master ~]# vim /etc/profile?? ??? ?# 在文件末尾追加以下配置內容
?? ??? ?# set hive environment
?? ??? ?export HIVE_HOME=/usr/local/src/hive
?? ??? ?export PATH=$PATH:$HIVE_HOME/bin
?? ?
?? ?[root@master ~]source /etc/profile ?#使環(huán)境變量生效
?? ?
?? ?9.修改hive的配置文件
?? ??? ?將/usr/local/src/hive文件夾下hive-default.xml.template文件,更名為hive-site.xml。
?? ??? ?[root@master ~]$ cp /usr/local/src/hive/conf/hive-default.xml.template /usr/local/src/hive/conf/hive-site.xml
? ?
?? ?通過 vi 編輯器修改 hive-site.xml 文件實現(xiàn) Hive 連接 MySQL 數(shù)據(jù)庫,并設定Hive 臨時文件存儲路徑。


7? 如何在vim下進行快速查找?
?

若要向下滾動屏幕,請使用 CTRL + Y ,向上滾動,請使用 CTRL + E
Linux中使用vim指令進行文檔編輯時,有時想快速找到某一行號或某一個關鍵字,操作如下:
1、查找n(n是數(shù)字)行的方式,打開文檔后連續(xù)按n、shift+g可以快速定位的n行。
2、查找關鍵字,打開文檔按“/”,然后輸入要查找的內容(會在終端的左下方顯示輸入內容),最后按回車鍵可以迅速找到指定內容。
使用:u可以進入上一步。
注意要esc在命令狀態(tài)下。

1、臨時顯示行號
只須按ESC鍵退出編輯內容模式,輸入“:” ,再輸入“set number”或者“set nu”后按回車鍵,就可以顯示行號。
行號顯示只是暫時的。退出vim后再次打開vim就不顯示行號了。
取消顯示行號:輸入“:set nonu”

2、永久顯示行號
需要修改vim配置文件vimrc。
在默認情況下,用戶宿主目錄(~)中是沒有此文件的,需要在當前用戶的宿主目錄中手工建立,即使用下面的命令:
vim ~/.vimrc ,在打開的vimrc文件中最后一行輸入:set number 或者 set nu,然后保存退出。
再次用vim打開文件時,就會顯示行號

1、vim中用大寫的字母G命令跳到文件尾。G命令可以跳到相應的行,默認缺省狀態(tài)是跳轉到最后一行即文件尾。
2、vim中使用小寫的字母gg(按兩次)命令跳到文件頭。gg命令可以跳到相應的行,默認缺省狀態(tài)是跳轉到第一行即文件頭。
?? ?[hadoop@master ~]$ vim /usr/local/src/hive/conf/hive-site.xml
?? ?設置 MySQL 數(shù)據(jù)庫連接
?? ?配置 MySQL 數(shù)據(jù)庫 root 的密碼。(需要看hive.txt文件)
?? ?驗證元數(shù)據(jù)存儲版本一致性。若默認 false,則不用修改。
?? ?驗證元數(shù)據(jù)存儲版本一致性。若默認 false,則不用修改
?? ?配置數(shù)據(jù)庫驅動
?? ?配置數(shù)據(jù)庫用戶名 javax.jdo.option.ConnectionUserName 為 root。
?? ?將 以 下 位 置 的 ${system:java.io.tmpdir}/${system:user.name} 替 換 為
?? ?“/usr/local/src/hive/tmp”目錄及其子目錄。 需要替換以下 4 .5 處配 置


?? ?10.在Hive安裝目錄中創(chuàng)建臨時文件夾tmp。
?? ??? ?[root@master ~]$ mkdir /usr/local/src/hive/tmp
至此,Hive 組件安裝和配置完成

?? ?11.初始化hive

?? ?1)將MySQL數(shù)據(jù)庫驅動文件/opt/software/mysql-connector-java-5.1.47.jar
?? ??? ?拷貝到Hive安裝目錄的/usr/local/src/hive/lib目錄下。
?? ??? ?[root@master ~]# cp /opt/software/mysql-connector-java-5.1.47.jar /usr/local/src/hive/lib
?? ?(2)刪除/usr/local/src/hadoop/share/hadoop/yarn/lib/jline-0.9.94.jar
?? ??? ?文件,若未刪除該文件會導致Hive元數(shù)據(jù)初始化失敗。(我們的安裝包中已經(jīng)給大家刪除過了)
?? ??? ?[root@master ~]$ rm -f /usr/local/src/hadoop/share/hadoop/yarn/lib/jline-0.9.94.jar


?? ?(3)啟動Hadoop相關進程。
?? ??? ?[root@master ~]$ start-all.sh
?? ?12.使用schematool升級元數(shù)據(jù),將Hive的元數(shù)據(jù)重新寫入MySQL數(shù)據(jù)庫中。
?? ??? ?[root@master ~]$ schematool -initSchema -dbType mysql
?? ??? ?Metastore connection URL: ? ? ? ?jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false
?? ??? ?Metastore Connection Driver : ? ?com.mysql.jdbc.Driver
?? ??? ?Metastore connection User: ? ? ? root
?? ??? ?Starting metastore schema initialization to 2.0.0
?? ??? ?Initialization script hive-schema-2.0.0.mysql.sql
?? ??? ?Initialization script completed
?? ??? ?schemaTool completed
?? ??? ?以上命令結果顯示schemaTool completed,則表示Hive元數(shù)據(jù)寫入MySQL數(shù)據(jù)庫成功。

?? ?13.啟動hive
?? ?(1)在系統(tǒng)的任意目錄下,執(zhí)行hive命令即可啟動Hive組件。
?? ??? ?[root@master ~]$ hive

?? ??? ?
?? ?如果初始化失敗,檢查mysql數(shù)據(jù)庫中有沒有hive這樣一個數(shù)據(jù)庫,如果有,把他刪掉,然后重新初始化

?


8. zookeeper組件的安裝與配置

1.zookeeper是什么?
Zookeeper是一個分布式協(xié)調服務;就是為用戶的分布式應用程序提供協(xié)調服務
?? ?A、zookeeper是為別的分布式程序服務的
?? ?B、Zookeeper本身就是一個分布式程序(只要有半數(shù)以上節(jié)點存活,zk就能正常服務)
?? ?C、Zookeeper所提供的服務涵蓋:主從協(xié)調、服務器節(jié)點動態(tài)上下線、統(tǒng)一配置管理、分布式共享鎖、統(tǒng)一名稱服務……
?? ?D、雖然說可以提供各種服務,但是zookeeper在底層其實只提供了兩個功能:
?? ??? ?管理(存儲,讀取)用戶程序提交的數(shù)據(jù);
?? ??? ?并為用戶程序提供數(shù)據(jù)節(jié)點監(jiān)聽服務;

2.zookeeper的特點
?? ?(1)順序一致性:從同一客戶端發(fā)起的事務請求,最終將會嚴格地按照順序被應用到ZooKeeper中去。
?? ?(2)原子性:所有事務請求的處理結果在整個集群中所有機器上的應用情況是一致的,要么整個集群中所有的機器都成功應用了某一個事務,要么都沒有應用。
?? ?(3)單一系統(tǒng)映像:無論客戶端連到哪一個ZooKeeper服務器上,其看到的服務端數(shù)據(jù)模型都是一致的。
?? ?(4)可靠性:一旦一次更改請求被應用,更改的結果就會被持久化,直到被下一次更改覆蓋。

3.zookeeper的角色和工作機制
在ZooKeeper中沒有選擇傳統(tǒng)的Master/Slave概念,而是引入了leader、follower和observer三種角色。ZooKeeper集群中的所有機器通過一個leader選舉過程來選定一臺稱為“l(fā)eader”的機器,leader既可以為客戶端提供寫服務又能提供讀服務。
除了leader外,follower和observer都只能提供讀服務。follower和observer唯一的區(qū)別在于observer機器不參與leader的選舉過程,也不參與寫操作的“過半寫成功”策略,

Leader是通過內部的選舉機制臨時產(chǎn)生的
以一個簡單的例子來說明整個選舉的過程.
假設有五臺服務器組成的zookeeper集群,它們的id從1-5,同時它們都是最新啟動的,也就是沒有歷史數(shù)據(jù),在存放數(shù)據(jù)量這一點上,都是一樣的.假設這些服務器依序啟動,來看看會發(fā)生什么.
1) 服務器1啟動,此時只有它一臺服務器啟動了,它發(fā)出去的報沒有任何響應,所以它的選舉狀態(tài)一直是LOOKING狀態(tài)
2) 服務器2啟動,它與最開始啟動的服務器1進行通信,互相交換自己的選舉結果,由于兩者都沒有歷史數(shù)據(jù),所以id值較大的服務器2勝出,但是由于沒有達到超過半數(shù)以上的服務器都同意選舉它(這個例子中的半數(shù)以上是3),所以服務器1,2還是繼續(xù)保持LOOKING狀態(tài).
3) 服務器3啟動,根據(jù)前面的理論分析,服務器3成為服務器1,2,3中的老大,而與上面不同的是,此時有三臺服務器選舉了它,所以它成為了這次選舉的leader.
4) 服務器4啟動,根據(jù)前面的分析,理論上服務器4應該是服務器1,2,3,4中最大的,但是由于前面已經(jīng)有半數(shù)以上的服務器選舉了服務器3,所以它只能接收當小弟的命了.
5) 服務器5啟動,同4一樣,當小弟.

4.zookeeper集群搭建
在master節(jié)點上:
(1)ZooKeeper的安裝包zookeeper-3.4.8.tar.gz已放置在Linux系統(tǒng)/opt/software目錄下。
(2)解壓安裝包到指定目標,在Master節(jié)點執(zhí)行如下命令。
[root@master software]# tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/src/
[root@master src]# mv zookeeper-3.4.5 zookeeper
(3)在 ZooKeeper 的安裝目錄下創(chuàng)建 data 和 logs 文件夾。
[root@master ~]# cd /usr/local/src/zookeeper
[root@master zookeeper]# mkdir data && mkdir logs
(4)將編號寫入myid文件內
[root@master zookeeper]# echo 1 > data/myid
(5)修改配置文件
[root@master zookeeper]# cp conf/zoo_sample.cfg conf/zoo.cfg
[root@master zookeeper]# vi /usr/local/src/zookeeper/conf/zoo.cfg
修改內容:
dataDir=/usr/local/src/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
在zoo.cfg文件末尾加上:
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
(6)從master節(jié)點將zookeeper拷貝到slaver1、slaver2上
[root@master ~] # scp -r /usr/local/src/zookeeper root@slave1:/usr/local/src/
在slaver1上修改/usr/local/src/zookeeper/data/myid,將里面數(shù)字改成2
[root@slaver1 ~]vim /usr/local/src/zookeeper/data/myid
[root@master ~] # scp -r /usr/local/src/zookeeper root@slave2:/usr/local/src/
在slaver2上修改/usr/local/src/zookeeper/data/myid,將里面數(shù)字改成3
[root@slaver2 ~]vim /usr/local/src/zookeeper/data/myid
(7)master上修改環(huán)境變量
[root@master ~]vim /etc/profile
export ZOOKEEPER_HOME=/usr/local/src/zookeeper
# ZooKeeper 可執(zhí)行程序目錄
export PATH=$PATH:$ZOOKEEPER_HOME/bin
(8)把master的/etc/profile拷貝到slaver1,slaver2上
scp /etc/profile root@slave1:/etc/profile
scp /etc/profile root@slave2:/etc/profile
分別在每個節(jié)點上,執(zhí)行命令:source /etc/profile,讓環(huán)境變量生效
(9)在每個節(jié)點上啟動zookeeper
[root@master ~] zkServer.sh start
[root@slave1 ~] zkServer.sh start
[root@slave2 ~] zkServer.sh start
(10)查看zookeeper運行狀態(tài)
在每個節(jié)點執(zhí)行命令:
[root@master ~]$ zkServer.sh status
[root@slave1 ~]$ zkServer.sh status
[root@slave2 ~]$ zkServer.sh status


9. HBASE組件的安裝與配置

1.什么是HBASE?
HBase是一個依賴zookeeper的高可靠的列式存儲的非關系型數(shù)據(jù)庫

2.HBase主要特性
?? ?面向列設計:面向列表(簇)的存儲和權限控制,列(簇)獨立檢索。
?? ?支持多版本:每個單元中的數(shù)據(jù)可以有多個版本,默認情況下,版本號可自動分配,版本號就是單元格插入時的時間戳。
?? ?稀疏性:為空的列不占用存儲空間,表可以設計得非常稀疏。
?? ?高可靠性:WAL機制保證了數(shù)據(jù)寫入時不會因集群異常而導致寫入數(shù)據(jù)丟失,Replication機制保證了在集群出現(xiàn)嚴重的問題時,數(shù)據(jù)不會發(fā)生丟失或損壞。
?? ?高性能:底層的據(jù)結構和Rowkey有序排列等架構上的獨特設計,使得HBase具有非常高的寫入性能。通過科學性地設計RowKey可讓數(shù)據(jù)進行合理的Region切分,主鍵索引和緩存機制使得HBase在海量數(shù)據(jù)下具備高速的隨機讀取性能。
3.HBase(NoSQL)與RDBMS的區(qū)別
?? ?1.數(shù)據(jù)類型:Hbase只有簡單的數(shù)據(jù)類型,只保留字符串;傳統(tǒng)數(shù)據(jù)庫有豐富的數(shù)據(jù)類型。
?? ?2.數(shù)據(jù)操作:Hbase只有簡單的插入、查詢、刪除、清空等操作,表和表之間是分離的,沒有復雜的表和表之間的關系;傳統(tǒng)數(shù)據(jù)庫通常有各式各樣的函數(shù)和連接操作。
?? ?3.存儲模式:Hbase是基于列存儲的,每個列族都由幾個文件保存,不同列族的文件是分離的,這樣的好處是數(shù)據(jù)即是索引,訪問查詢涉及的列大量降低系統(tǒng)的I/O,并且每一列由一個線索來處理,可以實現(xiàn)查詢的并發(fā)處理;傳統(tǒng)數(shù)據(jù)庫是基于表格結構和行存儲,其沒有建立索引將耗費大量的I/O并且建立索引和物化試圖需要耗費大量的時間和資源。
?? ?4.數(shù)據(jù)維護:Hbase的更新實際上是插入了新的數(shù)據(jù);傳統(tǒng)數(shù)據(jù)庫只是替換和修改。
?? ?5.可伸縮性:Hbase可以輕松的增加或減少硬件的數(shù)目,并且對錯誤的兼容性比較高;傳統(tǒng)數(shù)據(jù)庫需要增加中間層才能實現(xiàn)這樣的功能。
?? ?6.事務:Hbase只可以實現(xiàn)單行的事務性,意味著行與行之間、表與表之前不必滿足事務性;傳統(tǒng)數(shù)據(jù)庫是可以實現(xiàn)跨行的事務性。

4.HBASE架構
HBase的架構是依托于Hadoop的HDFS作為最基本存儲基礎單元,在HBase的集群中由一個Master主節(jié)點管理多個RegionServer,而ZooKeeper進行協(xié)調操作。
(1)HMaster
HMaster用于啟動任務管理多個HRegionServer,偵測各個HRegionServer之間的狀態(tài),當一個新的HRegionServer登錄到HMaster時,HMaster會告訴它等待分配數(shù)據(jù)。而當某個HRegionServer死機時,HMaster會把它負責的所有HRegion標記為未分配,并恢復HRegionServer的故障。
(2)HRegionServer
HBase中的所有數(shù)據(jù)從底層來說一般都是保存在HDFS中的,用戶通過一系列HRegionServer獲取這些數(shù)據(jù)。HRegionServer主要負責響應用戶I/O請求,向HDFS文件系統(tǒng)讀寫數(shù)據(jù),是HBase中最核心的模塊。
(3)ZooKeeper
Apache ZooKeeper起源于Hadoop的分布式協(xié)同服務,是負責協(xié)調集群中的分布式組件,經(jīng)過多年的發(fā)展ZooKeeper已經(jīng)成為了分布式大數(shù)據(jù)框架中容錯性的標準框架,被多個分布式開源框架所應用。

5.一個圖,了解列式存儲和HBASE讀寫過程

6.HBASE安裝與配置
?? ?1.解壓縮 HBase 安裝包
[root@master ~]# tar -zxvf /opt/software/hbase-1.2.1-bin.tar.gz -C ?/usr/local/src/
?? ?2.重命名 HBase 安裝文件夾、設置環(huán)境變量
[root@master ~]# cd /usr/local/src/?
[rootp@master src]#mv hbase-1.2.1 hbase
?? ?在所有節(jié)點添加環(huán)境變量
[root@master ~]# vim /etc/profile
# set hbase environment
export HBASE_HOME=/usr/local/src/hbase
export PATH=$HBASE_HOME/bin:$PATH
?? ?在所有節(jié)點使環(huán)境變量生效
[rootmaster ~]# source /etc/profile
將master節(jié)點的/etc/profile文件遠程拷貝到slaver1、slaver2上
scp -r /etc/profile root@slave1:/etc/profile
scp -r /etc/profile root@slave2:/etc/profile
?? ?3.修改配置文件hbase-env.sh
?? ?[root@master ~]# cd /usr/local/src/hbase/conf/ ? ? ?(找自己hadoop軟件的安裝路徑)
?? ?[root @master conf]# vim hbase-env.sh?
?? ?#Java 安裝位置
?? ?export JAVA_HOME=/usr/local/src/jdk1.8.0_181 ? ? ? ?( 找自己hadoop軟件的jdk安裝路徑)
?? ?#值為 true 使用 HBase 自帶的 ZooKeeper,值為 false 使用在 Hadoop 上裝的 ZooKeeper
?? ?export HBASE_MANAGES_ZK=false?
?? ?#HBase 類路徑
?? ?export HBASE_CLASSPATH=/usr/local/src/hadoop/etc/hadoop/ ?
? ? ? ? ? ? ? ? ?(找自己hadoop軟件的安裝路徑)

?? ?4.修改配置文件hbase-site.xml
?? ?按照實驗文檔上的添加即可
?? ?vim hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
<description>The directory shared by region servers.</description>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
<description>使用 master 節(jié)點 60010 端口
</description>
</property>

<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>Property from ZooKeeper's config zoo.cfg. The port at
which the clients will connect.使用 master 節(jié)點 2181 端口
</description>
</property>

<property>
<name>zookeeper.session.timeout</name>
<value>120000</value>
<description>ZooKeeper 超時時間
</description>
</property>

<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
<description>ZooKeeper 管理節(jié)點
</description>

<property>
<name>hbase.tmp.dir</name>
<value>/usr/local/src/hbase/tmp</value>
<description>HBase 臨時文件路徑
</description>
</property>

<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>使用分布式 HBase
</description>
</property>
</configuration>


?? ?5.在 master ?節(jié)點修改 regionservers ?文件
?? ?#刪除 localhost,每一行寫一個 slave 節(jié)點主機機器名
?? ?[root @master conf]$ vim regionservers?
?? ??? ?slave1
?? ??? ?slave2
?? ?
?? ?6.在 master 節(jié)點創(chuàng)建 hbase.tmp.dir 目錄
?? ?[root @master usr]# mkdir /usr/local/src/hbase/tmp
? ? 7.將 master 上的 hbase 安裝文件同步到 slave1 slaver2
?? ?[root @master ~]# scp -r /usr/local/src/hbase/ root@slave1:/usr/local/src/
?? ?[root @master ~]# scp -r /usr/local/src/hbase/ root@slave2:/usr/local/src/
?? ?8.啟動hbase
?? ??? ?先在master上把hadoop啟動起來,然后在每個節(jié)點上啟動zookeeper
?? ??? ?最后在master上執(zhí)行命令:start-hbase.sh啟動hbase
?? ??? ?在瀏覽器輸入master:60010看hbase的web監(jiān)控界面
在 master 節(jié)點啟動 Hadoop
?? ?start-dfs.sh
?? ?start-yarn.sh
[root@master ~]# jps
5220 ResourceManager
5687 Jps
4473 NameNode
4937 SecondaryNameNode
5338 NodeManager(因為每個人配的不一樣所以后兩個進程也可能沒有,有前四個進程即啟動成功)
4638 DataNode
[root@slave1 ~]# jps
4963 Jps
4745 NodeManager
4525 DataNode
[root@slave2 ~]# jps
4739 Jps
4309 DataNode
4510 NodeManager

在所有節(jié)點啟動 ZooKeeper
master節(jié)點,slave1,2節(jié)點均出現(xiàn) QuorumPeerMain進程即啟動成功
zkServer.sh start

jps

在 master ?節(jié)點啟動 HBase
master節(jié)點出現(xiàn)HMaster進程,slave1,2節(jié)點均出現(xiàn)HRegionServer進程即啟動成功

start-hbase.sh
jps

在master節(jié)點stop-hbase.sh

在所有節(jié)點?? ?zkServer.sh stop
在master節(jié)點?? ?
?? ?stop-yarn.sh
?? ?stop-dfs.sh

10. Flume?

tar zxvf /opt/software/apache-flume-1.7.0-bin.tar.gz -C /usr/local/
[root@master ~]# cd /usr/local/
[root@master local]# mv apache-flume-1.7.0-bin/ flume# 修改Flume安裝路徑文件夾

[root@master local]# chown -R root:root flume/# ?修改文件夾flume/歸屬用戶和歸屬組為root 用戶和 root組
使用 root ?用戶設置 Flume?

[root@master local]# vim /etc/profile # 編輯系統(tǒng)環(huán)境變量配置文件


# set flume environment
export FLUME_HOME=/usr/local/src/flume # Flume 安裝路徑
export PATH=$PATH:$FLUME_HOME/bin ?# 添加系統(tǒng) PATH 環(huán)境變量
source /etc/profile
:修改 Flume ?相應配置文件。
cd /usr/local/src/flume/conf

拷貝 flume-env.sh.template 文件并重命名為 flume-env.sh。
[hadoop@master ~]$cp flume-env.sh.template flume-env.sh

步驟三:修改并配置 flume-env.sh ?文件。刪除 JAVA_HOME 變量前的注釋,修改為 JDK 的安裝路徑。

[hadoop@master ~]$ vi /usr/local/src/flume/conf/flume-env.sh
# 修改 JAVA_HOME 參數(shù)值為 jdk 安裝路徑
export JAVA_HOME=/usr/local/src/jdk1.8.0_152
使用 flume-ng version 命令驗證安裝是否成功,若能夠正常查詢 Flume 組件版本為
1.6.0,則表示安裝成功。

若輸入 : flume-ng version 報錯

錯誤: 找不到或無法加載主類 org.apache.flume.tools.GetJavaProperty
Flume 1.7.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 511d868555dd4d16e6ce4fedc72c2d1454546707
Compiled by bessbd on Wed Oct 12 20:51:10 CEST 2016
From source with checksum 0d21b3ffdc55a07e1d08875872c00523
解決辦法

[root@master bin]# cd /usr/local/flume//bin/
[root@master bin]# vim flume-ng

在75行
java.library.path后面 括號里添加
?
2>/dev/null | grep hadoop
在110行
java.library.path后面 括號里添加
?
2>/dev/null | grep hbase

[root@master bin]# flume-ng version
Flume 1.7.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 511d868555dd4d16e6ce4fedc72c2d1454546707
Compiled by bessbd on Wed Oct 12 20:51:10 CEST 2016
From source with checksum 0d21b3ffdc55a07e1d08875872c00523
安裝成功


?? ?
?? ?
? ?
注:該文檔是我兩年前參考了很多相關官方技術文檔,當時一邊配一邊寫的,按命令配完戈組件均可運行 當時配了3遍流程,按流程走完,直接立馬運行。
?? ?
? ??
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?

?

http://www.risenshineclean.com/news/8066.html

相關文章:

  • 大收錄量的網(wǎng)站怎么做百度代理公司
  • 大連網(wǎng)站建設特色全網(wǎng)營銷推廣方式
  • 做企業(yè)網(wǎng)站需要買什么搜索推廣開戶
  • 做任務反傭金的網(wǎng)站怎樣才能上百度
  • 深圳西鄉(xiāng)建網(wǎng)站廣州抖音seo公司
  • 北京公司網(wǎng)站制作公司短網(wǎng)址在線生成
  • 各大網(wǎng)站官網(wǎng)的導航欄怎么做成品網(wǎng)站貨源1
  • 泰興做網(wǎng)站谷歌google下載
  • 期刊網(wǎng)站建設企業(yè)培訓課程安排表
  • 重慶交通建設集團有限公司網(wǎng)站seo排名點擊器
  • 安裝了兩個wordpress北京搜索引擎優(yōu)化
  • 購物幫做特惠的網(wǎng)站seo01網(wǎng)站
  • 電腦上怎么安裝wordpress靖江seo要多少錢
  • 杭州房產(chǎn)網(wǎng)二手房seo蜘蛛屯
  • 國外旅游網(wǎng)站模板下載百度指數(shù)關鍵詞未收錄怎么辦
  • 網(wǎng)站開發(fā)常用哪幾種語言百度搜索排行seo
  • 做養(yǎng)生網(wǎng)站怎么樣百度手機助手
  • 資質辦理如何提升網(wǎng)站seo排名
  • 高端網(wǎng)站建設公司增長寧波seo怎么做引流推廣
  • 阿里云怎么做網(wǎng)站時事新聞最新消息
  • 天津做網(wǎng)站找津坤科技網(wǎng)絡推廣外包注意哪些
  • 怎么用h5網(wǎng)站做動效大學生網(wǎng)頁制作成品模板
  • 視頻類網(wǎng)站開發(fā)經(jīng)驗競價推廣托管公司價格
  • 網(wǎng)站做淘寶推廣收入seo哪家強
  • 瑪伊網(wǎng)站做兼職加入要多少錢廈門最快seo
  • 怎么樣做網(wǎng)站的目錄結構友情鏈接買賣代理
  • 使用mvs2010做網(wǎng)站營銷型網(wǎng)站建設案例
  • 長葛網(wǎng)站制作成功的品牌推廣案例分析
  • 一個做女性服裝批發(fā)的網(wǎng)站_最好的關鍵詞選擇是百度seo價格
  • 站酷網(wǎng)頁版廣州網(wǎng)站排名優(yōu)化報價