当前位置: 首页 > news >正文

建网站优化四川城乡与建设厅网站

建网站优化,四川城乡与建设厅网站,上海优化外包,江苏建设厅执业网站hive on Tez 搭建 前提是hive4.0hadoop3.2.2数仓已搭建完成#xff0c;现在只是更换其执行引擎 为Tez。搭建可参考【数据仓库】hive hadoop数仓搭建实践文章。 Tez 下载 下载地址 https://archive.apache.org/dist/tez/ 官网地址 https://tez.apache.org/releases/apac…hive on Tez 搭建 前提是hive4.0hadoop3.2.2数仓已搭建完成现在只是更换其执行引擎 为Tez。搭建可参考【数据仓库】hive hadoop数仓搭建实践文章。 Tez 下载 下载地址 https://archive.apache.org/dist/tez/ 官网地址 https://tez.apache.org/releases/apache-tez-0-10-3.html 这里使用Tez0.10.3版本,下载地址 https://archive.apache.org/dist/tez/0.10.3/apache-tez-0.10.3-bin.tar.gz安装配置 # 解压 tar -zxvf apache-tez-0.10.3-bin.tar.gz # 改名 mv apache-tez-0.10.3-bin tez-0.10.3在hive/conf/hive_env.sh增加如下配置 export TEZ_HOME/home/datahouse/tez-0.10.3 export TEZ_JARS for jar in ls $TEZ_HOME | grep jar; doexport TEZ_JARS$TEZ_JARS:$TEZ_HOME/$jar done for jar in ls $TEZ_HOME/lib; doexport TEZ_JARS$TEZ_JARS:$TEZ_HOME/lib/$jar done #export HIVE_AUX_JARS_PATH/opt/modules/hadoop/share/hadoop/common/hadoop-lzo-0.4.20.jar$TEZ_JARS export HIVE_AUX_JARS_PATH$TEZ_JARSHIVE_AUX_JARS_PATH的配置不能少不然hive启动时无法找到tez的包这个配置变量就是用来加载hive以外的第三方包的。 在hive/conf下新建tez-site.xml文件 ?xml version1.0 encodingUTF-8? ?xml-stylesheet typetext/xsl hrefconfiguration.xsl? configurationpropertynametez.lib.uris/namevalue${fs.defaultFS}/tez/tez-0.10.3,${fs.defaultFS}/tez/tez-0.10.3/lib/value/propertypropertynametez.lib.uris.classpath/namevalue${fs.defaultFS}/tez/tez-0.10.3,${fs.defaultFS}/tez/tez-0.10.3/lib/value/propertypropertynametez.use.cluster.hadoop-libs/namevaluetrue/value/propertypropertynametez.history.logging.service.class/namevalueorg.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService/value/property /configuration由于配置的是hdfs路径需要将tez上传到hdfs上 su hadoop # 在hdfs 文件系统中建 tez目录 hdfs dfs -mkdir /tez # 上传 tez 到 建的目录上去 hdfs dfs -put /home/datahouse/tez-0.10.3 /tez修改conf 下的 hive-site.xml配置 propertynamehive.execution.engine/namevaluetez/value /property重启hive 相关服务。报错如下 日志jar包冲突将tez 下的 日志包移除。 注意hdfs上的也要移除。 重启hiveserver2继续报错 2024-12-30 11:24:00: Starting HiveServer2 Exception in thread main java.lang.NoClassDefFoundError: org/apache/hadoop/fs/BatchListingOperationsat java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(ClassLoader.java:763)at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)at java.net.URLClassLoader.access$100(URLClassLoader.java:74)at java.net.URLClassLoader$1.run(URLClassLoader.java:369)at java.net.URLClassLoader$1.run(URLClassLoader.java:363)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:362)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)at java.lang.ClassLoader.loadClass(ClassLoader.java:411)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:348)at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:370)at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)at java.util.ServiceLoader$1.next(ServiceLoader.java:480)at org.apache.hadoop.fs.FileSystem.loadFileSystems(FileSystem.java:3289)at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:3334)at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3373)at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:125)at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3424)at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3392)at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:485)at org.apache.hadoop.fs.Path.getFileSystem(Path.java:365)at org.apache.hadoop.hive.common.FileUtils.getJarFilesByPath(FileUtils.java:1319)at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:6565)at org.apache.hadoop.hive.conf.HiveConf.init(HiveConf.java:6447)at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:96)at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:80)at org.apache.hive.service.server.HiveServer2.main(HiveServer2.java:1274)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.hadoop.util.RunJar.run(RunJar.java:323)at org.apache.hadoop.util.RunJar.main(RunJar.java:236) Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.BatchListingOperationsat java.net.URLClassLoader.findClass(URLClassLoader.java:382)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 38 more报错问题是找不到类Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/hadoop/fs/BatchListingOperations 这类问题其实解决起来有个通用思路类找不到无非就是相关的jar包版本不匹配导致在使用这个类的地方在对应的jar包里找不到。 通过错误栈可以得知hiveserve2在启动时调用了org.apache.hadoop.hive.common.FileUtils.getJarFilesByPath方法该方法调用了org.apache.hadoop.fs.Path.getFileSystem方法继而执行到org/apache/hadoop/fs/BatchListingOperations找不到类了。去hive-common-4.0.jar包中找到了org.apache.hadoop.hive.common.FileUtils.getJarFilesByPath函数调用位置在hive-common4.0.jar包下的pom文件中看到了引用的hadoop-common的jar包hive 安装目录下未找到该包去hadoop安装目录下找到了该包的hadoop-common-3.2.jar版本查看源码找不到org/apache/hadoop/fs/BatchListingOperations类所以会报这个错误。下面将hadoop-common-3.2.jar换成了hadoop-common-3.3.jar版本能找到org/apache/hadoop/fs/BatchListingOperations类但是又报错找不到org/apache/hadoop/fs/LeaseRecoverable类于是继续更换到hadoop-common-3.4.jar版本能找到org/apache/hadoop/fs/LeaseRecoverable类。但是metastore服务启动又报缺jar包了。更换更新的包但问题却越来越多了。这一切都是引入tez 后造成的引入tez后hive的执行逻辑需要hadoop的包与实际环境中hadoop的包不匹配。经过搜索找到了官网hive4.0版本下tez的配置。但是hadoop版本得升级到hadoop3.3.6。然后基于hadoop3.3.6去集成tez替换hadoop的MR。 hive 4.0版本的tez集成 由于hive4.0 hadoop 3.2.1版本的数仓在集成tez时会引起hive 依赖包 和hadoop包的版本不匹配所以在升级hadoop3.2.1到3.3.6后按照官网教程配置tez。hadoop3.3.6版本升级参考【数据仓库】hadoop3.3.6 安装配置 版本搭配为hive 4.0 hadoop 3.3.6tez0.10.3 官网参考文档 https://hive.apache.org/docs/latest/manual-installation_283118363/ tez包的下载解压就不说了按上文操作下面直接讲配置 tez 配置 # tez export TEZ_HOME/home/datahouse/tez-0.10.3 export PATH$PATH:$TEZ_HOME/*:$TEZ_HOME/confconf/tez-site.xml文件增加配置在tez安装目录下 configurationpropertynametez.lib.uris/namevalue${fs.defaultFS}/tez/tez-0.10.3,${fs.defaultFS}/tez/tez-0.10.3/lib/value/propertypropertynametez.lib.uris.classpath/namevalue${fs.defaultFS}/tez/tez-0.10.3,${fs.defaultFS}/tez/tez-0.10.3/lib/value/propertypropertynametez.use.cluster.hadoop-libs/namevaluetrue/value/propertypropertynametez.history.logging.service.class/namevalueorg.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService/value/property /configuration 这里tez.lib.uris配置了hdfs分布式文件系统上的路径还要记得将相关的包传上去参考上面的脚本。 etc/hadoop/hadoop-env.sh文件增加配置在hadoop安装目录 # tez export TEZ_CONF/home/datahouse/tez-0.10.3/conf export TEZ_JARS/home/datahouse/tez-0.10.3 export HADOOP_CLASSPATH${TEZ_CONF}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*:${HADOOP_CLASSPATH}conf/hive-site.xml文件增加配置在hive安装目录 configurationpropertynamehive.tez.container.size/namevalue1024/value/propertypropertynamehive.execution.engine/namevaluetez/value/propertypropertynametez.lib.uris/namevalue${fs.defaultFS}/tez/tez-0.10.3,${fs.defaultFS}/tez/tez-0.10.3/lib/value/propertypropertynametez.configuration/namevalue/home/datahouse/tez-0.10.3/conf/tez-site.xml/value/propertypropertynametez.use.cluster.hadoop-libs/namevaluetrue/value/property /configuration启动hive相关服务即可启动tez引擎。 测试验证 通过hivesql执行如下语句 select count(*) from t_people where provice 河南省 and age30; 使用MR执行时间为48 s 942 ms 切换到tez执行时间为13 s 449 ms 可见速度快了很多。 hive查询优化 在BI中连接hive 即使使用了tez,在拖了2个图表时再拖第三个时数据加载就会变慢甚至超时。下面对探究hive 配置优化。 !--开启hive 并行执行能力-- propertynamehive.exec.parallel/namevaluetrue/value /property !--设置tez任务的并行度-- /propertypropertynametez.task.parallelism/namevalue4/value /property !--设置并行执行的线程数--propertynamehive.exec.parallel.thread.number/namevalue20/value /property​ 加上上述参数后虽然不超时了但查询依旧很慢看来hive数仓在对接BI指标时速度还是不及mysql因为指标表里都是计算好的指标数据数据量并没有那么大的要是接入BI加载这么慢那肯定是无法满足业务要求的。看来hive在作为数仓存储和分析数据后生成结果数据在展示时还是得通过mysql表进行呈现。 经验 1 数仓相关的框架在搭建时对每个组件的版本是有匹配要求的否则会各种找不到类的错误 2 使用组件配置遇到问题时记得去官网找相关参考资料 3 hive on Tez 模式可以提高hive数据处理分析的速度但在BI场景加载速度还是不能满足要求
http://www.dnsts.com.cn/news/6445.html

相关文章:

  • 建设部资质升级网站阿里云服务器怎么安装wordpress
  • 做网站的公司跑了企业网站的新闻资讯版块有哪些
  • 广州 seo的网站seo优化方案设计
  • 哈尔滨企业网站模板建站找人做短视频网站
  • 国人wordpress主题金华seo
  • 网站开发实训基本要求网站界面美观度
  • 成都彩票网站建设佛山网站建设怎么选
  • 有名的网页游戏深圳市seo点击排名软件价格
  • 网络营销咨询网站源码企业广告宣传
  • 网站建设中html网页天河做网站系统
  • 起名网站是怎么做的免费下载个人简历表格
  • 北京网站如何制作课程网站的设计
  • 上海网站制作商如何自己做公众号
  • 深圳网站建制作如何分析百度指数
  • 园林古建设计网站移动端app下载
  • 天津网站优化步骤crm管理系统排名
  • 简易手机站山东网络建站推广
  • 津南网站建设潍坊市建设厅网站
  • 怎么有自己的网站wordpress 角色权限表
  • 网站建设哪家强注册一个域名需要多少钱
  • 免费网站注册申请买国外的东西在哪个平台
  • 四川省省建设厅网站中文绿色环保网站模板
  • 怎么进行网站设计和改版网页设计网站名称
  • 北京网站备案拍照地址鼓楼yzipi主题wordpress
  • 网站服务商查询怎么制作购物网站
  • 江苏常州建设局网站网站建设汽车后市场解决方案
  • 营口建网站的公司wordpress宾馆
  • 一个人做商城网站网站设计分析报告
  • 做网站哪个公司可以做微商城手机网站设计
  • 阿里云服务器上做淘宝客网站wordpress 开源地图插件