run jar
主类必须是在cp第一个包中,支持*
匹配
更新jar包内class文件
jar uvf hadoop-common-2.8.3-lg.jar org/apache/hadoop/fs/FileUtil.class
jar: 包是Java中所特有一种压缩文档
-u 添加文件到jar包中
-v 生成详细的报造,并输出至标准设备
-f 指定jar包的文件名
[jar文件] jar包的路径
[欲替换的class(注意,需同样的目录)] class文件目录,必须与jar中目录一样
IllegalArgumentException at java.nio.CharBuffer.allocate(CharBuffer.java:334)
原因: 单行数据过大
问题复现:
1 2 3 4 5 6
| // spark-shell + 本地,触发上述报错,获得文件和行号 new org.apache.hadoop.io.Text(x) // 定位数据 less +4828553 -N 2021090100_nda_0.txt // 过滤数据 awk '{ if (length($0)<10000) print $0}' 2021090100_nda_0.txt > filter_nda
|
欧元分隔符输出
目标:输出GB2312编码的欧元符€
方案:需要使用byte方式写出:(不能是char、string)
1 2 3 4 5 6 7 8
| FileOutputStream fos = new FileOutputStream(f); byte[] bb = new byte[1]; bb[0] = (byte)0x80; fos.write(bb); fos.write("123abc中文".getBytes("gb2312")); fos.flush(); fos.close();
|
https://ask.csdn.net/questions/743012
Python:以wb模式打开文件
临时代码测试类
1 2 3 4 5 6
| package test;
javac test/*.java java -cp ./ test.T
java -cp ./*:/data/soft/flink/lib/* rocketMQ.PhotoLiveJob
|
1 2
| javac DbInfo.java java -cp mysql-connector-java-5.1.47.jar:. DbInfo
|
jshell连接DB
还需要加载jar包:
- jshell –class-path myOwnClassPath
- /env –class-path /data/soft/zeppelin/local-repo/jdbc/hive-jdbc-2.3.10-standalone.jar
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
| import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.DatabaseMetaData;
public class DBConnectionDemo { public static void main(String[] args) { String url = "jdbc:hive://localhost:3306/mydatabase"; String u = "root"; String pw = "password";
try { Class.forName("org.apache.hive.jdbc.HiveDriver"); Connection connection = DriverManager.getConnection(url, u, pw); DatabaseMetaData meta = connection.getMetaData(); meta.getDriverName(); connection.close(); } catch (SQLException e) { e.printStackTrace(); } } }
|