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)