系列文章目錄
全國大學生大資料技能競賽(Hadoop集群搭建)
文章目錄
- 系列文章目錄
- 前言
- 資料鏈接
- 數倉部署詳解
- (一)hbase安裝
- 1.1解壓縮
- 1.2修改組態檔
- 1.3.分發 hbase
- 1.4.配置環境變數
- 1.5.運行和測驗
- (二)數倉搭建(遠程模式)MySQL和hive的安裝
- 1.遠程部署
- 2.安裝MySQL
- 2.1前提:修改本地源
- 2.2下載MySQL
- 2.3啟動服務
- 2.4設定密碼
- 2.5遠程登錄
- 3.Slave1 上安裝 hive
- 4.master作為客戶端
- 5.啟動hive
前言
本篇博客將根據往年全國大學生大資料技能競賽的資料和今年的培訓來進行數倉部署,如圖hive包括客戶端和服務器端,每一個步驟都有相應的執行的截圖,以下博客僅作為個人搭建資料倉庫程序的記錄~如有不足之處歡迎指出,共同學習進步,附上資料鏈接,

資料鏈接
第四屆全國大學生大資料技能競賽中關于搭建資料倉庫的培訓鏈接:
https://www.qingjiaoclass.com/market/detail/7611
所有環境工具百度網盤鏈接:
https://pan.baidu.com/s/1oOW7WqHK4fiqv4Xja5f7gQ
提取碼:vvi7
在自己練習搭建資料倉庫時盡量每一步都拍快照,防止出現錯誤解決不了然后不得不重新搭建,非常麻煩
數倉部署詳解
(一)hbase安裝
1.1解壓縮
1.將hbase安裝包傳至根目錄,建立作業路徑/usr/hbase,將根目錄下的 hbase 解壓到作業路徑中,
mkdir /usr/hbase
tar -zxvf hbase-1.2.4-bin.tar.gz -C /usr/hbase

1.2修改組態檔
2.進入hbase的conf目錄下,修改組態檔hbase-env.sh
cd /usr/hbase/hbase-1.2.4/conf
vi hbase-env.sh

修改以下內容
在第21行添加
export HBASE_MANAGES_ZK=false

在第28行添加
export JAVA_HOME=/usr/java/jdk1.8.0_171
在第30行修改
export HBASE_CLASSPATH=/usr/hadoop/hadoop-2.7.3/etc/Hadoop

3.配置 hbase-site.xml
vi hbase-site.xml
添加內容到23行左右
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://master:6000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/zookeeper/zookeeper-3.4.10</value>
</property>
</configuration>

4.配置 regionservers
在這里列出了希望運行的全部 HRegionServer,一行寫一個 host,列在這里
的 server 會隨著集群的啟動而啟動,集群的停止而停止
vi regionservers

5.hadoop 組態檔拷入 hbase 的 conf 目錄下:(當前位置為 hbased 的conf 組態檔夾)
cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml .
cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml .

1.3.分發 hbase
6.分發 hbase
scp -r /usr/hbase root@slave1:/usr/
scp -r /usr/hbase root@slave2:/usr/
等待執行完畢~

1.4.配置環境變數
7.配置環境變數
vi /etc/profile
在第64行添加以下內容
# set hbase environment
export HBASE_HOME=/usr/hbase/hbase-1.2.4
export PATH=$PATH:$HBASE_HOME/bin

生效環境變數
source /etc/profile

1.5.運行和測驗
8.運行和測驗
開啟hadoop(master上執行)
cd /usr/hadoop/hadoop-2.7.3/
sbin/start-all.sh

開啟zookeeper(每臺虛擬機都執行)
cd /usr/zookeeper/zookeeper-3.4.10/
bin/zkServer.sh start

再在 master 上執行:
cd /usr/hbase/hbase-1.2.4/
bin/start-hbase.sh

再在3臺虛擬機分別執行
jps
出現下圖中框起來的內容,恭喜你~hbase搭建成功!



9.訪問 master 的 hbase web 界面
http://master IP:16010/master-status

10.查看hbase版本
hbase shell
status
version

(二)數倉搭建(遠程模式)MySQL和hive的安裝
1.遠程部署

2.安裝MySQL
slave2 上安裝 mysql server
2.1前提:修改本地源
yum -y install epel-release(如果安裝了epel源就不修改)
怎么查看是否安裝了epel源?
執行yum repolist,如果出現下圖,不修改本地源,

沒有出現的話,執行yum -y install epel-release
2.2下載MySQL
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安裝源
rpm -ivh mysql57-community-release-el7-8.noarch.rpm

查看是否有包:
mysql-community.repo
mysql-community-source.repo
cd /etc/yum.repos.d
ls或ll

安裝包
yum -y install mysql-community-server
等待安裝完畢…

2.3啟動服務
多載所有修改過的組態檔:
systemctl daemon-reload
開啟服務:
systemctl start mysqld
開機自啟:
systemctl enable mysqld

2.4設定密碼
1.安裝完畢后,/var/log/mysqld.log 檔案中會自動生成一個隨機的密碼,我們需要先取得這個隨機密碼,以用于登錄 MySQL 服務端:
grep "temporary password" /var/log/mysqld.log
mysql -uroot -p

2.MySQL 密碼安全策略:
設定密碼強度為低級:
set global validate_password_policy=0;
設定密碼長度最低為4:
set global validate_password_length=4;
修改本地密碼:
alter user 'root'@'localhost' identified by '123456';
退出:\q

2.5遠程登錄
以新密碼登陸 MySQL:
mysql -uroot -p123456
創建用戶:
create user 'root'@'%' identified by '123456';
允許遠程連接:
grant all privileges on *.* to 'root'@'%' with grant option;
重繪權限:
flush privileges;

3.Slave1 上安裝 hive
首先我們需要創建作業路徑,并將 hive 解壓,環境中 master 作為客戶端,slave1 作為服務器端,因此都需要使用到 hive,把hive安裝包在master 中,因此我們先在 master 中對 hive 進行解壓,然后將其復制到slave1 中,
把hive安裝包傳到master根目錄中
1.建立作業路徑
mkdir -p /usr/hive
2.解壓縮
tar -zxvf apache-hive-2.1.1-bin.tar.gz -C /usr/hive/

再在slave1中建立作業路徑,master遠程拷貝至/usr/hive/
mkdir -p /usr/hive
scp -r /usr/hive/apache-hive-2.1.1-bin root@slave1:/usr/hive/


3.修改/etc/profile 檔案設定 hive 環境變數,(master 和 slave1執行)
vi /etc/profile
添加以下內容
#set hive
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin
master上:

slave1上:

生效環境變數
source /etc/profile


4.因為服務端需要和 Mysql 通信,所以服務端需要 Mysql 的 lib 安裝包到 Hive_Home/conf 目錄下,
注意:mysql.jar 放在 slave2 中的目錄下,需要將其遠程復制到 slave1的 hive 的 lib 中,
將jar包傳至slave2中,再執行
scp mysql-connector-java-5.1.47-bin.jar root@slave1:/usr/hive/apache-hive-2.1.1-bin/lib
需要手動輸入密碼是因為我們設定的ssh免密登錄是指主節點可以免密登錄從節點,而從節點沒有設定ssh免密登錄,

5.回到 slave1,修改 hive-env.sh 中 HADOOP_HOME 環境變數,
cd /usr/hive/apache-hive-2.1.1-bin/conf
cp -p hive-env.sh.template hive-env.sh
vi hive-env.sh

修改第48行為
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3


6.修改 hive-site.xml 檔案(在slave1上)
vi hive-site.xml
添加以下內容
<configuration>
<!--Hive產生的元資料存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!--資料庫連接JDBC的URL地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<!--資料庫連接driver,即MySQL驅動-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!--MySQL資料庫用戶名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--MySQL資料庫密碼-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>datanucleus.schema.autoCreateALL</name>
<value>true</value>
</property>
</configuration>
4.master作為客戶端
1.解決版本沖突和 jar 包依賴問題
hadoop和hive的jar包版本不同,保留一個高版本的jar包,刪掉低版本的jar包,
slave1上執行
cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/

rm -rf /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/guava-11.0.2.jar
cp /usr/hive/apache-hive-2.1.1-bin/lib/guava-14.0.1.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/

2.修改 hive-env.sh
master上執行
cd /usr/hive/apache-hive-2.1.1-bin/conf
cp -p hive-env.sh.template hive-env.sh
vi hive-env.sh

在第48行修改

3.修改 hive-site.xml(master上執行)
vi hive-site.xml
添加以下內容
<configuration>
<!--Hive產生的元資料存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_romote/warehouse</value>
</property>
<!---使用本地服務連接Hive,默認為true-->
<property>
<name>hive.metastore.lodal</name>
<value>false</value>
</property>
<!--連接服務器-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://slave1:9083</value>
</property>
</configuration>

5.啟動hive
每次啟動hive前要先啟動hadoop,不然會報錯
1.啟動hadoop(master上執行),很簡單,就不截圖了~~
cd /usr/hadoop/hadoop-2.7.3/
sbin/start-all.sh
2.初始化資料庫(slave1上執行)
schematool -dbType mysql -initSchema
出現下圖這個就是初始化成功了~

3.slave1上執行
cd /usr/hive/apache-hive-2.1.1-bin
bin/hive --service metastore
出現下圖中這個就服務器啟動成功~~

4.master上執行
cd /usr/hive/apache-hive-2.1.1-bin
bin/hive
出現hive>后執行show databases;進行測驗
出現下面這個就成功~~

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294430.html
標籤:其他
