絮叨两句:
博主是一名软件工程系的在校生,利用博客记录自己所学的知识,也希望能帮助到正在学习的同学们
人的一生中会遇到各种各样的困难和折磨,逃避是解决不了问题的,唯有以乐观的精神去迎接生活的挑战
少年易老学难成,一寸光阴不可轻。
最喜欢的一句话:今日事,今日毕

页数 名称
上一页 企业级360°全方位用户画像:标签系统[四]
企业级360°全方位用户画像:环境搭建[五]
下一页 企业级360°全方位用户画像:业务数据调研及ETL[六]

文章目录

  • 前言
  • 项目环境搭建
  • 大数据平台基础环境
    • 安装JDK1.8,配置环境变量
    • 安装Scala 2.11,配置环境变量
    • 安装MySQL数据库
    • 分布式协作服务Zookeeper
    • 大数据基础框架Hadoop
      • 分布式文件系统HDFS
      • 分布式资源管理框架YARN
      • 计算处理框架MapReduce
    • 数据仓库框架Hive
    • 大数据NoSQL数据库HBase
  • 大数据生态组件
    • 数据转换工具SQOOP
    • 数据实时抽取采集Flume
    • 任务调度框架Oozie
    • 大数据可视化工具Hue
  • 大数据分析框架Spark

前言

依据项目需求,使用大数据相关技术框架,安装目录及软件版本具体如下图所示:


提示:以下是本篇文章正文内容,下面案例可供参考

项目环境搭建

所有软件的安装以后,创建软连接,方便日后软件的升级。
ln [OPTION]... [-T] TARGET LINK_NAME# 比如
ln -s /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0 spark
在实际大数据项目中,大数据管理WEB界面,方便安装部署和监控大数据框架组件:
1)、ClouderaManagerCM安装软件目录:/opt/parcells/......///......
2)、Ambari开源/etc//usr/lib/impala/

大数据平台基础环境

安装开发语言软件JDK1.8和Scala2.11及MySQL数据库。
  1. JDK 1.8
    所有的大数据框架(90%)基于Java语言编写的
  2. Scala 2.11
    Spark框架和Kafka框架使用Scala语言编写的
  3. MySQL
    • Hive 表元数据MetaStore
    • Oozie和Hue元数据
    • 系统:WEB Platform
      业务数据存储:tags

安装JDK1.8,配置环境变量

# JAVA HOME
export JAVA_HOME=/export/servers/jdk
export PATH=$PATH:${JAVA_HOME}/bin

安装Scala 2.11,配置环境变量

# SCALA HOME
export SCALA_HOME=/export/servers/scala
export PATH=$PATH:${SCALA_HOME}/bin

安装MySQL数据库

按照MySQL数据库功能:

1)、Hive MetaStore存储存储元数据
2)、标签系统WEB 平台数据存储tbl_basic_tagtbl_model3)、Oozie 数据存储Oozie调度Spark2应用程序
4)、Hue 数据存储方便操作大数据平台组件5)、业务数据: tags_dat订单数据、订单商品表数据、会员信息数据、行为日志数据

截图如下所示:

在实际项目,MySQL数据库字符编码最好是UTF-8,避免乱码出现。
此处使用数据库版本:5.1.73,此版本较低,实际项目使用高版本(至少为**5.6.17**)版本以上。

[root@bigdata-cdh01 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.73 Source distributionCopyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db_orders          |
| hue                |
| metastore          |
| mysql              |
| oozie              |
| tags               |
| tags_dat           |
| test               |
+--------------------+
9 rows in set (0.31 sec)

点击:linux安装jdk,tomcat,mysql

分布式协作服务Zookeeper

Apache Zookeeper :安装zookeeper步骤

                在大数据框架中为了高可用性,很多框架依赖于Zookeeper,所以先安装Zookeeper框架,单机版安装。

  • 配置文件:$ZOOKEEPER_HOME/zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/export/servers/zookeeper/datas/data
dataLogDir=/export/servers/zookeeper/datas/log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
##server.1=bigdata-cdh01.itcast.cn:2888:3888
##server.2=bigdata-cdh02.itcast.cn:2888:3888
##server.3=bigdata-cdh03.itcast.cn:2888:3888
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
  • 创建数据和日志目录:
mkdir -p /export/servers/zookeeper/datas/data
mkdir -p /export/servers/zookeeper/datas/log

针对Zookeeper集群监控工具:
                                       1. TaoKeeper :
                                                阿里巴巴开源ZK监控工具,目前基本没人使用           
                                       2. zkui
                                                https://github.com/DeemOpen/zkui
                                                https://www.jianshu.com/p/dac4c0bd1d2e

大数据基础框架Hadoop

安装大数据Hadoop框架,包含三个组件 :



                                    HDFS(分布式文件系统)
                                    YARN(集群资源管理和任务调度平台)
                                    MapReduce(海量数据处理框架)

分布式文件系统HDFS

包含服务组件:NameNode和DataNodes,实际项目中按照HDFS HA(基于JN)。

  • 环境变量配置:$HADOOP_HOME/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/export/servers/jdk
  • common模块配置文件:$HADOOP_HOME/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>fs.defaultFS</name><value>hdfs://bigdata-cdh01.itcast.cn:8020</value></property><property><name>hadoop.tmp.dir</name><value>/export/servers/hadoop/datas</value></property><property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.root.groups</name><value>*</value></property><property><name>hadoop.proxyuser.hue.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.hue.groups</name><value>*</value></property></configuration>
  • hdfs模块配置文件:$HADOOP_HOME/etc/hadoop/hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.permissions.enabled</name><value>false</value></property><property><name>dfs.webhdfs.enabled</name><value>true</value></property>
</configuration>
  • 配置文件:$HADOOP_HOME/etc/hadoop/slaves
bigdata-cdh01.itcast.cn

分布式资源管理框架YARN

对集群资源分布式管理和调度,包含 ResourceManager和NodeManagers。


面试题:
目前来说,大数据框架Spark 主要还是运行在YANR上,所以必须掌握如下两个问题:

  1. YARN 如何资源管理和应用调度
  • Hadoop组成:Apache Hadoop YARN
  • Hadoop组成:Apache Hadoop YARN调度器
  1. Spark on YARN:两个DeployMode提交流程与区别
    必问,死背[待补充]
  • 配置文件$HADOOP_HOME/etc/hadoop/yarn-env.sh
# some Java parameters
export JAVA_HOME=/export/servers/jdk
  • 配置文件$HADOOP_HOME/etc/hadoop/yarn-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>yarn.resourcemanager.hostname</name><value>bigdata-cdh01.itcast.cn</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property><property><name>yarn.log.server.url</name><value>http://bigdata-cdh01.itcast.cn:19888/jobhistory/logs</value></property></configuration>

计算处理框架MapReduce

对海量数据进行离线分析处理框架MapReduce,其中SqoopOozie底层运行都是MapReduce任务,仅仅执行MapTask

面试题: MapReduce Shuffle过程,必须会背会写

MapReduce Shuffle过程

  • 配置文件$HADOOP_HOME/etc/hadoop/mapred-env.sh
export JAVA_HOME=/export/servers/jdk
  • 配置文件$HADOOP_HOME/etc/hadoop/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>bigdata-cdh01.itcast.cn:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>bigdata-cdh01.itcast.cn:19888</value></property>
</configuration>

数据仓库框架Hive

基于HADOOP之上数据仓库框架Hive,在企业中使用非常广泛,底层MR计算分析数据。

  • 针对Hive框架来说,底层计算引擎可以为三种:
  • MapReduce(最原始)
  • Tez
  • Spark
  • 从Hive 2.0开始,官方建议使用Spark/Tez作为计算引擎,不推荐使用MR。


面试题:Hive 框架架构组成,核心Driver(具体功能)
将SQL转换为MapReduce程序,提交运行到YARN上, 处理存储在HDFS上数据。


  • 配置文件:$HIVE_HOME/conf/hive-env.sh
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/export/servers/hadoop# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/export/servers/hive/conf
  • 配置文件:$HIVE_HOME/conf/hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://bigdata-cdh01.itcast.cn:3306/metastore?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8</value><description>JDBC connect string for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value><description>username to use against metastore database</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value><description>password to use against metastore database</description></property><property><name>hive.cli.print.header</name><value>true</value><description>Whether to print the names of the columns in query output.</description></property><property><name>hive.cli.print.current.db</name><value>true</value></property><property><name>hive.mapred.mode</name><value>strict</value></property><property><name>hive.metastore.uris</name><value>thrift://bigdata-cdh01.itcast.cn:9083</value></property><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property>
</configuration>

将MySQL数据库驱动包放入$HIVE_HOME/lib目录下。

大数据NoSQL数据库HBase


基于HDFS之上,存储海量数据NoSQL数据库HBase,面向列存储,可以存储几十亿行和百万列。


面试题:1. 从HBase表中读写数据流程首先连接ZK地址,找Meta表的Region所在的RegionServer地址信息读流程:MemStore 、StoreFile、BlockCache(读缓存)写流程:WAL(预写日志)、MemStore、StoreFile(Compaction:Minor、Major)2 . HBase表的设计就是RowKey设计:唯一性、避免热点、前缀匹配查询3. HBase 性能优化数据压缩、表预分区,JVM设置,RegionServer内存分配设置HBase是否有单点故障:没有,可以启动多个HMaster
如果HBase集群中HMaster宕机了,短时间内是否影响Client读写表的数据:不影响
  • 配置文件:$HBASE_HOME/conf/hbase-env.sh
# The java implementation to use.  Java 1.7+ required.
export JAVA_HOME=/export/servers/jdk# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
  • 配置文件:$HBASE_HOME/conf/hbase-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- 指定HBase框架运行临时目录 --><property ><name>hbase.tmp.dir</name><value>/export/servers/hbase/data/tmp</value></property><!-- HBASE 表中数据存储在HDFS上根目录 --><property ><name>hbase.rootdir</name><value>hdfs://bigdata-cdh01.itcast.cn:8020/hbase</value></property><!-- HBase Cluster 集群运行在分布式模式下,伪分布式也是分布式 --><property ><name>hbase.cluster.distributed</name><value>true</value></property><!-- 告知HBase Cluster所依赖的ZK Cluster地址 --><property><name>hbase.zookeeper.quorum</name><value>bigdata-cdh01.itcast.cn</value></property><!-- 配置压缩SNAPPY和LZ4 --><!-- <property><name>hbase.master.check.compression</name><value>true</value></property><property><name>hbase.regionserver.codecs</name><value>lz4</value></property>--></configuration>
  • 配置文件:$HBASE_HOME/conf/regionservers
bigdata-cdh01.itcast.cn

大数据生态组件


生态组件中有SQOOP、FLUME、OOZIE和HUE,方便数据采集及任务调度查看。


数据转换工具SQOOP

数据实时抽取采集Flume

面试题:Flume采集数据时,考虑架构:高可用和负载均衡案例:1)、Flume 高可用:https://blog.csdn.net/jinYwuM/article/details/825946182)、Flume 负载均衡https://blog.csdn.net/silentwolfyh/article/details/51165804

任务调度框架Oozie

大数据可视化工具Hue

大数据分析框架Spark

大数据分析框架Spark,集成批处理、交互式分析和流式处理及高级数据分析(图计算和机器学习)为一体的框架,从Spark 2.0开始,所有应用入口为SparkSession,数据封装在DataFrame中。

  • 配置文件:$SPARK_HOME/conf/spark-env.sh
JAVA_HOME=/export/servers/jdk
SCALA_HOME=/export/servers/scalaHADOOP_CONF_DIR=/export/servers/hadoop/etc/hadoop
YARN_CONF_DIR=/export/servers/hadoop/etc/hadoopSPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://bigdata-cdh01.itcast.cn:8020/spark/eventLogs/ -Dspark.history.fs.cleaner.enabled=true"
  • 配置文件:$SPARK_HOME/conf/spark-defaults.conf
spark.eventLog.enabled   true
spark.eventLog.dir  hdfs://bigdata-cdh01.itcast.cn:8020/spark/eventLogs/
spark.eventLog.compress truespark.yarn.jars         hdfs://bigdata-cdh01.itcast.cn:8020/spark/jars/*spark.yarn.historyServer.address bigdata-cdh01.itcast.cn:18080spark.sql.warehouse.dir /user/hive/warehouse

运行Spark 圆周率PI程序,提交到YARN上执行:

#!/bin/bashSPARK_HOME=/export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0${SPARK_HOME}/bin/spark-submit \
--master yarn \
--deploy-mode cluster \
--class org.apache.spark.examples.SparkPi \
--driver-memory 512m \
--driver-cores 1 \
--executor-memory 512m \
--executor-cores 1 \
--num-executors 2 \
--queue default \
hdfs://bigdata-cdh01.itcast.cn:8020/spark/spark-examples_2.11-2.2.0.jar \
10

如能帮助到你或对大数据有兴趣的可以关注一下,希望能点个赞支持一下谢谢!

企业级360°全方位用户画像:环境搭建[五]相关推荐

  1. 企业级360°全方位用户画像:标签系统[四]

    絮叨两句: 博主是一名软件工程系的在校生,利用博客记录自己所学的知识,也希望能帮助到正在学习的同学们 人的一生中会遇到各种各样的困难和折磨,逃避是解决不了问题的,唯有以乐观的精神去迎接生活的挑战 少年 ...

  2. 企业级360°全方位用户画像

    用户画像概念.项目概述及环境搭建 1.用户画像 1.1.概念 什么是用户画像? 百度百科定义 用户画像又称用户角色,作为一种勾画目标用户.联系用户诉求与设计方向的有效工具,用户画像在各领域得到了广泛的 ...

  3. Profile_Day05:企业级360全方位用户画像

    Profile_Day05:企业级360全方位用户画像 1昨日内容回顾 主要讲解2个方面的内容: 如何基于SparkSQL实现自定义外部数据源HBase和统计类型标签模型开发. 1, SparkSQL ...

  4. 企业级360°全方位用户画像:项目介绍[二]

    絮叨两句: 博主是一名软件工程系的在校生,利用博客记录自己所学的知识,也希望能帮助到正在学习的同学们 人的一生中会遇到各种各样的困难和折磨,逃避是解决不了问题的,唯有以乐观的精神去迎接生活的挑战 少年 ...

  5. 大数据【企业级360°全方位用户画像】之USG模型和决策树分类算法

    在之前的一篇博客<大数据[企业级360°全方位用户画像]之RFM模型和KMeans聚类算法>中,博主为大家带来了KMeans聚类算法的介绍.并在之后,基于不同的模型开发标签,例如RFM,R ...

  6. 用户画像第一章(企业级360°全方位用户画像_环境搭建)

    环境搭建 2.4.项目工程演示 将项目工程[tags(演示版).zip]解压,为Maven Project,导入IDEA中,如下图所示: 选择解压的工程,如下图: 一直点击下一步[Next]即可,最终 ...

  7. 大数据【企业级360°全方位用户画像】标签系统介绍

    在前面几篇博客中,博主已经为大家带来了什么是用户画像,以及项目的一个基础介绍.用户画像的核心就是打标签,本篇博客,我们来聊聊关于这个项目的标签系统. 文章目录 1. 标签系统 1.1 基础标签 1.1 ...

  8. 大数据【企业级360°全方位用户画像】项目介绍

    在正式开始对[企业级用户画像]项目展开介绍之前,博主可是煞费苦心,为大家整理了一期,如何彻底理解什么是用户画像(

  9. 大数据【企业级360°全方位用户画像】匹配型标签开发

    写在前面: 博主是一名大数据的初学者,昵称来源于<爱丽丝梦游仙境>中的Alice和自己的昵称.作为一名互联网小白,写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和自己一样 ...

最新文章

  1. 一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事
  2. 【PP】SAP库存决定
  3. 发现一个增长天翼手机待机时间的方法
  4. R语言观察日志(part18)--.C和.Call
  5. SAP CRM产品主数据工作流相关调试
  6. 如何分析 StackOverflow 异常 ?
  7. .NET Core 3.0中IAsyncEnumerableT有什么大不了的?
  8. PowerShell实战1:Ping_Test
  9. 【LeetCode笔记】236. 二叉树的最近公共祖先(Java、二叉树、DFS)
  10. 第2章第29节:英文排版技巧:无衬线字体和手写字体的搭配 [PowerPoint精美幻灯片实战教程]
  11. 【机器学习算法】集成学习-1 强学习器的融合学习
  12. WKWebView 如何支持window.open方法
  13. 外汇天眼:什么是熊市和牛市?
  14. Java:抽象成类找对象
  15. surface pro java_【微软SurfacePro4评测】两代产品外观对比_微软 Surface Pro 4_笔记本评测-中关村在线...
  16. WIN10宽带连接秒断解决办法
  17. keil错误提示Error: L6218E: Undefined symbol
  18. 行为研究:用户行为背后的意义和4点价值
  19. 《Docker技术入门与实战》——3.8 本章小结
  20. 一个非常好用的代码搜索引擎

热门文章

  1. Don Box博客中文版入驻CSDN,志愿者翻译招募中....
  2. 总结 and 读后感之自控力 By 凯利·麦格尼格尔
  3. java实现创蓝短信
  4. 安装pip、pip3
  5. AI技术押人工智能考试题
  6. 笔记本电脑周边双屏显示方案
  7. positivessl证书旗下的IP证书
  8. cad怎么倒圆角_15个超实用CAD技巧,效率递增10倍,设计院师傅都在用
  9. 共享办公室租赁和传统写字楼之间,如何抉择
  10. 利用pearcmd.php本地文件包含(LFI)