加入收藏 | 设为首页 | 会员中心 | 我要投稿 信阳站长网 (https://www.0376zz.cn/)- 智能营销、云手机、数据工坊、云防火墙、大数据!
当前位置: 首页 > 云计算 > 正文

Docker搭建大数据平台之Hadoop, Spark,Hive初探

发布时间:2022-08-03 12:06:13 所属栏目:云计算 来源:互联网
导读:一、 文章前序 1、序言 网络的发达,使得世界上有网络的每个地方,无时无刻都在产生数据。这些累积的数据,就像无形的巨大资源,等待着人们去挖掘。于是,大数据处理的理论以及实践随之产生的技术越来越成熟。作为一名开发者,学习理解并使用,或许可以用来
    一、 文章前序
    1、序言
    网络的发达,使得世界上有网络的每个地方,无时无刻都在产生数据。这些累积的数据,就像无形的巨大资源,等待着人们去挖掘。于是,大数据处理的理论以及实践随之产生的技术越来越成熟。作为一名开发者,学习理解并使用,或许可以用来解决身边的某些问题。
    本文基于云原生docker,搭建单机版的大数据平台,初探大数据相关技术的搭建使用,抛砖引玉。
    2、相关技术
    Zookeeper
    分布式集群管理、master选举、消息发布订阅、数据存储、分布式锁等等。分布式协调服务,用于维护集群配置的一致性、任务提交的事物性、集群中服务的地址管理、集群管理等。
    HDFS
    分布式文件系统,适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭 之后就不需要改变。
    Yarn
    分布式资源管理系统,用于同一管理集群中的资源(内存等)
    MapReduce
    Hadoop的编程框架,用map和reduce方式实现分布式程序设计,类似于Spring。
    Hive
    数仓工具,Hive进行数据离线批量处理时,需将查询语言先转换成MR任务,由MR批量处理返回结果,所以Hive没法满足数据实时查询分析的需求。
    Hbase
    Hadoop下的分布式数据库,类似于NoSQL。
    Sqoop
    用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递。
    Hadoop
    Hadoop 是一种分析和处理大数据的软件平台,是一个用Java 语言实现的 Apache 的开源软件框架,在大量计算机组成的集群中实现了对海量数据的分布式计算。
    Hadoop=HDFS+Yarn+MapReduce+Hbase+Hive+Zookeeper+Hbase+Hive+Sqoop (生态圈)
    3、用户画像
    用户画像:
    用户信息标签化。
    数据是通过收集用户的社会属性、消费习惯、偏好特征等产生。
    通过对数据的分析,对用户或者产品特征进行刻画,统计,从而挖掘潜在的价值信息。
    标签分类
    统计类标签,例如:近30天类的活跃天数,活跃时长等。
    规则类标签,例如:当用户在30天内的活跃天数大于15天时会被打上 活跃用户 的标签。
    机器学习挖掘类标签,例如:用户购买商品偏好,用户流失意向等。
    二、Docker搭建大数据平台
    1、硬件
    宿主机:WIN10 笔记本 16G ,VMWare虚拟机。
    虚拟机:CentOS8,64位,桥接模式,分配内存8G内存,存储80G。
    本文搭建后,使用free -h 查看,使用了4.6G内存。
    2、技术框架版本以及下载链接
    框架包
 
    描述
 
    下载路径
 
    hadoop-2.7.7
 
    http://archive.apache.org/dist/hadoop/core/hadoop-2.7.7/
 
    hbase-2.1.1
 
    http://archive.apache.org/dist/hbase/1.2.1/
 
    hive-2.3.4
 
    http://archive.apache.org/dist/hive/hive-2.3.4/
 
    jdk1.8.0_144
 
    scala-2.11.12
 
    https://www.scala-lang.org/download/2.11.12.html
 
    spark-2.4.8-bin-hadoop2.7
 
    http://archive.apache.org/dist/spark/spark-2.4.8/
 
    zookeeper-3.4.8
 
    http://archive.apache.org/dist/zookeeper/zookeeper-3.4.8/
 
    3、依赖包已上传到天翼云盘(不限速)
    https://cloud.189.cn/t/RF3YrmYb6RZv (访问码:0iz2)。
 
    4、安装Docker
    ​​Docker入门-在线安装、离线安装以及卸载​​。
 
    5、docker创建独立网段
    复制
    docker network create --subnet=172.18.0.0/16 spark-net
    1.
    6、容器规划
    域名
 
    IP
 
    cloud1
 
    172.18.0.2
 
    cloud2
 
    172.18.0.3
 
    cloud3
 
    172.18.0.4
 
    7、创建基础容器并安装ssh以及免密配置
    参数
 
    说明
 
    –name
 
    容器名称
 
    -h
 
    域名
 
    –add-host
 
    /etc/hosts文件中的域名与IP的映射
 
    –net
 
    指定网段
 
    复制
    # 拉取基础镜像
    docker pull ubuntu
    #创建基础容器并设置当前容器IP
    docker run --name cloud1
     --net spark-net --ip 172.18.0.2
     -h cloud1
     --add-host cloud1:172.18.0.2
     --add-host cloud2:172.18.0.3
     --add-host cloud3:172.18.0.4
     -it ubuntu
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    复制
    #清空/etc/apt/sources.list文件
     echo > /etc/apt/sources.list
     #向/etc/apt/sources.list文件写入阿里云镜像地址
     cat >> /etc/apt/sources.list <<EOF
     deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
     deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
     deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
     deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
     deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
     deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
     deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
     deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
     deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
     deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
     EOF
     #安装vim
     apt-get update
     apt-get install -y vim
     apt-get install net-tools
     #在容器cloud1中通过apt工具来安装ssh
     apt-get install -y ssh
     #往~/.bashrc中加入ssh服务启动命令
     vim ~/.bashrc
     export LC_ALL="C.UTF-8"
     /usr/sbin/sshd
     #需要创建个目录
     mkdir -p /run/sshd
     #直接回车
     ssh-keygen -t rsa -P ""
     #私钥(~/.ssh/id_rsa)由客户端持有
     #公钥(~/.ssh/id_rsa.pub)交给服务端
     #已认证的公钥(~/.ssh/authorized_keys)由服务端持有,只有已认证公钥的客户端才能连接至服务端
     cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
     #测试是否能连接成功
     ssh root@cloud1
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    10.
    11.
    12.
    13.
    14.
    15.
    16.
    17.
    18.
    19.
    20.
    21.
    22.
    23.
    24.
    25.
    26.
    27.
    28.
    29.
    30.
    31.
    32.
    33.
    34.
    35.
    8、大数据环境安装
    各软件版本
    软件
 
    版本
 
    Java
 
    1.8.0_144
 
    Scala
 
    2.11.12
 
    Zookeeper
 
    3.4.10
 
    Hadoop
 
    2.7.7
 
    Spark
 
    2.4.8
 
    Hive
 
    2.3.4
 
    安装目录
    复制
    mkdir -p /usr/local/spark
    1.
    将环境所需依赖包拷贝到容器内
    复制
    # 在容器内创建目录
    mkdir -p /opt/spark_tar
    # 如果依赖包放在/opt下 则进入到/opt目录下然后执行如下命令
    docker cp apache-hive-2.3.4-bin.tar.gz cloud1:/opt/spark_tar
    docker cp hadoop-2.7.7.tar.gz cloud1:/opt/spark_tar
    docker cp jdk-8u191-linux-x64.tar.gz cloud1:/opt/spark_tar
    docker cp scala-2.11.12.tgz cloud1:/opt/spark_tar
    docker cp spark-2.4.8-bin-hadoop2.7.tgz cloud1:/opt/spark_tar
    docker cp zookeeper-3.4.10.tar.gz cloud1:/opt/spark_tar
    docker cp mysql-connector-java.jar cloud1:/opt/spark_tar
    docker cp hive-site.xml cloud1:/opt/spark_tar
    #或执行我放在云盘中的脚本 sh cpAllToCloud1.sh
    #在容器目录/opt/spark_tar下执行解压
    tar -zxvf  apache-hive-2.3.4-bin.tar.gz     -C  /usr/local/spark/
    tar -zxvf  hadoop-2.7.7.tar.gz              -C  /usr/local/spark/
    tar -zxvf  jdk-8u191-linux-x64.tar.gz       -C  /usr/local/spark/
    tar -zxvf  scala-2.11.12.tgz                -C  /usr/local/spark/
    tar -zxvf  spark-2.4.8-bin-hadoop2.7.tgz    -C  /usr/local/spark/
    tar -zxvf  zookeeper-3.4.10.tar.gz          -C  /usr/local/spark/
    mv /usr/local/spark/apache-hive-2.3.4-bin  /usr/local/spark/hive-2.3.4
    #或执行我的脚本 sh tarAllToUsrLocal.sh (也就是把上面的命令放在一个文件内一次执行)
    cd /usr/local/spark/
    drwxr-xr-x  9 1000 staff  149 Jul 19  2018 hadoop-2.7.7/
    drwxr-xr-x 10 root root   184 Jul 14 17:55 hive-2.3.4/
    drwxr-xr-x  7 uucp   143  245 Oct  6  2018 jdk1.8.0_191/
    drwxrwxr-x  6 1001  1001   50 Nov 10  2017 scala-2.11.12/
    drwxr-xr-x 13  501  1000  211 May  8  2021 spark-2.4.8-bin-hadoop2.7/
    drwxr-xr-x 10 1001  1001 4096 Mar 23  2017 zookeeper-3.4.10/
 
    配置环境变量
    复制
    vim ~/.bashrc
    export JAVA_HOME=/usr/local/spark/jdk1.8.0_191
    export PATH=$PATH:$JAVA_HOME/bin
    export SCALA_HOME=/usr/local/spark/scala-2.11.12
    export PATH=$PATH:$SCALA_HOME/bin
    export ZOOKEEPER_HOME=/usr/local/spark/zookeeper-3.4.10
    export PATH=$PATH:$ZOOKEEPER_HOME/bin
    export HADOOP_HOME=/usr/local/spark/hadoop-2.7.7
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native
    export SPARK_HOME=/usr/local/spark/spark-2.4.8-bin-hadoop2.7
    export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
    export HIVE_HOME=/usr/local/spark/hive-2.3.4
    export PATH=$HIVE_HOME/bin:$PATH
    source ~/.bashrc

(编辑:信阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读