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 (编辑:信阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

