- 博客(114)
- 收藏
- 关注
原创 spark HiveThriftServer2
1、HiveThriftServer2对于spark来说,就是一个任务。对客户端来说,是一个JDBC服务,和hive中hiveServer2服务类似。因此客户端可以通过JDBC连接访问HiveThriftServer2,执行sql语句。将hive-site.xml拷贝到spark配置文件目录下,修改hive-site.xml中hive.server2.thrift.port的值,即是HiveThr...
2019-07-25 12:06:20
1763
原创 linux 每个进程/proc/pid的详细信息
/proc/pid/cmdline 进程启动命令/proc/pid/cwd 链接到进程当前工作目录/proc/pid/environ 进程环境变量列表/proc/pid/exe 链接到进程的执行命令文件/proc/pid/fd 包含进程相关的所有的文件描述符/proc/pid/maps 与进程相关的内存映射信息/proc/pid/mem 指代进程持有的内存,不可读/proc/pid/...
2019-07-23 15:38:51
3985
原创 linux 调整ulimit数值
1、vim /etc/security/limits.conf 添加以下内容:# *表示所有用户# soft即是软限制,hard是硬限制。用户可以超过soft设置的值,但一定不能超过hard 的值。一般soft比hard小# noproc表示最大进程数,nofile 表示最大文件打开数* soft noproc 65536* hard noproc 65536* soft nofile...
2019-07-23 15:38:21
1359
原创 NodeManager健康检测机制
每个NodeManager都有健康检测机制,将检测结果通过心跳机制汇报给ResourceManager,ResourceManager会更新NodeManager状态。如果NodeManager处于Unhealthy状态,则ResourceManager不会给这个NodeManager分配任务,直到NodeManager恢复正常一、检测机制1、脚本检测2、本地目录检测3、磁盘使用率检测...
2019-07-06 14:17:11
991
原创 获取hadoop集群资源信息
根据hadoop提供的restful接口获取http://hadoop.apache.org/docs/stable/ --> YARN REST APIs --> Resource Manager1、获取每个node的信息import urllib2import jsondef check_unhealth_nodes() : url = 'http://i...
2019-07-04 22:56:26
2313
原创 hive建表插入元数据表过程
#table_name:表名#column:列名->类型#location:数据存储位置#partitionColumn:分区名->类型#field_delimit:列分隔符#is_parquet_type:是否parquetdef createTable(table_name, column, location, partitionColumn, field_delim...
2019-06-30 16:52:54
654
原创 Hive中的InputFormat、OutputFormat与SerDe
1、SerDe is a short name for “Serializer and Deserializer.”Hive uses SerDe (and !FileFormat) to read and write table rows.HDFS files –> InputFileFormat –> <key, value> –> Deserializer ...
2019-06-30 16:01:53
1477
原创 hadoop配置参数
一、各个组件jvm参数1、在hadoop-env.sh中的HADOOP_HEAPSIZE和HADOOP_CLIENT_OPTS是公共参数,不仅影响namenode/datanode,还会覆盖hive的hive-env.sh中的jvm的设置,因此建议将这两个参数注释2、设置NameNode的jvm参数,在hadoop-env.sh中设定HADOOP_NAMENODE_OPTS3、设置DataN...
2019-06-29 23:39:02
1476
原创 hive 常见问题汇总
1、hive的HiveMetaStore或者HiveServer2服务进程正常,但却不能提供相应服务原因:堆内存不足解决方案:在hive-env.sh中调整堆内存大小
2019-06-29 23:21:11
1418
原创 hive hive-env.sh配置
hive 启动metastore、hiveserver2服务等等所有服务,都是通过hadoop jar命令加上自己的hive相关的jar包名执行的。1、调整hive相关服务的-Xmx堆内存大小在hive-env.sh中export HADOOP_HEAPSIZE=2048 #单位是MB,等同于-Xmx2048m,注意要注释掉hadoop-env.sh中的HADOOP_HEAPSIZE和HA...
2019-06-29 23:17:32
4423
原创 spark异常错误总结
1、java.lang.OutOfMemoryError: GC overhead limit exceeded原因:数据量太大,内存不够解决方案:(1)增大spark.executor.memory的值,减小spark.executor.cores (2)减少输入数据量,将原来的数据量分几次任务完成,每次读取其中一部分2、ERROR An error occurred...
2019-06-21 19:38:20
5429
原创 java获取某个类属于哪个jar
import java.security.CodeSource;import java.security.ProtectionDomain;//获取StringUtils类从哪个jar加载ProtectionDomain pd = StringUtils.class.getProtectionDomain(); CodeSource cs = pd.getCodeSource();S...
2019-06-20 16:05:41
1239
原创 hadoop中Configruration
1、构造函数 Configuration():实际调用Configuration(true) Configuration(boolean loadDefaults):loadDefaults为true时,表示会加载默认的配置文件(xxx.xml)2、addDefaultResource(String name):添加默认的配置文件,在类路径下要存在该配置文件。 addRes...
2019-06-18 17:00:53
265
原创 spark sql随记
1、spark sql访问hive将hive-site.xml放入到${SPARK_HOME}/conf下如果是spark on yarn的cluster模式,由于driver是运行于哪个executor未知,因此在spark-defaults.conf中指定参数spark.yarn.dist.files xxx/hive-site.xml...
2019-06-16 20:34:17
119
原创 spark参数详解
spark的配置参数可以在多个地方配置,以executor的memory为例,有三个地方可以配置(1)spark-submit的--executor-memory选项(2)spark-defaults.conf的spark.executor.memory配置(3)spark-env.sh的SPARK_EXECUTOR_MEMORY配置优先级:spark-submit --选项 > ...
2019-06-15 14:31:31
1591
原创 java设计模式之单例模式
//饿汉式public class Singleton { private static final Singleton singleton = new Singleton(); private Singleton(){ System.out.println("Created Singleton!!!"); } public static ...
2019-06-02 11:19:49
68
原创 spark on yarn提高提交任务速度
对于spark on yarn模式,yarn上的container需要运行spark所需的jar包。在spark-defaults.conf中指定spark.yarn.archive或者spark.yarn.jars1、spark.yarn.archive 将spark主目录下jars文件夹下的jar包打包,比如spark_lib.zip 将spark_lib.zip上传到hd...
2019-05-30 19:43:38
520
原创 python logging用法
import loggingimport logging.handlers import oslogger = logging.getLogger("mylog")logfile = os.path.abspath("./log/debug.log")#日志按天保存,一天保存一个日志文件,日志文件20个fh = logging.handlers.TimedRotatingFileH...
2019-05-29 14:23:12
274
原创 /bin/bash和/bin/sh的区别
1、/bin/sh是/bin/bash的软连接,在一般的linux系统当中,使用sh调用执行脚本相当于打开了bash的POSIX标准模式,也就是说 /bin/sh 相当于 /bin/bash --posix2、/bin/sh执行过程中,若出现命令执行失败,则会停止执行;/bin/bash执行过程中,若命令执行失败,仍然会继续执行3、假设test.sh#!/bin/bashecho he...
2019-05-27 20:10:24
20763
1
原创 在shell中直接运行成功,在crontab中运行失败
/var/log/cron可以查看crontab执行了哪些定时任务解决方案:初始化定时任务所要使用的环境变量,比如source /etc/profile#!/bin/bashsource /etc/profile#定时任务...
2019-05-27 19:59:17
336
原创 Unsupported major.minor version 52.0解决方案
问题原因:jdk高版本编译的程序,在低版本的环境中运行解决方案:1、用低版本的jdk编译程序 2、升级jdk到相应版本注意:若程序的jdk版本和环境的jdk版本一致,仍然出现上述问题,则说明环境同时存在高版本和低版本的jdk,程序的运行环境仍然是指向低版本的jdkJ2SE 8 = 52,J2SE 7 = 51,J2SE 6.0 = 50,J2SE ...
2019-05-27 19:51:46
447
原创 log4j2 RollingFile用法
一、按天记录日志,日志保留7天 <RollingFile name="rollingFile" fileName="log/main.log" filePattern="log/$${date:yyyy-MM}/main-%d{yyyy-MM-dd}.log.gz"> <PatternLayout pattern="[%d{yyyy-M...
2019-05-25 18:07:10
17408
1
原创 java程序启动、停止、重启脚本
一、启动脚本start.sh#!/bin/shisExist=`ps -ef | grep MonitorAndImprove | grep -v grep | awk '{print $2}'`if [ ! -z "$isExist" ]; then echo "process already running!!! pid is "$isExist exit -1fi...
2019-05-22 17:06:51
2221
原创 Java根据cpu空闲率提高cpu利用率
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import java.util.concurre...
2019-05-22 15:54:20
2920
原创 java加载配置文件,并读取配置参数
import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.net.URL;import java.util.Properties;public class Configuration { private static Properties propertie...
2019-05-22 15:49:31
1676
原创 python 编码处理
一、python有两种字符串类型:str和unicode1、str:常用的字符集如:gb2312、gb18030/gbk、utf-8、ascii,这些都是字符的二进制(字节)编码形式2、unicode:Python 认为 16 位的 unicode 才是字符的唯一内码3、encode:从unicode转换成二进制编码,即从unicode转换成str4、decode:从二进制编码转换成uni...
2019-05-19 10:05:11
338
原创 netty入门使用
public class HttpServer { public void start(int port) throws Exception { EventLoopGroup bossGroup = new NioEventLoopGroup(1); int availProcessors = Runtime.getRuntime().availa...
2019-04-27 14:47:56
215
原创 Spark History Server配置
1、spark-defaults.conf:spark.eventLog开头的配置spark.eventLog.enabled truespark.eventLog.compress truespark.eventLog.dir hdfs://ip:port/log/或者file:///tmp/spark-events2、spar...
2019-04-15 12:20:41
143
原创 linux编辑定时任务
1、crontab -l 显示当前用户定时任务2、crontab -e 编辑当前用户定时任务3、crontab服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次 /etc/crontab利用sed添加定时任务sed "\$a\\#presto health check\\n*/1 * * * * cd /data/presto-server-0.213/...
2019-04-11 18:36:55
3390
原创 linux设置动态库或者静态库搜索路径
方式一、将路径添加到/etc/ld.so.conf中,执行/sbin/ldconfig命令以更新/etc/ld.so.cache文件方式二、设置环境变量:在/etc/profile中添加export LD_LIBRARY_PATH=xxx:$LD_LIBRARY_PATH ,然后执行source /etc/profile...
2019-04-11 15:12:57
447
原创 makefile详解
一、参数$@:代表目标文件(target)$^:代表所有的依赖文件(components)$<:代表第一个依赖文件(components中最左边的那个)。= 是最基本的赋值:= 是覆盖之前的值?= 是如果没有被赋值过就赋予等号后面的值+= 是添加等号后面的值二、"="与":="区别1、"="make会将整个makefile展开后,再决定变量的值。也就是说,变...
2019-04-05 12:44:22
179
原创 g++ 生成静态库和动态库
一、参数-I (大写i)编译程序按照-I指定的路进去搜索头文件。-I/home/include/表示将-I/home/include/目录作为第一个寻找头文件的目录,寻找的顺序是:/home/include/ -->/usr/include-->/usr/local/include-L(大写l)后跟路径,表示链接库的路径-L/lib/表示到/lib/目录下找库文件...
2019-04-05 12:42:12
3334
原创 log4j2与slf4j配合使用
一、在pom.xml文件中添加依赖<!--log4j2依赖包--><dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.6.2<...
2019-03-25 20:27:29
1186
原创 log4j和slf4j配合使用
一、在pom.xml文件中添加依赖<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.2</version> </depende...
2019-03-25 20:12:03
301
原创 java JVM详解
一、栈存放临时变量、参数和中间结果二、方法区要加载的类信息、静态变量、常量等等,使用permanent generation存放方法区三、堆有三部分组成:(1)young generation (2)old generation (3)permanent generation1、young generation有三部分组成:eden space 、from space 、to spa...
2019-03-22 17:04:14
371
原创 Java异常处理
一、异常处理准则1、需要处理异常时才去捕获异常,否则在方法签名处声明抛出该异常即可2、不要打印异常日志同时将其抛出,因为会导致异常信息重复打印3、将原异常封装成新异常时,不要丢弃原异常的信息,构成异常链4、对可恢复异常使用编译时异常,对编程错误使用运行时异常5、避免不必要的编译时异常,如果调用者即使合理的使用API也不能避免异常的发生,并且调用者可以对捕获的异常做出有意义的处理,才使用编...
2019-03-21 19:49:04
156
原创 java HttpClient和HttpResponse
HttpClient调用execute方法,实际是InternalHttpClient调用其父类CloseableHttpClient的execute方法,进而调用InternalHttpClient的doExecute方法。 返回的HttpResponse实际是HttpResponseProxy,通过getEntity方法返回的是HttpEntity,实际是ResponseEn...
2019-03-17 16:06:41
2655
原创 log4j加载配置文件原理
public class LogManager { static public final String DEFAULT_CONFIGURATION_FILE = "log4j.properties"; static final String DEFAULT_XML_CONFIGURATION_FILE = "log4j.xml"; stati...
2019-03-17 12:43:40
2332
原创 Java线程池异常处理原理
ExecutorService exec = Executors.newFixedThreadPool(8);以上述代码为例,得到ExecutorService实例后,我们可以通过两种方式提交任务(Runnable):exec.execute(runnable) 和 exec.submit(runnable)exec.submit(runnable) 实际是调用AbstractExe...
2019-02-20 15:34:00
720
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅