Hadoop3.0大数据处理学习1(Haddop介绍、部署、Hive部署)

Hadoop3.0快速入门

学习步骤:

  1. 三大组件的基本理论和实际操作
  2. Hadoop3的使用,实际开发流程
  3. 结合具体问题,提供排查思路

开发技术栈:

  • Linux基础操作、Sehll脚本基础
  • JavaSE、Idea操作
  • MySQL

Hadoop简介

Hadoop是一个适合海量数据存储与计算的平台。是基于Google的GoogleFS、Map Reduce、BigTable实现的。

分布式存储介绍

分布式计算介绍

  • 移动数据:数据 -> 计算程序
  • 移动计算:计算程序 -> 数据
  • 分布式计算:各个节点局部计算 -> 第二阶段汇总程序

Hadoop三大核心组件

HDFS(分布式存储系统)

架构分析:

  • HDFS负责海量数据的分布式存储。
  • 支持主从架构,主节点支持多个NameNode,从节点支持多个DataNode。
  • NameNode负责接收用户请求,维护目录系统的目录结构。DataNode主要负责存储数据。

MapReduce(分布式计算框架)

架构分析:

  • MapReduce是一个编程模型,主要负责海量数据计算,主要由两个阶段组成:Map和Reduce。
  • Map阶段是一个独立的程序,会在很多个节点上同时执行,每个节点处理一部分数据。
  • Reduce节点也是一个独立的程序,在这先把Reduce理解为一个单独的聚合程序即可。

Yarn(资源管理与调度)

架构分析:

  • 主要负责集权资源的管理和调度,支持主从架构,主节点最多可以有2个,从节点可以有多个。
  • 主节点(ResourceManager)进程主要负责集群资源的分配和管理。
  • 从节点(NodeManager)主要负责单节点资源管理。

大数据生态圈

Hadoop安装部署

Hadoop发行版介绍

  • 官方版本:Apache Hadoop,开源,集群安装维护比较麻烦
  • 第三方发行版:Cloudera Hadoop(CDH),商业收费,使用Cloudera Manager安装维护比较方便
  • 第三方发行版:HortonWorks(HDP),开源,使用Ambari安装维护比较方便。

伪分布式集群安装部署(使用1台Linux虚拟机安装伪分布式集群)

1. 静态IP设置

192.168.56.101

2. 主机名设置(临时、永久)

cent7-1

3. hosts文件修改(配置IP与主机名映射关系)

cent7-1 localhost

4. 关闭防火墙(临时、永久)

shell 复制代码
systemctl status firewalld.service
systemctl stop firewalld
systemctl status firewalld.service

5. ssh免密登录

shell 复制代码
ssh-keygen -t rsa
cd /root
cd .ssh/
cat id_rsa
cat id_rsa.pub >> authorized_keys
ssh cent7-1

6. JDK1.8安装

shell 复制代码
tar -zxvf jdk-8u191-linux-x64.tar.gz 
vi /etc/profile
source /etc/profile

# profile配置内容
export JAVA_HOME=/home/jdk8
export PATH=.:$JAVA_HOME/bin:$PATH

7. Hadoop伪分布式安装

shell 复制代码
# 解压Hadoop
tar -zxvf hadoop-3.2.4.tar.gz 
# 进入配置文件目录
cd /home/hadoop-3.2.4/etc/hadoop

vi core-site.xml 

vi hdfs-site.xml 
  1. 配置core-site.xml
xml 复制代码
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://cent7-1:9000</value>
  <final>true</final>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hadoop_repo</value>
</property>
  1. 配置hdfs-site.xml
xml 复制代码
<!-- 指定HDFS副本的数量,伪分布式集群最多一个,也不支持多个 -->
<property>
   <name>dfs.replication</name>
   <value>1</value>
</property>
  1. 配置hdfs-site.xml
xml 复制代码
<!-- 指定MR运行在Yarn上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
  1. 配置yarn-site.xml
xml 复制代码
<!-- Reducer获取数据的方式 -->
<property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager白名单 -->
<property>
  <name>yarn.nodemanager.env-whitelist</name>
  <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
  1. 配置 hadoop-env.sh
sh 复制代码
export JAVA_HOME=/home/jdk8
export HADOOP_LOG_DIR=/home/hadoop_repo/logs/hadoop
  1. 初始化hdfs
shell 复制代码
# 在Hadoop的目录下执行以下命令,
bin/hdfs namenode -format

看到以下内容说明执行成功!注意:hdfs格式化只能执行一次,如果失败需要删除文件夹后再进行格式化。

启动

shell 复制代码
[root@cent7-1 hadoop-3.2.4]# sbin/start-all.sh
Starting namenodes on [cent7-1]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [cent7-1]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
Starting resourcemanager
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
Starting nodemanagers
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.
# 提示缺少hdfs、yarn的用户信息
  1. 配置start-dfs.shstop-dfs.sh
shell 复制代码
vi sbin/start-dfs.sh
vi sbin/stop-dfs.sh 
#增加配置
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
  1. 配置
shell 复制代码
vi sbin/start-yarn.sh 
vi sbin/stop-yarn.sh 
#增加配置
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
  1. 再次启动
shell 复制代码
[root@cent7-1 hadoop-3.2.4]# sbin/start-all.sh 
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.
Starting namenodes on [cent7-1]
上一次登录:三 8月 30 19:05:12 CST 2023从 192.168.56.1pts/1 上
Starting datanodes
上一次登录:三 8月 30 21:02:51 CST 2023pts/0 上
localhost: Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Starting secondary namenodes [cent7-1]
上一次登录:三 8月 30 21:02:56 CST 2023pts/0 上
Starting resourcemanager
上一次登录:三 8月 30 21:03:49 CST 2023从 192.168.56.1pts/3 上
Starting nodemanagers
上一次登录:三 8月 30 21:04:13 CST 2023pts/0 上
[root@cent7-1 hadoop-3.2.4]# jps
10146 NameNode
10386 DataNode
10883 SecondaryNameNode
11833 ResourceManager
12954 Jps
12155 NodeManager
# 展示除了jps外的五个Hadoop组件进程表示启动成功
  1. 浏览器确认启动成功

停止

shell 复制代码
sbin/stop-all.sh

分布式集群安装部署(使用3台Linux虚拟机安装分布式集群)

客户端节点安装介绍

HIVE安装部署

mysql安装部署

shell 复制代码
yum install mysql

hive下载与部署

apache-hive-hive-3.1.3安装包下载_开源镜像站-阿里云 (aliyun.com)

source /etc/profile

shell 复制代码
export HIVE_HOME=/home/hive
export PATH=$HIVE_HOME/bin:$PATH

配置hive/conf/hive-site.xml文件

xml 复制代码
<configuration>  
<property>  
        <name>javax.jdo.option.ConnectionURL</name>  
        <value>jdbc:mysql://cent7-1:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>  
</property>  
<property>  
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>  
</property>  
<property>  
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>hdp</value>  
</property>  
<property>  
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>admin</value>  
</property>  
<!--自定义远程连接用户名和密码-->
<property>
        <name>hive.server2.authentication</name>
        <value>CUSTOM</value><!--默认为none,修改成CUSTOM-->
</property>
<!--指定解析jar包-->
<property>
        <name>hive.server2.custom.authentication.class</name>
        <value>com.ylw.CustomHiveServer2Auth</value>
</property>  
<property>
   <name>hive.server2.custom.authentication.file</name>
   <value>/home/hive/user.pwd.conf</value>
</property>
<!--设置用户名和密码-->
<property>
        <name>hive.jdbc_passwd.auth.root</name><!--用户名为最后一个:root-->
        <value>admin</value>
</property>  
<property>
        <name>hive.metastore.port</name>
        <value>9083</value>
        <description>Hive metastore listener port</description>
</property>
<property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
        <description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description>
</property>
<property>
        <!-- <value>新的最大工作线程数</value>-->
  <name>hive.server2.thrift.max.worker.threads</name>
  <value>200</value>
</property>
<property>
        <name>hive.metastore.local</name>
        <value>false</value>
        <description>controls whether to connect to remote metastore server or open a new metastore server in Hive Client JVM</description>
</property>
<property>
        <name>hive.server2.transport.mode</name>
        <value>binary</value>
        <description>
         Expects one of [binary, http].
         Transport mode of HiveServer2.
        </description>
</property>
</configuration> 

启动与停止hive

shell 复制代码
nohup hive --server metastore &
nohup hive --service hiveserver2 &
jps
#看到是否有两个runJar ,如果有说明启动成功
# 查看端口占用
netstat -anop |grep 10000
ps -aux|grep hive
相关推荐
随心............1 小时前
在开发过程中遇到问题如何解决,以及两个经典问题
hive·hadoop·spark
yumgpkpm10 小时前
CMP (类ClouderaCDP7.3(404次编译) )华为鲲鹏Aarch64(ARM)信创环境 查询2100w行 hive 查询策略
数据库·数据仓库·hive·hadoop·flink·mapreduce·big data
K_i1341 天前
Hadoop 集群自动化运维实战
运维·hadoop·自动化
Q26433650231 天前
【有源码】基于Python与Spark的火锅店数据可视化分析系统-基于机器学习的火锅店综合竞争力评估与可视化分析-基于用户画像聚类的火锅店市场细分与可视化研究
大数据·hadoop·python·机器学习·数据分析·spark·毕业设计
starfalling10242 天前
【hive】一种高效增量表的实现
hive
顧棟2 天前
【Yarn实战】Yarn 2.9.1滚动升级到3.4.1调研与实践验证
hadoop·yarn
D明明就是我2 天前
Hive 拉链表
数据仓库·hive·hadoop
嘉禾望岗5032 天前
hive join优化和数据倾斜处理
数据仓库·hive·hadoop
yumgpkpm2 天前
华为鲲鹏 Aarch64 环境下多 Oracle 数据库汇聚操作指南 CMP(类 Cloudera CDP 7.3)
大数据·hive·hadoop·elasticsearch·zookeeper·big data·cloudera
忧郁火龙果2 天前
六、Hive的基本使用
数据仓库·hive·hadoop