Hadoop+Hive+HBase+Kylin 集群維護手冊(2018年5月25日)

Hadoop全家桶如果是自己手動安裝的話,日常使用中會用到大量的命令和配置修改,所以特地記錄在這里,方便查找和使用。插一句,再另外又使用Cloudera Managment搭建了一個集群后,發(fā)現(xiàn)確實快速和易用。但問題就是不能理解底層的細節(jié)和原理,也是有利有弊吧。

研發(fā)人員自己搭建一套原生的Hadoop環(huán)境,對于學習和掌握還是很有必要的。Cloudera適合在產(chǎn)品中使用。歡迎訪問原文出處(shuquaner.com)。

集群啟動和停止流程

1.設(shè)置環(huán)境變量

如果環(huán)境變量不是自動加載的,就需要手動操作一下,不然命令無法執(zhí)行

[bdp@BI01 opt]$ source ~/.bash_profile

2.環(huán)境變量配置

我的環(huán)境變量是這樣的:

# Hadoop env
export HADOOP_HOME="/home/bdp/opt/hadoop-2.7.4"
export HIVE_HOME="/home/bdp/opt/hive-1.2.2"
export HBASE_HOME="/home/bdp/opt/HBase-1.2.6"
export KYLIN_HOME="/home/bdp/opt/kylin-2.2.0"
export PATH="$HADOOP_HOME/bin:$HIVE_HOME/bin:$HBASE_HOME/bin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

3.停止集群

3.1.當前路徑

我的目錄路徑情況如下:

[bdp@BI01 opt]$ pwd
/home/bdp/opt
[bdp@BI01 opt]$ ls
Backup  hadoop-2.7.4  hbase-1.2.6  hive-1.2.2  kylin-2.2.0   zookeeper-3.4.10

注意:下面的命令都是在目錄/home/bdp/opt下執(zhí)行的。

3.2.停止Kylin和HBase

./kylin-2.2.0/bin/kylin.sh stop
./hbase-1.2.6/bin/stop-hbase.sh 

3.3.停止Hive

ps -eaf|grep -i hive

kill -15 25402
kill -15 24916

執(zhí)行ps命令后,通常會有兩個hive相關(guān)的進程,一個是HiveMetaStore,一個是HiveServer2

bdp      24916     1  0 May24 ?        00:00:47 /usr/java/jdk1.8.0_144/bin/java -Xmx40000m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/home/bdp/opt/hadoop-2.7.4/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/home/bdp/opt/hadoop-2.7.4 -Dhadoop.id.str=bdp -Dhadoop.root.logger=INFO,console -Djava.library.path=/home/bdp/opt/hadoop-2.7.4/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Xms1G -Xmx40G -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /home/bdp/opt/hive-1.2.2/lib/hive-service-1.2.2.jar org.apache.hadoop.hive.metastore.HiveMetaStore
bdp      25402     1  0 May24 ?        00:00:52 /usr/java/jdk1.8.0_144/bin/java -Xmx40000m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/home/bdp/opt/hadoop-2.7.4/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/home/bdp/opt/hadoop-2.7.4 -Dhadoop.id.str=bdp -Dhadoop.root.logger=INFO,console -Djava.library.path=/home/bdp/opt/hadoop-2.7.4/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Xms1G -Xmx40G -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /home/bdp/opt/hive-1.2.2/lib/hive-service-1.2.2.jar org.apache.hive.service.server.HiveServer2

3.4.停止Hadoop和historyserver

./hadoop-2.7.4/sbin/stop-all.sh 
./hadoop-2.7.4/sbin/mr-jobhistory-daemon.sh stop historyserver

3.5.每個節(jié)點上單獨停止zookeeper

./zookeeper-3.4.10/bin/zkServer.sh stop

4.啟動集群

4.1.每個節(jié)點上啟動zookeeper

[bdp@BI01 opt]$ ./zookeeper-3.4.10/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/bdp/opt/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[bdp@BI01 opt]$ jps
27134 Jps
27087 QuorumPeerMain

使用jps命令可以查看Java的進程。如果碰到無法識別jps命令的情況,是因為JDK的bin目錄沒有添加到環(huán)境變量的緣故。

4.2.啟動hadoop和historyserver

主結(jié)點上啟動Hadoop:

[bdp@BI01 opt]$ ./hadoop-2.7.4/sbin/start-all.sh
[bdp@BI01 opt]$ jps
27698 NameNode
27940 SecondaryNameNode
28165 ResourceManager
27468 QuorumPeerMain
28445 Jps

在數(shù)據(jù)結(jié)點上檢查相關(guān)進程是否啟動:

[bdp@BI02 opt]$ jps
30278 DataNode
30589 Jps
30157 QuorumPeerMain
30415 NodeManager

主結(jié)點上繼續(xù)啟動history server:

[bdp@BI01 opt]$ ./hadoop-2.7.4/sbin/mr-jobhistory-daemon.sh start historyserver
starting historyserver, logging to /home/bdp/opt/hadoop-2.7.4/logs/mapred-bdp-historyserver-BI01.out
[bdp@BI01 opt]$ jps
30146 Jps
30086 JobHistoryServer
29560 SecondaryNameNode
29320 NameNode
29784 ResourceManager
27468 QuorumPeerMain

4.3.啟動Hive

Hive運行依賴于關(guān)系數(shù)據(jù)庫,這里我們先檢查MySQL是否啟動,而且有創(chuàng)建了hive的數(shù)據(jù)庫和表。歡迎訪問原文出處(shuquaner.com)。

[bdp@BI01 opt]$ mysql -uroot -p
Enter password: SinanWu
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 44441
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. Sinan Wu all rights reserved.
>>>歡迎訪問:http://www.shuquaner.com<<<

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hivemeta           |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)

啟動Hive metastore服務(wù):

[bdp@BI01 opt]$ nohup ./hive-1.2.2/bin/hive --service metastore > ./hive-1.2.2/logs/metastore.log 2>&1 &
[1] 30270
[bdp@BI01 opt]$ 
[bdp@BI01 opt]$ ps -eaf|grep hive
bdp      30270 26240 99 12:29 pts/3    00:00:10 /usr/java/jdk1.8.0_144/bin/java -Xmx40000m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/home/bdp/opt/hadoop-2.7.4/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/home/bdp/opt/hadoop-2.7.4 -Dhadoop.id.str=bdp -Dhadoop.root.logger=INFO,console -Djava.library.path=/home/bdp/opt/hadoop-2.7.4/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Xms1G -Xmx40G -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /home/bdp/opt/hive-1.2.2/lib/hive-service-1.2.2.jar org.apache.hadoop.hive.metastore.HiveMetaStore
bdp      30521 26240  0 12:30 pts/3    00:00:00 grep hive

啟動HiveServer2服務(wù):

[bdp@BI01 opt]$ nohup ./hive-1.2.2/bin/hive --service hiveserver2 2>&1 &
[2] 30527
[bdp@BI01 opt]$ nohup: ignoring input and appending output to `nohup.out'

[bdp@BI01 opt]$ ps -eaf|grep hive
bdp      30270 26240  9 12:29 pts/3    00:00:10 /usr/java/jdk1.8.0_144/bin/java -Xmx40000m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/home/bdp/opt/hadoop-2.7.4/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/home/bdp/opt/hadoop-2.7.4 -Dhadoop.id.str=bdp -Dhadoop.root.logger=INFO,console -Djava.library.path=/home/bdp/opt/hadoop-2.7.4/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Xms1G -Xmx40G -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /home/bdp/opt/hive-1.2.2/lib/hive-service-1.2.2.jar org.apache.hadoop.hive.metastore.HiveMetaStore
bdp      30527 26240 99 12:31 pts/3    00:00:13 /usr/java/jdk1.8.0_144/bin/java -Xmx40000m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/home/bdp/opt/hadoop-2.7.4/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/home/bdp/opt/hadoop-2.7.4 -Dhadoop.id.str=bdp -Dhadoop.root.logger=INFO,console -Djava.library.path=/home/bdp/opt/hadoop-2.7.4/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Xms1G -Xmx40G -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /home/bdp/opt/hive-1.2.2/lib/hive-service-1.2.2.jar org.apache.hive.service.server.HiveServer2

4.4.啟動HBase

注:如果節(jié)點之間的時間同步誤差小于30s,會有不能啟動的情況,需要重新設(shè)置系統(tǒng)時間。

[bdp@BI01 opt]$ ./hbase-1.2.6/bin/start-hbase.sh 
[bdp@BI01 opt]$ jps
30086 JobHistoryServer
29560 SecondaryNameNode
29320 NameNode
29784 ResourceManager
32153 Jps
27468 QuorumPeerMain
31917 HMaster
30270 RunJar
30527 RunJar

數(shù)據(jù)結(jié)點上檢查Region server是否啟動:

[root@BI03 ~] jps          
10356 HRegionServer
10580 Jps
8054 QuorumPeerMain
8632 DataNode
8767 NodeManager

有多臺結(jié)點的話,需要每個結(jié)點都檢查一下。如果使用Cloudera management的話,可以直接在圖形化界面上查看,就方便和直觀得多。

4.5.啟動Kylin

[bdp@BI01 opt]$ ./kylin-2.2.0/bin/kylin.sh start

最終啟動完成后,主結(jié)點和數(shù)據(jù)結(jié)點的進程狀態(tài)如下:

[bdp@BI01 opt]$ jps
20864 HMaster          --HBase
18504 NameNode          --Hadoop
18969 ResourceManager    --YARN
18745 SecondaryNameNode  --Hadoop
31835 RunJar            --Kylin
25084 RunJar        --Hive
32492 Jps
29949 QuorumPeerMain    --Zookeeper
4677 JobHistoryServer   --History Server
[bdp@BI02 ~]$ jps
14641 QuorumPeerMain    --Zookeeper
18979 HRegionServer   --HBase
18584 DataNode        --HDFS
18719 NodeManager         --YARN
19375 Jps

維護管理

1.管理Web

http://bi01:50070/dfshealth.html
組件 :HDFS
節(jié)點 :NameNode
默認端口 :50070
配置 :dfs.namenode.http-address
用途說明 :http服務(wù)的端口
通過登錄Web控制臺,查看HDFS集群狀態(tài)
歡迎訪問原文出處(shuquaner.com)

http://bi01:50090/status.html
在hdfs-site.xml中的配置如下:

    <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>BI01:50090</value>
    </property>

http://bi01:8088/cluster
在yarn-site.xml中的配置如下:

<property>  
          <name>yarn.resourcemanager.webapp.address</name>  
          <value>master:8088</value>  
</property>  

基本操作:

1.Zookeeper

1.1.由于啟動時,每個節(jié)點都會試圖去連接其它節(jié)點,因此先啟動的剛開始會連接不上其它的,導(dǎo)致日志中會包含錯誤信息,在未全啟動之前,這個屬正?,F(xiàn)象。
1.2.腳本zkServer.sh不但可以用來啟動ZooKeeper,還可以用來查看狀態(tài)。使用方式為帶一個status參數(shù),如:./zkServer.sh status
1.3.集群成功啟動后,將有且只會有一個成為leader,其它是follower。歡迎訪問原文出處(shuquaner.com)。
1.4.進入ZooKeeper的bin目錄,執(zhí)行zkCli.sh進入ZooKeeper的命令行操作界面。
./zkCli.sh -server 10.12.154.78:2181
參數(shù)“-server”中只含一個“-”,用以指定被連接的ZooKeeper節(jié)點,可以為Leader,也可以為Follower,“10.12.154.78”為Leader或Follower的IP或主機名,“2181”為ZooKeerp提供的客戶端服務(wù)端口。進入ZooKeeper命令行操作界面后,輸入help然后回車,可以看到ZooKeeper支持的命令列表:

[bdp@BI01 opt]$ ./zookeeper-3.4.10/bin/zkCli.sh
Connecting to localhost:2181
Welcome to ZooKeeper! SinanWu
JLine support is enabled

WATCHER::

WatchedEvent state:SyncConnected type:None path:null          
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
        stat path [watch]
        set path data [version]
        ls path [watch]
        delquota [-n|-b] path
        ls2 path [watch]
        setAcl path acl
        setquota -n|-b val path
        history
        redo cmdno
        printwatches on|off
        delete path [version]
        sync path
        listquota path
        rmr path
        get path [watch]
        create [-s] [-e] path data acl
        addauth scheme auth
        quit
        getAcl path
        close
        connect host:port

zookeeper的配置參數(shù)(zoo.cfg)詳細可以參考:
https://www.cnblogs.com/xiohao/p/5541093.html

2.HBase

WEB管理URL
http://172.20.20.40:16010

HA 模式下的 Hadoop+ZooKeeper+HBase 啟動順序
http://blog.csdn.net/u011414200/article/details/50437356

3.Hive

Hive log: By default, Hive stores its logs in /tmp/currentuser location.
數(shù)據(jù)類型:
http://blog.csdn.net/xiaoqi0531/article/details/54667393
Mapping hbase中數(shù)據(jù)的問題:
http://blog.csdn.net/jameshadoop/article/details/42162669
歡迎訪問原文出處(shuquaner.com)

4.Kylin

After Kylin started you can visit http://hostname:7070/kylin. The default username/password is ADMIN/KYLIN

5.Hadoop

修改HDFS上目錄的權(quán)限:
[bdp@BI01 hadoop]$ hdfs dfs -chmod 777 /mr-history
這里修改了history server的權(quán)限,不然application運行會失敗

歡迎訪問原文出處(shuquaner.com)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容