大数据-相关组件的版本、启动、端口号和访问地址

组件版本

部署的各个服务及版本

服务 版本 说明
JDK 8u221 JDK8是其他服务启动的基础
Zookeeper 3.7.1 状态保存
Hadoop 2.7.7 较新的版本不太好找找其他服务的兼容版本
Flink 1.12.7 做大数据计算
Hive 2.1.0 数仓使用
Hbase 2.1.10 查询高效的数据库
Phonenix 5.1.2 SQL方式操作Hbase

各服务名

查看

1
2
3
jps
# 或者
jps -l

如图

image-20230825150537760

Master可能的进程

进程名 是否必须 所属 说明
QuorumPeerMain Zookeeper 单独配置的Zookeeper集群,如果是内置的则为HQuorumPeer
NameNode Hadoop-HDFS Hadoop NameNode
DataNode Hadoop-HDFS 提供文件数据的存储服务
JournalNode Hadoop-HDFS 为了使Standby节点保持其状态与Active 节点同步,两个节点都与一组称为”JournalNodes”的单独守护进程进行通信。
DFSZKFailoverController Hadoop-HDFS 高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。
NodeManager Hadoop-Yarn NodeManager是YARN中单个节点上的代理,它管理Hadoop集群中单个计算节点,功能包括与ResourceManager保持通信,管理Container的生命周期,监控每个Container的资源使用(内存,CPU等)情况,追踪节点健康状况,管理日志和不同应用程序用到的附属服务
JobHistoryServer Hadoop-Mapreduce WEB查看作业的历史运行情况,日志存储的位置是在hdfs文件系统中。
RunJar Hadoop
HMaster Hbase 表明该Hbase是Master
HRegionServer Hbase 因为我们也将该Master设置为Region
QueryServer Phonenix

HRegion可能的进程

进程名 是否必须 所属 说明
QuorumPeerMain Zookeeper 单独配置的Zookeeper集群,如果是内置的则为HQuorumPeer
DataNode Hadoop-HDFS 数据存储
ResourceManager Hadoop-Yarn
NodeManager Hadoop-Yarn
HRegionServer Hbase 表明是Hbase存储节点

进程名

1
ha-call.sh "jps -l"

如下

归属 进程
Zookeeper org.apache.zookeeper.server.quorum.QuorumPeerMain
Hadoop org.apache.hadoop.hdfs.tools.DFSZKFailoverController
org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer
org.apache.hadoop.yarn.server.nodemanager.NodeManager
org.apache.hadoop.yarn.server.resourcemanager.ResourceManager
org.apache.hadoop.hdfs.server.namenode.NameNode
org.apache.hadoop.hdfs.server.datanode.DataNode
org.apache.hadoop.hdfs.qjournal.server.JournalNode
Hbase org.apache.hadoop.hbase.master.HMaster
org.apache.hadoop.hbase.regionserver.HRegionServer

查看版本

JDK

1
java -version

Zookeeper

1
2
zkCli.sh
version

Hadoop

1
hadoop version
1
flink -v

Hive

1
hive

Hbase

1
hbase version

配置Host

Windows下host文件配置

C:\Windows\System32\drivers\etc

添加如下

1
2
3
192.168.7.101 hadoop01
192.168.7.102 hadoop02
192.168.7.103 hadoop03

Rsync

启动

1
rsync --daemon --config=/etc/rsyncd.conf

查看873端口是否起来

1
2
3
netstat -an | grep 873
# 或者
netstat -a | grep rsync

全部启动

Zookeeper

1
ha-zk.sh start

查看状态

1
netstat -an | grep 2181

Hadoop

1
ha-hadoop.sh start

查看文件可以访问这个地址

http://hadoop01:50070/explorer.html#/

http://hadoop02:50070/explorer.html#/

Yarn监控页面查询:

http://hadoop02:8088/cluster

http://hadoop03:8088/cluster

Hive

启动Hive Metastore

1
nohup hive --service metastore >/dev/null 2>&1 &

查看服务是否启动

1
lsof -i:9083

这时候已经可以在服务器上连接了

1
$HIVE_HOME/bin/hive

启动hiveserver2

1
nohup hive --service hiveserver2 >/dev/null 2>&1 &

或者

1
nohup $HIVE_HOME/bin/hiveserver2 >/dev/null 2>&1 &

查看服务是否启动

1
lsof -i:10000

这时可以远程连接了

1
beeline -n hive -u jdbc:hive2://hadoop01:10000/default

Hbase

删除之前的日志

1
ha-call.sh "rm -rf $HBASE_HOME/logs/*"

Hbase启动

1
$HBASE_HOME/bin/start-hbase.sh

查看状态

1
ha-call.sh "jps"

访问地址

HMaster 的 Web 接口

http://hadoop01:16010

http://hadoop02:16010

HRegionServer 的 Web 接口

http://hadoop01:16030

http://hadoop02:16030

http://hadoop03:16030

Phoenix

使用瘦客户端的时候才需要启动。

胖客户端不需要启动。

1
2
3
queryserver.py start

lsof -i:8765

Yarn Session模式

1
$FLINK_HOME/bin/yarn-session.sh -d -nm zflink

查看运行状态

http://hadoop01:8088/cluster/apps/RUNNING

一键启动

ha-all-start.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
echo "启动ZK"
ha-zk.sh start
sleep 3

echo "启动Hadoop"
ha-hadoop.sh start
sleep 10

echo "启动Hive"
nohup hive --service metastore >/dev/null 2>&1 &
nohup $HIVE_HOME/bin/hiveserver2 >/dev/null 2>&1 &
sleep 3

echo "启动HBase"
$HBASE_HOME/bin/start-hbase.sh
sleep 3

echo "启动Flink"
$FLINK_HOME/bin/yarn-session.sh -d -nm zflink
sleep 3

echo "查看状态"
ha-call.sh "jps -l"

全部停止

Yarn Session模式

查看

http://hadoop01:8088/cluster/apps

结束服务

1
yarn application -kill appid

Phoenix

胖客户端模式不用启动也不用停止。

1
2
3
queryserver.py stop

lsof -i:8765

Hbase

1
$HBASE_HOME/bin/stop-hbase.sh

Hive

结束之前的服务

1
jobs

结束任务

1
2
# 通过jobs命令查看job号(假设为num,num从1开始)
kill %num

或者

1
2
lsof -i:10000 -t | xargs -I {} kill -9 {} && lsof -i:10000
lsof -i:9083 -t | xargs -I {} kill -9 {} && lsof -i:9083

Hadoop

1
ha-hadoop.sh stop

Zookeeper

1
ha-zk.sh stop

一键停止

ha-all-stop.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
echo "停止Flink"
yarn application -list | grep -o "application_[0-9]*_[0-9]*" | xargs -I {} yarn application -kill {}
sleep 3

echo "停止HBase"
$HBASE_HOME/bin/stop-hbase.sh
sleep 3

echo "停止Hive"
lsof -i:10000 -t | xargs -I {} kill -9 {} && lsof -i:10000
lsof -i:9083 -t | xargs -I {} kill -9 {} && lsof -i:9083
sleep 3

echo "停止Hadoop"
ha-hadoop.sh stop
sleep 10

echo "停止ZK"
ha-zk.sh stop
sleep 3

echo "查看状态"
ha-call.sh "jps"

查看

1
ha-call.sh "jps -l"

开启关闭Yarn-Session

查看启动的ApplicationID

1
yarn application -list | grep -o "application_[0-9]*_[0-9]*"

结束

1
yarn application -list | grep -o "application_[0-9]*_[0-9]*" | xargs -I {} yarn application -kill {}

这条命令首先执行 yarn application -list 来列出所有正在运行的应用程序信息,

然后通过管道将输出传递给 grep 命令,使用正则表达式 "application_[0-9]*_[0-9]*" 来提取应用程序的 ID。

然后,管道将提取的应用程序 ID 传递给 xargs 命令,并使用 -I {} 选项指定占位符 {} 来表示每个应用程序 ID。

最后,xargs 命令将每个应用程序 ID 替换到 yarn application -kill {} 命令中,以停止相应的应用程序。

请注意,这个命令会停止匹配的所有应用程序,并且没有进一步的确认提示。

在使用此命令之前,请确保你要停止的应用程序是正确的,并且理解可能产生的影响。

查看

1
yarn application -list

启动

1
$FLINK_HOME/bin/yarn-session.sh -d -nm zflink

JPS操作

查看

1
jps

查看包及类

1
jps -l

查看启动参数(依赖Jar和内存)

1
jps -v

终止所有JPS进程

终止所有的hadoop进程

1
ha-call.sh "jps -l|grep 'org.apache.hadoop'|awk '{print $1}' |xargs kill -9"

终止所有的Hbase进程

1
ha-call.sh "jps -l|grep 'org.apache.hadoop.hbase'|awk '{print $1}' |xargs kill -9"

各环境基本操作

Zookeeper

启动ZK

1
ha-zk.sh start

端口2181

连接

1
zkCli.sh

输入命令

1
2
3
4
5
6
7
8
9
10
11
#查看zk的根目录kafka相关节点
ls /
#查看kafka节点
ls /brokers
ls /brokers/topics

create /zk "test"
set /zk "zkbak"
get /zk

quit

Hadoop

启动前要先启动ZK。

HDFS监控页面查询:

http://hadoop01:50070/

http://hadoop02:50070/

查看文件可以访问这个地址

http://hadoop01:50070/explorer.html#/

http://hadoop02:50070/explorer.html#/

Yarn监控页面查询:

http://hadoop02:8088/cluster

http://hadoop03:8088/cluster

连接具体的NameNode需要用9000端口

1
2
hdfs://hdfsns/hbase
hdfs://hadoop02:9000/hbase

Flink有个UI界面,可以用于监控Flilnk的job运行状态
http://hadoop01:8081/

Hive

结束之前的服务

1
jobs

结束任务

1
2
# 通过jobs命令查看job号(假设为num)
kill %num

数据库初始化

这个只执行一次

Hive的数据库MySQL在安装的时候没有初始化

在MySQL中

1
2
3
4
# 删除mysql中的元数据库
drop database metastore;
# 新建一个元数据库
create database metastore;

命令行中执行

1
2
# 在命令行中,重新初始化
$HIVE_HOME/bin/schematool -dbType mysql -initSchema

启动Hive Metastore

1
nohup hive --service metastore >/dev/null 2>&1 &

启动Hive

1
$HIVE_HOME/bin/hive

查询表

1
show tables;

启动Hive远程服务

远程连接要启动下面的服务

1
jdbc:hive2://hadoop01:10000

启动远程服务

1
nohup $HIVE_HOME/bin/hiveserver2&

查看服务是否启动

1
lsof -i:10000

HBase

HMaster 的 Web 接口

http://hadoop01:16010

http://hadoop02:16010

HRegionServer 的 Web 接口

http://hadoop01:16030

http://hadoop02:16030

http://hadoop03:16030

两个重要配置

在HDFS中的Path和ZK中的Path

1
2
3
4
5
6
7
8
9
10
11
12
<property>
<name>hbase.rootdir</name>
<value>hdfs://hdfsns/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop01,hadoop02,hadoop03</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase</value>
</property>

注意

hbase.zookeeper.quorum 中不能添加端口号

连接

1
2
3
4
5
hbase shell

list
get 'zdb:tuser','95001'
scan 'zdb:tuser', {FORMATTER => 'toString'}

创建表

1
2
3
4
create 'student','s_name','s_sex','s_age','s_dept','s_course'

# 创建表示指定保存的版本数
create 'teacher',{NAME=>'username',VERSIONS=>5}

查看表详情

1
describe 'student'

显示所有的表

1
list

插入数据

1
2
3
4
put 'student','95001','s_name','LiYing'
put 'student','95001','s_sex','Male'
put 'student','95001','s_course:math','80'
put 'student','95001','s_course:english','90'

查看表数据

1
scan 'student', {FORMATTER => 'toString'}

重启

1
2
$HBASE_HOME/bin/stop-hbase.sh
$HBASE_HOME/bin/start-hbase.sh

查看服务

1
ha-call.sh "jps"

Phoenix

注意

在Phoenix中无论表还是字段只要没有双引号引起来的字段都会变成大写。

这里不建议用双引号,在后期拼接SQL的时候比较麻烦。

启动query server

1
2
3
queryserver.py start

lsof -i:8765

连接

1
sqlline-thin.py http://hadoop01:8765

创建schema

1
create schema mdb;

使用这个新建的 schema:

1
use mdb;

创建表

1
2
3
4
CREATE TABLE IF NOT EXISTS tuser(
id VARCHAR primary key,
name VARCHAR
);

插入数据

1
2
3
upsert into tuser values('1001','zhangsan');
upsert into tuser values('1002','lisi');
upsert into tuser(id,name) values('1003','liwu');

查询记录

1
2
3
select * from tuser;
select * from tuser where id='1001';
select * from tuser where name like 'li%';

分页查询

1
2
select * from tuser order by id desc limit 1 offset 0;
select * from tuser order by id desc limit 1 offset 1;

其中

  • limit 取多少条
  • offset 从多少条开始