一、PB级别企业电商离线仓库:部署规划
IP地址 | 主机名 | |
第一台机器 | 192.168.1.121 | Hadoop01 |
第二台机器 | 192.168.1.122 | Hadoop02 |
第三台机器 | 192.168.1.123 | Hadoop03 |
### --- 软件选型
~~~ 数据采集: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 | |
NameNode | √ | ||
SecondaryNameNode | √ | ||
DataNode | √ | √ | √ |
ResourceManager | √ | ||
DataManager | √ | √ | √ |
historyserver | √ | ||
Hive | √ | √ | √ |
HiveServer2 | √ |
二、HDFS和YARN集群部署规划:HDFS和YARN集群规划
框架 | HDFS | YARN |
Hadoop01 | NameNode DataNode Jobhistory | ResourceManager DataManager |
Hadoop02 | SecondaryNameNode DataNode | DataManager |
Hadoop03 | 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 |
Hadoop | √ | √ | √ |
mysql | √ | ||
hive | √ | √ | √ |
HiveServer2 | √ |
### --- hive启动
~~~ # mysql部署节点:Hadoop03
[root@hadoop03 ~]# 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 | √ | |
Hadoop03 | √ |
### --- 启动hive-metastore服务
~~~ # 启动hdfs和yarn
[root@hadoop01 ~]# start-dfs.sh
[root@hadoop01 ~]# start-yarn.sh
~~~ # 分别在Hadoop01和Hadoop03上执行以下命令,查看连接情况
~~~ # 启动 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@hadoop03 ~]# 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 | √ | |
Hadoop03 | √ |
四、配置并启动HiveServer2服务
### --- 启动hadoop03上的 HiveServer2 服务
~~~ # 启动 hiveserver2 服务
[root@hadoop05 ~]# nohup hiveserver2 &
~~~ # 检查 hiveserver2 端口
[root@hadoop03 ~]# 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@linux123 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://Hadoop03:10002/