|NO.R.00001|——————————|Navigation|————|PB级企业电商离线数仓|——|服务启动导航|
一、PB级别企业电商离线仓库:部署规划
IP地址 | 主机名 | |
第一台机器 | 192.168.1.121 | Hadoop01 |
第二台机器 | 192.168.1.122 | Hadoop02 |
第三台机器 | 192.168.1.123 | Hadoop03 |
第四台机器 | 192.168.1.124 | Hadoop04 |
第五台机器 | 192.168.1.125 | Hadoop05 |
### --- 软件选型
~~~ 数据采集:DataX、Flume、Sqoop、Logstash、Kafka
~~~ 数据存储:HDFS、HBase
~~~ 数据计算:Hive、MapReduce、Tez、Spark、Flink
~~~ 调度系统:Airflow、azkaban、Oozie
~~~ 元数据管理:Atlas
~~~ 数据质量管理:Griffin
~~~ 即席查询:Impala、Kylin、ClickHouse、Presto、Druid
~~~ 其他:MySQL
~~~ 框架、软件尽量不要选择最新的版本,选择半年前左右稳定的版本。
hadoop1 | hadoop2 | hadoop3 | hadoop4 | hadoop5 | |
NameNode | √ | ||||
SecondaryNameNode | √ | ||||
DataNode | √ | √ | √ | √ | √ |
ResourceManager | √ | ||||
DataManager | √ | √ | √ | √ | √ |
historyserver | √ | ||||
Hive | √ | √ | √ | ||
HiveServer2 | √ | ||||
Flume | √ | ||||
DataX | √ | ||||
Airflow | √ | ||||
Atlas | √ | ||||
Griffin | √ | ||||
Impala | √ | √ | √ | √ | √ |
MySQL | √ |
二、HDFS和YARN集群部署规划
框架 | HDFS | YARN |
Hadoop01 | NameNode DataNode Jobhistory |
ResourceManager DataManager |
Hadoop02 | SecondaryNameNode DataNode |
DataManager |
Hadoop03 | DataNode | DataManager |
Hadoop04 | DataNode | DataManager |
Hadoop05 | DataNode | DataManager |
### --- 启动/停止HDFS服务
[root@hadoop01 ~]# start-dfs.sh
[root@hadoop01 ~]# stop-dfs.sh
### --- 启动/停止YARN服务
[root@hadoop01 ~]# start-yarn.sh
[root@hadoop01 ~]# stop-yarn.sh
### --- 访问地址
~~~ # web端查看Hdfs界面
~~~ http://hadoop01:50070/dfshealth.html#tab-overview
~~~ # HDFS访问地址:
~~~ http://hadoop01:50070/
~~~ # 查看详细日志:
~~~ http://hadoop01:8088/cluster
三、启动HDFS的jobhistory服务
### --- 启动jobhistory服务
[root@hadoop01 ~]# /opt/yanqi/servers/hadoop-2.9.2/sbin/mr-jobhistory-daemon.sh start historyserver
### --- 访问地址
~~~ # 插件历史日志服务地址JobHistory:
~~~ http://hadoop01:19888/jobhistory
一、Hive安装配置:单机模式:部署规划
软件 | Hadoop01 | Hadoop02 | Hadoop03 | Hadoop04 | Hadoop05 |
Hadoop | √ | √ | √ | √ | √ |
mysql | √ | ||||
hive | √ | √ | √ | ||
HiveServer2 | √ |
### --- hive启动
~~~ # mysql部署节点:Hadoop05
[root@hadoop05 ~]# systemctl start mysqld
~~~ # Hive单机部署节点:Hadoop01
~~~ # 启动hive服务之前,请先启动hdfs、yarn的服务
[root@hadoop01 ~]# start-dfs.sh
[root@hadoop01 ~]# start-yarn.sh
[root@hadoop01 ~]# hive
hive> show functions;
二、Hive远程模式:metastore模式:部署规划
节点 | metastore | client |
Hadoop01 | √ | |
Hadoop02 | √ | |
Hadoop05 | √ |
### --- 启动hive-metastore服务
~~~ # 启动hdfs和yarn
[root@hadoop01 ~]# start-dfs.sh
[root@hadoop01 ~]# start-yarn.sh
~~~ # 分别在Hadoop01和Hadoop05上执行以下命令,查看连接情况
~~~ # 启动 metastore 服务
[root@hadoop01 ~]# nohup hive --service metastore &
[root@hadoop01 ~]# lsof -i:9083
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 10459 root 513u IPv4 93320 0t0 TCP *:emc-pp-mgmtsvc (LISTEN)
~~~ # 在client.Hadoop02上写入数据
[root@hadoop02 ~]# hive
~~~ # 查看hadoop01和hadoop03查看进程的变化
[root@hadoop05 ~]# lsof -i:9083
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 15624 root 513u IPv4 122919 0t0 TCP *:emc-pp-mgmtsvc (LISTEN)
java 15624 root 514u IPv4 123038 0t0 TCP hadoop05:emc-pp-mgmtsvc->hadoop02:56232 (ESTABLISHED)
三、HiveServer2配置:HiveServer2配置配置规划:
节点 | HiveServer2 | client(beeline) |
Hadoop02 | √ | |
Hadoop05 | √ |
四、配置并启动HiveServer2服务
### --- 启动hadoop05上的 HiveServer2 服务
~~~ # 启动 hiveserver2 服务
[root@hadoop05 ~]# nohup hiveserver2 &
~~~ # 检查 hiveserver2 端口
[root@hadoop05 ~]# lsof -i:10000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 15888 root 521u IPv4 128333 0t0 TCP *:ndmp (LISTEN)
~~~ # 从2.0开始,HiveServer2提供了WebUI
五、HCatalog
### --- HCatalog
~~~ # 进入 hcat 所在目录。$HIVE_HOME/hcatalog/bin
[root@hadoop02 ~]# cd $HIVE_HOME/hcatalog/bin
~~~ # 执行命令,创建表
[root@hadoop02 bin]# ./hcat -e "create table default.test1(id string, name string, age int)"
~~~ # 长命令可写入文件,使用 -f 选项执行
[root@hadoop02 bin]# ./hcat -f createtable.txt
~~~ # 查看元数据
[root@hadoop02 bin]# ./hcat -e "use mydb; show tables"
~~~ # 查看表结构
[root@hadoop02 bin]# ./hcat -e "desc mydb.emp"
~~~ # 删除表
[root@hadoop02 bin]# ./hcat -e "drop table default.test1"
六、访问地址:
### --- 访问地址:
~~~ # HiveServer2访问地址:
~~~ 通过浏览器检查hiveserver2的启动情况http://Hadoop05:10002/
一、Flume部署配置
### --- Flume部署节点:Hadoop02
~~~ # 检查 8888 端口是否被占用。如果该端口被占用,可以选择使用其他端口完成任务
[root@hadoop02 ~]# lsof -i:8888
~~~ # 使用 telnet 向本机的 8888 端口发送消息
[root@hadoop02 ~]# telnet hadoop02 8888
~~~ # 使用Flume监听页面查看数据接收情况
$FLUME_HOME/bin/flume-ng agent --name a1 \
--conf-file $FLUME_HOME/conf/flume-netcat-logger.conf \
-Dflume.root.logger=INFO,console
### --- DATAX启动
~~~ DATAX启动以脚本为主
### --- Tez启动
~~~ Tez启动以脚本为主
一、Airflow启动
### --- 启动Python3
~~~ # 进入python3的运行环境
cd /opt/yanqi/servers/python3.6/bin/
./virtualenv env
. env/bin/activate
~~~ # 退出python3虚拟环境命令
(env) [root@hadoop02 ~]# deactivate
### --- 启动airflow服务
(env) [root@hadoop02 ~]# airflow scheduler -D
(env) [root@hadoop02 ~]# airflow webserver -D
### --- 停止airflow服务
~~~ # 停止airflow服务
~~~ 关闭 airflow webserver 对应的服务
(env) [root@hadoop02 ~]# ps -ef | grep 'airflow-webserver' | grep -v 'grep' | awk '{print $2}' | xargs -i kill -9 {}
~~~ 关闭 airflow scheduler 对应的服务
(env) [root@hadoop02 ~]# ps -ef | grep 'airflow' | grep 'scheduler' | awk '{print $2}' | xargs -i kill -9 {}
### --- 删除对应的pid文件
~~~ 正常停止的话,这两个文件会关闭,
~~~ 若是通过kill掉的,需要把这两个pid文件删除掉
(env) [root@hadoop02 ~]# cd $AIRFLOW_HOME
(env) [root@hadoop02 airflow]# rm -rf *.pid
二、访问airflow.UI界面
### --- 访问airflow.UI界面
~~~ # Chrome访问:安装完成,
~~~ 可以使用浏览器登录 hadoop02:8080;输入用户名、口令:airflow /airflow123

三、运行airflow服务案例
### --- 执行helloworld.py案例文件
~~~ # 执行命令检查脚本是否有错误。如果命令行没有报错,就表示没问题
(env) [root@hadoop02 ~]# python $AIRFLOW_HOME/dags/helloworld.py
~~~ # 查看生效的 dags
(env) [root@hadoop02 ~]# airflow list_dags -sd $AIRFLOW_HOME/dags
~~~ # 查看指定dag中的task
(env) [root@hadoop02 ~]# airflow list_tasks HelloWorldDag
~~~ # 测试dag中的task
(env) [root@hadoop02 ~]# airflow test HelloWorldDag MyTask2 20211010
一、Atlas服务
### --- 启动atlas:Hadoop02
~~~ # 启动服务(第一次启动服务的时间比较长)
[root@hadoop02 ~]# cd $ATLAS_HOME/bin
[root@hadoop02 bin]# ./atlas_start.py # 启动服务
~~~ 输出参数
starting atlas on port 21000
..............................................................................................................................................................................................................................................................................................................
Apache Atlas Server started!!!
[root@hadoop02 bin]# ./atlas_stop.py # 关闭服务
[root@hadoop02 bin]# ./solr status # 查看服务状态
~~~ # 检查后台进程 (1个atlas、2个HBase、1个solr后台进程)
[root@hadoop02 ~]# ps -ef | grep atlas
~~~ 启动的进程
/opt/yanqi/servers/atlas-1.2.0/server/webapp/atlas
/opt/yanqi/servers/atlas-1.2.0/hbase/bin/hbase-daemon.sh
org.apache.hadoop.hbase.master.HMaster
/opt/yanqi/servers/atlas-1.2.0/solr/server/solr
### --- atlas.UI管理
~~~ http://hadoop02:21000/login.jsp
~~~ 用户名 / 口令:admin / admin
### --- 账户密码管理
~~~ # 账号的信息存储在文件 conf/users-credentials.properties 中。
[root@hadoop02 ~]# cd /opt/yanqi/servers/atlas-1.2.0/
[root@hadoop02 atlas-1.2.0]# vim conf/users-credentials.properties
~~~ # 用户名口令参数
#username=group::sha256-password
admin=ADMIN::8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
rangertagsync=RANGER_TAG_SYNC::e3f67240f5117d1753c940dae9eea772d36ed5fe9bd9c94a300e40413f1afb9d
~~~ # 其中 Password 通过如下方式产生sha256sum 摘要信息:
[root@hadoop02 ~]# echo -n "admin" | sha256sum
8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 -
[root@hadoop02 ~]# echo -n "rangertagsync" | sha256sum
e3f67240f5117d1753c940dae9eea772d36ed5fe9bd9c94a300e40413f1afb9d -
一、Griffin服务
### --- 启动spark
~~~ # 进入spark-shell
[root@hadoop02 ~]# spark-shell
~~~ 输出参数
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.2.1
/_/
~~~ # 查看启动的进程
[root@hadoop02 ~]# jps
9422 SparkSubmit
~~~ # 打开该文件读取内容
scala> val lines = sc.textFile("/wcinput/wc.txt")
scala> lines.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect()
~~~ 输出参数
res1: Array[(String, Int)] = Array((#在文件中输入如下内容,1), (yanqi,3), (mapreduce,3), (yarn,2), (hadoop,2), (hdfs,1))
### --- 启动livy
[root@hadoop02 ~]# cd $LIVY_HOME/
[root@hadoop02 livy-0.5.0]# mkdir logs
[root@hadoop02 livy-0.5.0]# nohup bin/livy-server &
~~~ # OR
[root@hadoop02 ~]# nohup $LIVY_HOME/bin/livy-server &
~~~ # 查看启动的服务
[root@hadoop02 ~]# jps
7897 SparkSubmit
8139 LivyServer
### --- 启动es
~~~ # 到ES安装目录下,执行命令(-d表示后台启动)
~~~ 通过浏览器访问es服务:http://hadoop02:9200/
[root@hadoop02 ~]# su elasticsearch
[elasticsearch@hadoop02 ~]$ cd /opt/yanqi/servers/elasticsearch-5.6.0/
[elasticsearch@hadoop02 elasticsearch-5.6.0]$ bin/elasticsearch -d
### --- 启动Griffin
~~~ 通过Chrome访问Apache Griffin的UI:http://hadoop02:9876 用户名口令:admin / admin
[root@hadoop02 ~]# cd /opt/yanqi/servers/griffin-0.5.0
[root@hadoop02 griffin-0.5.0]# nohup java -jar service-0.5.0.jar>service.out 2>&1 &
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
dov001-PB离线数仓
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了