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

程序员怎样用网络赚钱

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

  • 首页   /  
  • 作者: east
  • ( 页面48 )
程序员网赚 1月 14,2023

程序员怎样用网络赚钱

为一名程序员,你有许多方法可以利用网络赚钱。以下是一些选择:

  • 开发软件:你可以开发自己的软件或应用程序,然后通过在应用商店或者网站上销售它们赚钱。
  • 工作为远程员工:你可以在网上搜索远程工作机会,或者通过网络平台(如Upwork、Freelancer等)找到客户。你可以通过在线编程、网站开发、网络安全等领域工作赚钱。
  • 开发网站:你可以开发网站,然后通过广告收入、商品销售等方式赚钱。
  • 进行在线培训:如果你擅长某个领域的知识或技能,你可以考虑在线培训。你可以通过视频教程、博客文章、在线课程等方式提供培训。
  • 开展在线服务:你可以通过在线服务赚钱。例如,你可以提供在线编程帮助、网站优化服务、在线咨询服务等。
  • 开发游戏:如果你喜欢游戏开发,你可以开发自己的游戏,然后通过在游戏平台上销售或者广告收入赚钱。
作者 east
Spark 1月 14,2023

spark sql如何提升性能

在使用 Spark SQL 时,有几种常见的方法可以提升性能:

  • 使用适当的数据结构:Spark SQL 支持多种数据结构,例如 Parquet、Avro、ORC 等。使用适当的数据结构可以提高查询速度和减少存储空间。
  • 分区:将数据按照一定规则分区,可以提升性能。
  • 缓存数据:使用 Spark SQL 的缓存功能可以将数据集的副本存储在内存中,从而提升性能。
  • 使用常量:对于经常使用的常量值,使用常量代替查询中的变量可以提升性能。
  • 使用索引:对大型数据集使用索引可以提升性能。
  • 优化查询计划:使用 EXPLAIN 命令可以查看查询计划,并使用优化器选项对查询进行优化。
  • 并行计算:调整 Spark 的并行度,可以提升性能。
  • 适当使用 UDF:使用 UDF 可以扩展 Spark SQL 的功能,但是过多使用 UDF 会导致性能下降。
作者 east
运维 1月 9,2023

sqlserver 自定义函数或存储过程转 postgresql

nvarchar要修改为varchar

postgresql的body需要$$ …. $$包含起来

postgresql 只需要一对BEGIN END,条件和while循环不需要BEGIN和END

变量需要去掉@, @b -> b;

没有isnull 用 coalesce

字符串拼接用 ||

字符串类型和int类型不会自动转换(用作条件时)

没有charindex,用strpos (原字符串,需要查找的)

没有getdate() 用 LOCALTIMESTAMP(0) 代替 参数指秒以下取几位

SET @len=@len+1要修改为 len = len + 1

break修改为exit

CHAR(10) 类型要改为CHR(10)

postgresql的条件和循环 不需要BEGIN和END 嵌套, 条件和循环的语法也和sqlserver有所不同:

 
1、条件
IF ... THEN ... END IF
IF ... THEN ... ELSE ... END IF
IF ... THEN ... ELSIF ... THEN ... ELSE ... END IF

CASE ... WHEN ... THEN ... ELSE ... END CASE
CASE WHEN ... THEN ... ELSE ... END CASE
 
2、循环
LOOP
[<>]
LOOP
...
IF ... THEN
CONTINUE [label] [WHEN boolean-expression];
END IF;
EXIT [label] [WHEN boolean-expression];
END LOOP [label];


WHILE
[<>]
WHILE boolean-expression LOOP
...
END LOOP [label];


FOR
[<>]
FOR name IN [REVERSE] expression .. expression [BY expression] LOOP
...
END LOOP [label];
作者 east
运维 1月 7,2023

windows安装使用PostgreSQL

最近一个项目要用到pgsql的自定义函数,在windows上安装一个。

下载的是12的版本,
https://get.enterprisedb.com/postgresql/postgresql-12.13-1-windows-x64.exe

刚开始安装后出现问题,看到是杀毒软件影响到了。关闭杀毒软件,重新卸载安装。

为了使用方便,把pg库的bin目录添加到环境变量。

由于是开发,为了使用方便,

修改pg库data目录的pg_hba.conf,把md5修改为trust

host all all 127.0.0.1/32 trust

host all all ::1/128 trust

host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust

启动服务器:

在命令行启动

pg_ctl.exe reload -N “postgres_12” -D “D:\Program Files\PostgreSQL\12\data”

psql -h 127.0.0.1 -U postgres

作者 east
shardingsphere, 大数据开发 11月 6,2022

DataX、Sqoop抽取Sharding-Proxy数据遇到问题和解决方案

公司有几十T的数据库数据,采用sharding-proxy来分库分表存取。采用sharding-proxy,可以让客户端像普通单库一样调用,但用datax、sqoop抽取数据却发现那么简单。

原先是用 sharding-proxy 4.1.0 版本,springboot采用druid来读取数据或用navicat高版本来读没问题,所以一直没有升级。

不幸的是,用sqoop 1.4.7来抽取数据时,发生报错“Failed to switch schema, please terminate current transaction”。网上相关的资料很少,后来查到是 sharding-proxy 报的错,在github讨论区有说这个问题,
https://github.com/apache/shardingsphere/issues/5531

刚开始以为是sqoop读取表结构时遇到的问题,改用dataX来抽取数据,还是同样的问题。后来升级 sharding-proxy 到最新版本,终于没报这个问题,但用sqoop抽取时,由于sqoop 1.4.7要先读取mysql的表结构,但是获取
sharding-proxy 的表结构发生错误,这个可以通过修改sqoop代码或别的方式来避开这个问题。

但DataX抽取数据时没这个问题,能很顺利抽取到
sharding-proxy 上面的数据。

作者 east
Hive 11月 3,2022

解决CDH 6.3.2 Hue访问Hive自定义用户密码验证

在前面文章介绍了
CDH 6.3.2 Hive自定义用户名密码验证 ,如果hue配置不做更改的话,在hue中看不到hive的数据库和执行不了命令,hue会报“thrift TSocket read 0 bytes” 、“
 Bad status: 3 (Error validating the login) (code THRIFTTRANSPORT) ”等错误。

解决方法:

(1)修改hue的python代码

cd /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hue/apps/beeswax/src/beeswax/server
vi hive_server2_lib.py
增加红框中的’CUSTOM’

(2)修改hue的配置
在hue的配置页面,搜索”hue_safety_valve” ,找到hue_safety_valve.ini
添加下面代码:(
auth_username 是在hive的hive-site.xml中配置的,不同的是hive-site的
auth_password 是工具处理后,hue这里的配置需要处理前的原始密码)

[desktop]

auth_username=hdfs
auth_password=未加密前的密码



然后重启hue

作者 east
Hive 11月 3,2022

CDH 6.3.2 Hive自定义用户名密码验证

为了增强hive的安全性,可以自定义用户名密码验证。

首先写成相应的工具类

import javax.security.sasl.AuthenticationException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.conf.HiveConf;
import org.slf4j.Logger;
public class CustomPasswdAuthenticator implements org.apache.hive.service.auth.PasswdAuthenticationProvider{
    private Logger LOG = org.slf4j.LoggerFactory.getLogger(CustomPasswdAuthenticator.class);
    private static final String HIVE_JDBC_PASSWD_AUTH_PREFIX="hive.jdbc_passwd.auth.%s";
    private Configuration conf=null;
    @Override
    public void Authenticate(String userName, String passwd)  
              throws AuthenticationException {  
            LOG.info("user: "+userName+" try login.");  
            String passwdConf = getConf().get(String.format(HIVE_JDBC_PASSWD_AUTH_PREFIX, userName));  
            if(passwdConf==null){  
              String message = "user's ACL configration is not found. user:"+userName;  
              LOG.info(message);  
              throw new AuthenticationException(message);  
            }   
            if(!passwd.equals(passwdConf)){  
              String message = "user name and password is mismatch. user:"+userName;  
              throw new AuthenticationException(message);  
            }  
          }  
          public Configuration getConf() {  
            if(conf==null){  
              this.conf=new Configuration(new HiveConf());  
            }  
            return conf;  
          }  
          public void setConf(Configuration conf) {  
            this.conf=conf;  
          }
}

把这个工具类打包成jar包放在hive根目录的lib目录下,
/opt/cloudera/parcels/CDH/lib/hive/lib/hiveAuth.jar


HDFS修改core-site.xml配置

搜索 core-site.xml

core-site.xml 的群集范围高级配置代码段(安全阀)

<property>   
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value> </property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>





Hive修改hive-site.xml配置

<property>
<name>hive.security.authorization.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.security.authorization.createtable.owner.grants</name>
<value>ALL</value>
</property>
<property>
<name>hive.security.authorization.task.factory</name>
<value>org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactoryImpl</value>
</property>
<property>
<name>hive.users.in.admin.role</name>
<value>hdfs</value>
</property>
<property>
<name>hive.server2.authentication</name>
<value>CUSTOM</value>
</property>
<property>
<name>hive.server2.custom.authentication.class</name>
<value>org.apache.hadoop.hive.contrib.auth.CustomPasswdAuthenticator </value>
</property>

<property>
<name>hive.jdbc_passwd.auth.hdfs</name>
<value>2ad4fed18d94500baa7dcf70fd7b1ecf</value>
</property>

重启hadoop和hive

作者 east
Spark 10月 9,2022

RDD或UDF获取不到driver端传递的变量

RDD要获取Driver端的Map、List,或者Spark UDF 需要加载外部资源(如配置参数、白名单)初始化它们的实例。 Spark UDF的输入参数必须是数据列column,在UDF中进行如Redis查询、白/黑名单过滤前,若它们都能被序列化,从Driver端初始化+broadcast的方式可以完成构建。直接传递变量时,在spark用local方式时正常,用yarn-cluster时出现问题。

例如像下面这样:

class MyUDF implements UDF1<Long, String> {
        private Map<Long, String> broadCastMap;
        public MyUDF(Broadcast<Map<Long, String>> broadCastMap) {
           this.broadCastMap = broadCastMap.value();
        }
        public String call(Long id) {
            return id +" -> " + broadCastMap.getOrDefault(id, "No mapping");
        }
    }
 Map<Long, String> map = new HashMap<>();
    map.put(1L, "b");
    map.put(2L, "c");
    Broadcast<Map&<Long, String>> broadCastMap = new JavaSparkContext(spark.sparkContext()).broadcast(map);

    UserDefinedFunction myUdf = udf(new MyUDF(broadCastMap), DataTypes.StringType);

    spark.sqlContext().udf().register("myUdf", myUdf);

如果传递的是类,必须 实现了serializable接口

  1. 反序列化时serializable版本号不一致时会导致不能反序列化。
  2. 子类中实现了serializable接口,父类中没有实现,父类中的变量不能被序列化,序列化后父类中的变量会得到null。 注意:父类实现serializable接口,子类没有实现serializable接口时,子类可以正常序列化
  3. 被关键字transient修饰的变量不能被序列化。
  4. 静态变量不能被序列化,属于类,不属于方法和对象,所以不能被序列化。

例如像下面这样:

import java.io.Serializable;
import java.util.*;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class AtKwdBo implements Serializable {
    private Set<String> keywords;
    private Set<String> stopwords;
    /**
     * just for test
     * @return
     */
    public static List<AtKwdBo> generateKeyWord() {
        // Keyword
        List<AtKwdBo> atKwdBos = new ArrayList<>();
        AtKwdBo atKwdBo = new AtKwdBo();
        Set<String> keywords = new HashSet<>();
        keywords.add("小米手机");
        keywords.add("雷军");
        keywords.add("小米10周年");
        atKwdBo.setKeywords(keywords);
        Set<String> stopwords = new HashSet<>();
        stopwords.add("华为手机");
        atKwdBo.setStopwords(stopwords);
        atKwdBos.add(atKwdBo);

        return atKwdBos;
    }
}
作者 east
Spark 10月 9,2022

xml中文编码不同导致服务器跑的结果和本地不同

最近用spark sql做数仓开发时,遇到一个诡异的问题,在本地电脑运行时正常,用maven打包在服务器跑时就出问题。

后来检查代码时,发现sql所在的xml是用GBK编码,xml中有传递中文参数。而maven打包是用UTF-8打包,这样会造成中文乱码。

在开发时有个经验之谈:能少用中文就少用中文,用中文要注意各端和每个端各个地方统一中文编码,最好都用UTF-8

作者 east
大数据开发 9月 21,2022

解决sqoop从mysql导入到hive时区相差13小时

在CDH6.3.2上,使用sqoop从mysql导入数据到hive,发现时间字段,时间相差13个小时。刚开始有点懵,很多时区是相差8个小时。但觉得应该是同类问题。

可以在Sqoop连接的时候设置时区信息:

jdbc:mysql://$DB_CNX?serverTimezone=Asia/Shanghai

更完整参考如下

sqoop import –connect “jdbc:mysql://cdh2:3306/test_db?tinyInt1isBit=false&serverTimezone=Asia/Shanghai” –username root –password root –table t_test –hive-drop-import-delims -m 1 –hive-import –hive-table entersv.ods_t_test –hive-partition-key dt –hive-partition-value ‘2022-09-21’ –input-fields-terminated-by ‘,’ –input-lines-terminated-by ‘\n’

遇见时间类型转换问题时要小心,保守最好是string,简单的比较大小不会影响后续计算。

造成相差13个小时,在于对CST时区解析混乱造成。
JDBC 误认为会话时区在CST 美国中部时间 UTC-5,那么JDBC会把数据中的 Timestamp 转为 UTC-5,MySQL 认为会话时区在 UTC+8,将 时间又按UTC+8进行了转换。

作者 east
大数据开发, 运维 9月 14,2022

解决CDH监控日志磁盘空间不足的问题

cdh的日志默认在/var/lib,由于根分区默认空间大小有限,数据盘是挂载在/data分区。在运行一段时间后,根分区磁盘空间严重不足。

停止服务,想改那个停那个,然后将老的数据文件mv到新的目录,我这里停了host monitor 和 service monitor

mkdir /data/varlib

mv /var/lib/cloudera-host-monitor  /data/varlib/

mv /var/lib/cloudera-service-monitor /data/varlib/

点击配置,更改Host Monitor和Service Monitor的目录

重新启动服务就可以看到没报磁盘空间不足的问题了。

作者 east
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

上一 1 … 47 48 49 … 93 下一个

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

标签

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

官方QQ群

小程序开发群:74052405

大数据开发群: 952493060

近期文章

  • spark内存溢出怎样区分是软件还是代码原因
  • MQTT完全解析和实践
  • 解决运行Selenium报错:self.driver = webdriver.Chrome(service=service) TypeError: __init__() got an unexpected keyword argument ‘service’
  • python 3.6使用mysql-connector-python报错:SyntaxError: future feature annotations is not defined
  • 详解Python当中的pip常用命令
  • AUTOSAR如何在多个供应商交付的配置中避免ARXML不兼容?
  • C++thread pool(线程池)设计应关注哪些扩展性问题?
  • 各类MCAL(Microcontroller Abstraction Layer)如何与AUTOSAR工具链解耦?
  • 如何设计AUTOSAR中的“域控制器”以支持未来扩展?
  • C++ 中避免悬挂引用的企业策略有哪些?

文章归档

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

功能

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

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