gitweixin
  • 首页
  • 小程序代码
    • 资讯读书
    • 工具类
    • O2O
    • 地图定位
    • 社交
    • 行业软件
    • 电商类
    • 互联网类
    • 企业类
    • UI控件
  • 大数据开发
    • Hadoop
    • Spark
    • Hbase
    • Elasticsearch
    • Kafka
    • Flink
    • 数据仓库
    • 数据挖掘
    • flume
    • Kafka
    • Hive
    • shardingsphere
    • solr
  • 开发博客
    • Android
    • php
    • python
    • 运维
    • 技术架构
    • 数据库
  • 程序员网赚
  • bug清单
  • 量化投资
  • 在线查询工具
    • 去行号
    • 在线时间戳转换工具
    • 免费图片批量修改尺寸在线工具
    • SVG转JPG在线工具

月度归档8月 2022

精品微信小程序开发门户,代码全部亲测可用

  • 首页   /  2022   /  
  • 8月
Java 8月 25,2022

Idea如何远程调试普通java程序

在开发过程中,常常遇到在本地运行好好的,一到服务器就出各种问题。除了使用日志可以帮助定位,更直观灵活的方式是通过远程调试的方式来定位问题。

如何使用IDEA远程调试

  1. 打开工程,在菜单栏中选择“Run > Edit Configurations”。
  2. 在弹出的配置窗口中用鼠标左键单击左上角的号,在下拉菜单中选择Remote
  3. 选择对应要调试的源码模块路径,并配置远端调试参数Host和Port,如下图2所示。 其中Host为Spark运行机器IP地址,Port为调试的端口号(确保该端口在运行机器上没被占用)。

4.在第3步所填的服务器,执行以下命令,远端启动java

例如:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 -cp spark-examples_2.10.jar com.data.monitor.Main


5、设置调试断点。 在IDEA代码编辑窗口左侧空白处单击鼠标左键设置相应代码行断点

6、启动调试。 在IDEA菜单栏中选择“Run > Debug ‘Unnamed’”开启调试窗口,接着开始SparkPi的调试,比如单步调试、查看调用栈、跟踪变量值等,如下图所示。

作者 east
Java 8月 19,2022

Thread.currentThread().getContextClassLoader.getResourceAsStream空指针问题

在idea运行代码时,下面的代码一直空指针

Thread.currentThread().getContextClassLoader.getResourceAsStream(“core.properties”);

网上查解决方案,很多都是说idea需要把工程设置为Resources,查了已经是设置了。后来查到有的说是pom问题,经常摸索,果然是pom问题,是下面的pom设置影响到了。

<resources>
            <resource>
                <directory>${project.basedir}/libs</directory>
                <targetPath>BOOT-INF/lib/</targetPath>
                <includes>
                    <include>**/*.jar</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <targetPath>BOOT-INF/classes/</targetPath>
            </resource>
        </resources> 

配置文件是否能访问,可以看在target/classes文件夹中是否存在

后来修改了pom文件,再运行果然没有报空指针的问题了

<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>${project.basedir}/libs</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>

作者 east
Java 8月 17,2022

解决Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce

在编译spark-atlas-connector的源码时,遇到下面的报错:

[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-versions) @ spark-atlas-connector-main_2.11 ---
[WARNING] Rule 2: org.apache.maven.plugins.enforcer.RequireOS failed with message:
OS Arch: x86 Family: dos Name: windows 10 Version: 10.0 is not allowed by Family=unix
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] spark-atlas-connector-main_2.11 .................... FAILURE [  2.116 s]
[INFO] spark-atlas-connector_2.11 ......................... SKIPPED
[INFO] spark-atlas-connector-assembly ..................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.189 s
[INFO] Finished at: 2022-08-17T17:06:06+08:00
[INFO] Final Memory: 26M/495M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce (enforce-versions) on project spark-atlas-connector-main_2.11: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

刚开始很头疼,搜索了不少“Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce”,还是没解决问题。后面发现上面的“

org.apache.maven.plugins.enforcer.RequireOS failed with message:
OS Arch: x86 Family: dos Name: windows 10 Version: 10.0 is not allowed by Family=unix”

原来, Maven Enforcer 插件提供了非常多的通用检查规则,比如检查 JDK 版本、检查 Maven 版本、 检查依赖版本,等等

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <inherited>false</inherited>
        <configuration>
          <rules>
            <requireMavenVersion>
              <version>[3.0.0,)</version>
            </requireMavenVersion>
            <requireJavaVersion>
              <version>[${minJavaVersion}.0,${maxJavaVersion}.1000}]</version>
            </requireJavaVersion>
            <requireOS>
              <family>unix</family>
            </requireOS>
          </rules>
        </configuration>
        <executions>
          <execution>
            <id>clean</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <phase>pre-clean</phase>
          </execution>
          <execution>
            <id>default</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <phase>validate</phase>
          </execution>
          <execution>
            <id>site</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <phase>pre-site</phase>
          </execution>
        </executions>
      </plugin>

由于是在windows编译,而原来是如下配置的:

<requireOS>
<family>unix</family>
</requireOS>

需要修改如下:

<requireOS>
     <family>windows</family>
 </requireOS>

果然可以顺利编译了。

作者 east
大数据开发 8月 17,2022

CDH6.3.2安装Atlas2.1.0遇到的坑

1、服务器默认是python3,启动atlas报错

Atlas 2.1.0使用的是python2,不支持python3,安装atlas的服务器是默认用python3(用于深度学习),而python3和python2语法差别大,修改了print的语法差异,又报别的错误。

服务器centos默认安装有python2.7了,可以指定python2来执行atlas命令。

例如像下面这样:

/usr/bin/python2.7

2.启动atlas连不上hbase或zookeeper

安装atlas后,访问atlas地址 http://cdh01:21000,看后台日志报错

java.net.ConnectException: Connection refused
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
	at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1224)
2022-08-16 18:29:03,585 WARN  - [ReadOnlyZKClient-cdh01:2181,cdh02:2181,cdh03:2181@0x120df990:] ~ 0x120df990 to cdh01:2181,cdh02:2181,cdh03:2181 failed for gete/hbaseid, code = CONNECTIONLOSS, retries = 1 (ReadOnlyZKClient$ZKTask$1:192)
2022-08-16 18:29:04,622 WARN  - [main:] ~ org.apache.solr.client.solrj.impl.Krb5HttpClientBuilder is configured without specifying system property 'java.securiogin.config' (Krb5HttpClientBuilder:142)
2022-08-16 18:29:05,105 WARN  - [main-SendThread(cdh03:2181):] ~ Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnntCnxn$SendThread:1245)

网上看原因说是连不上zookeeper,明明CDH有安装zookeeper。又查了别的atlas安装教程,觉得配置是没问题。

在zookeeper的命令行输入

./zkServer.sh status

看到输出的日志是:

JMX enabled by default
Using config: /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/zookeeper/bin/../conf/zoo.cfg
Mode: standalone

想到报错日志是cdh01:2181,cdh02:2181,cdh03:2181,而zookeeper却是单机模式,觉得也许有问题,于是在CDH的管理后台又添加多2个实例

3、访问atlas后台地址一直转圈

由于有别的端口占用21000,导致访问不了,修改atlas-application.properties的端口地址就可以,然后重新启动。

作者 east
Hive 8月 15,2022

用Sqoop 从Hive导入到mysql发生java.lang.NumberFormatException异常

用CDH自带的sqoop,把hive的数据导入到sqoop,发生java.lang.NumberFormatException异常

在Yarn查找到详细日志如下:

java.lang.NumberFormatException
	at java.math.BigDecimal.<init>(BigDecimal.java:494)
	at java.math.BigDecimal.<init>(BigDecimal.java:383)
	at java.math.BigDecimal.<init>(BigDecimal.java:806)
	at org.apache.sqoop.mapreduce.hcat.SqoopHCatExportHelper.convertStringTypes(SqoopHCatExportHelper.java:271)
	at org.apache.sqoop.mapreduce.hcat.SqoopHCatExportHelper.convertToSqoop(SqoopHCatExportHelper.java:211)
	at org.apache.sqoop.mapreduce.hcat.SqoopHCatExportHelper.convertToSqoopRecord(SqoopHCatExportHelper.java:134)
	at org.apache.sqoop.mapreduce.hcat.SqoopHCatExportMapper.map(SqoopHCatExportMapper.java:56)
	at org.apache.sqoop.mapreduce.hcat.SqoopHCatExportMapper.map(SqoopHCatExportMapper.java:35)
	at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146)
	at org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:64)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:799)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:347)
	at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:174)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1875)
	at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:168)

想到可能是定义的mysql表结构,Decimal类型转化出问题。有可能是decimal没有定义精度,尝试先改为string类型,再用sqoop导入hive到mysql中,一切正常,在mysql也顺利看到数据了。

作者 east
Hive 8月 10,2022

Oozie重复执行和Container exited with a non-zero exit code 143

写了1个比较复杂的spark任务,用shell脚本来执行。用shell脚本直接执行时一点问题都没有。但用hue配置了Oozie任务后,经常执行不到一半就中断,看到又重复执行,但没多久就中止了。

查了很久原因,后来在yarn的Oozie执行日志找到下面这个

[2022-08-04 17:05:36.981]Container killed on request. Exit code is 143
[2022-08-04 17:05:36.998]Container exited with a non-zero exit code 143. 

通过各种相关关键字在网上找原因和解决方案,后来在差不多放弃时,看到一个留言:

通过将部署模式从客户端更改为群集解决了此问题 。 我正在从oozie应用程序触发spark作业。因此,在客户端模式下,驱动程序将在oozie JVM上启动。为了避免这种情况,我将模式设置为集群。

进行修改尝试,果然顺利执行成功:

spark-submit –master yarn –deploy-mode cluster –class com.xxx.Test –jars hdfs://cdh1:8020/data/apps/jars/fastjson-1.2.51.jar,hdfs://cdh1:8020/data/apps/jars/hive-jdbc-2.1.1-cdh6.3.2-standalone.jar –conf spark.yarn.maxAppAttempts=0 –driver-memory 2g –driver-cores 1 –executor-memory 3200m –executor-cores 3 –num-executors 4 hdfs://cdh1:8020/data/apps/test.jar

作者 east
Hive 8月 9,2022

sqoop导入mysql带json字段显示不全或乱码

原来是在hive的建表结构如下:

CREATE external TABLE IF NOT EXISTS ods_test_delta(
 id string COMMENT "", 
 create_date string COMMENT "创建时间",
 jsonValue string COMMENT "带json的字段",
 update_date string COMMENT "更新时间",
 del_flag string COMMENT "删除标志"
) COMMENT "测试表"
partitioned by (dt string)
row format delimited
fields terminated by '\u0001'
lines terminated by '\n'
stored as textfile
LOCATION '/data/warehouse/warehouse/ods/ods_test_delta/';

在做ods抽取数据到dwd层时,发现带json的字段显示不全,怀疑是fields terminated影响了。后来想到的一个方法,不预先创建hive的表结构,直接用sqoop导入,发现没有显示不全或乱码。

进入hive的命令行,输入

show create table ods_test_delta
CREATE external TABLE IF NOT EXISTS ods_test_delta(
 id string COMMENT "", 
 create_date string COMMENT "创建时间",
 jsonValue string COMMENT "带json的字段",
 update_date string COMMENT "更新时间",
 del_flag string COMMENT "删除标志"
) COMMENT "测试表"
partitioned by (dt string)
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES ( 
  'field.delim'='', 
  'line.delim'='\n', 
  'serialization.format'='')
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION '/data/warehouse/warehouse/ods/ods_test_delta/';

用上面的表结构进行创建hive的表结构,经测试没有json显示不全的问题。

作者 east

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。回复”chatgpt”获取免注册可用chatgpt。回复“大数据”获取多本大数据电子书

标签

AIGC AI创作 bert chatgpt github GPT-3 gpt3 GTP-3 hive mysql O2O tensorflow UI控件 不含后台 交流 共享经济 出行 图像 地图定位 外卖 多媒体 娱乐 小程序 布局 带后台完整项目 开源项目 搜索 支付 效率 教育 日历 机器学习 深度学习 物流 用户系统 电商 画图 画布(canvas) 社交 签到 联网 读书 资讯 阅读 预订

官方QQ群

小程序开发群:74052405

大数据开发群: 952493060

近期文章

  • 详解Python当中的pip常用命令
  • AUTOSAR如何在多个供应商交付的配置中避免ARXML不兼容?
  • C++thread pool(线程池)设计应关注哪些扩展性问题?
  • 各类MCAL(Microcontroller Abstraction Layer)如何与AUTOSAR工具链解耦?
  • 如何设计AUTOSAR中的“域控制器”以支持未来扩展?
  • C++ 中避免悬挂引用的企业策略有哪些?
  • 嵌入式电机:如何在低速和高负载状态下保持FOC(Field-Oriented Control)算法的电流控制稳定?
  • C++如何在插件式架构中使用反射实现模块隔离?
  • C++如何追踪内存泄漏(valgrind/ASan等)并定位到业务代码?
  • C++大型系统中如何组织头文件和依赖树?

文章归档

  • 2025年6月
  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年1月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年7月
  • 2018年6月

分类目录

  • Android (73)
  • bug清单 (79)
  • C++ (34)
  • Fuchsia (15)
  • php (4)
  • python (43)
  • sklearn (1)
  • 云计算 (20)
  • 人工智能 (61)
    • chatgpt (21)
      • 提示词 (6)
    • Keras (1)
    • Tensorflow (3)
    • 大模型 (1)
    • 智能体 (4)
    • 深度学习 (14)
  • 储能 (44)
  • 前端 (4)
  • 大数据开发 (488)
    • CDH (6)
    • datax (4)
    • doris (30)
    • Elasticsearch (15)
    • Flink (78)
    • flume (7)
    • Hadoop (19)
    • Hbase (23)
    • Hive (40)
    • Impala (2)
    • Java (71)
    • Kafka (10)
    • neo4j (5)
    • shardingsphere (6)
    • solr (5)
    • Spark (99)
    • spring (11)
    • 数据仓库 (9)
    • 数据挖掘 (7)
    • 海豚调度器 (10)
    • 运维 (34)
      • Docker (3)
  • 小游戏代码 (1)
  • 小程序代码 (139)
    • O2O (16)
    • UI控件 (5)
    • 互联网类 (23)
    • 企业类 (6)
    • 地图定位 (9)
    • 多媒体 (6)
    • 工具类 (25)
    • 电商类 (22)
    • 社交 (7)
    • 行业软件 (7)
    • 资讯读书 (11)
  • 嵌入式 (70)
    • autosar (63)
    • RTOS (1)
    • 总线 (1)
  • 开发博客 (16)
    • Harmony (9)
  • 技术架构 (6)
  • 数据库 (32)
    • mongodb (1)
    • mysql (13)
    • pgsql (2)
    • redis (1)
    • tdengine (4)
  • 未分类 (6)
  • 程序员网赚 (20)
    • 广告联盟 (3)
    • 私域流量 (5)
    • 自媒体 (5)
  • 量化投资 (4)
  • 面试 (14)

功能

  • 登录
  • 文章RSS
  • 评论RSS
  • WordPress.org

All Rights Reserved by Gitweixin.本站收集网友上传代码, 如有侵犯版权,请发邮件联系yiyuyos@gmail.com删除.