Java Expert....Java/Open Source Addict

Redes Sociales

twitterlinkedinrss feedemail youtube

martes, 14 de diciembre de 2021

Dividir archivo grande en múltiples archivos según número de líneas en Linux o Mac


 Hola amigos, amigas en esta oportunidad les quiero compartir la forma de dividir un archivo grande en múltiples archivos según un número de líneas establecidas. Lo cual me fue de mucha utilidad, ya que necesito procesar un archivo de 8.4 Gigabytes, permítanme indicarles como hacerlo.


1.- Abrir un terminal y ubicarse en el directorio donde se encuentra su archivo.

2.- Ejecutar el comando 

split -a <numero_caracteres_sufijo> -l <numero_lineas> <nombre_archivo_con_extension> <nombre_archivo_a_generar_sin_extension>

Donde:

  • <numero_caracteres_sufijo>.- Es el número de caracteres utilizado junto al nombre que se va a generar cuando se haga la división; es decir, en este caso coloque dos y se utilizarán dos letras comenzado desde aa.
  • <numero_lineas>.- Es el número de líneas utilizando para realizar la división del archivo, en este caso se generarán archivos cada 1 millón de líneas (1000000).
  • <nombre_archivo_con_extension>.- Es el nombre del archivo original con extensión, el cual se va a proceder a dividir según el número de líneas configurados con el parámetro -l
  • <nombre_archivo_a_generar_sin_extension>.- Es el nombre del archivo parcial que se generará según el número de líneas establecida, el cual será concatenado con los caracteres comenzando desde la secuencia aa hasta que se termine el número de líneas del archivo principal.
3.- Luego de ejecutar el comando se crearan los archivos según la cantidad de líneas establecido, en este caso se crearon 26 archivos, cada uno de 1 millón de líneas.


4.- Finalmente si se requiere cambiar de extensión, se puede ejecutar el comando:

for f in <nombre_archivo_a_generar_sin_extension>_*; do 

    mv -- "$f" "${f%}.csv"     

done





viernes, 24 de septiembre de 2021

"Stale postmaster.pid file" en Postgres.app


Estimados amig@s, en esta oportunidad voy a mostrarles como corregir el error "Stale postmaster.pid file" en Postgres, el cual me apareció cuando mi máquina se reinicio inesperadamente por un problema de memoria al probar un tema de bigdata. Antes de comenzar es importante mencionar que utilizo la aplicación Postgres.app para Mac, pero el problema se corrigue de manera similar en otros sistemas operativos. El error que  me apareció es el siguiente.

Para poder corregir se tiene que realizar lo siguiente:

1.- Ubicar el archivo de configuración postmaster.pid, para lo cual una vez abierto la aplicación Postgress.app, selecionamos la opción Server Settings -> Show


2.- Diriguirse a la ubicación y proceder a eliminar el archivo.


3. Finalmente iniciar Postgres, para verificar que todo este correcto, presionando Start



martes, 14 de septiembre de 2021

Configurar Mod_JK en Fedora 33


Estimados amig@s, en este post vamos a revisar como configurar el módulo mod_jk en Apache en Fedora 33, lo cual se utilizará para configurar el balanceo de carga en Wildfly( esto no depende si está configurado en modo standalone, domain o clúster), empecemos.


1. Generalmente tanto en MacOS como en Linux viene instalado por defecto el servidor web Apache, para verificar se tiene que ejecutar el comando apachectl status. En el caso de que este parado el servicio, se puede iniciarlo con el comando apachectl start


2.- Instalar las siguientes dependencias: httpd-devel, gcc libtool, las cuales son necesarias para instalar el mod_jk, para lo cual se debe ejecutar el siguiente comando dnf install httpd-devel gcc libtool En mi caso ya tengo instalada, por eso cuando se ejecuta el comando aparece los siguientes mensajes.


3.- Posterior a esto, se tiene que descargar el conector mod_jk en formato comprimido tar.gz, descomprimirlo y ubicarse dentro de directorio en la carpeta  native

 

4.- Una vez ubicado en el directorio native, se tiene que configurar el módulo. Para lo cual se utilizará la herramienta de Apache apxs(APache eXtension Tool) con el siguiente comando: ./configure -with-apxs=/usr/bin/apxs

 


5.- Posterior a esto se debe construir el módulo mod_jk.so utilizando el comando make. Lo cual creará un directorio apache-2.0 y dentro del mismo el archivo mod.jk.so, que se deberá copiar al directorio /etc/httpd/modules  del servidor web apache.


 
  
 


6.- Cargar el módulo mod_jk.so en el servidor web Apache, para lo cual se debe crear un archivo mod_jk.conf en el directorio /etc/httpd/conf.modules.d, directorio destinado para la configuración de los módulos. Este archivo contendrá la ubicación del módulo, la ubicación del archivo workers(nodos a balancear), ubicación del log, esquema de balanceo entre otros temas.


7.- Configurar los workers o nodos para realizar el balanceo, lo cual se lo realiza en el archivo  /etc/httpd/conf/workers.properties de acuerdo al path que se defnió en el archivo anterior. En este archivo lo que se tiene que cambiar para su configuración son la IP de cada worker.



8.- Antes de finalizar modificar el archivo de configuración  /etc/httpd/conf/httpd.conf, para incluir el mapeo del nombre del servidor a la ip loopback.


9.- A continuación se tiene que configurar SELinux en modo permisive en el archivo /etc/SELinux/config, reiniciar la compu y reiniciar el servicio de Apache con el comando apachectl restart.

 



10.- Finalmente establecer la regla en el firewall para que se pueda llamar al balanceador desde otra máquina. Para lo cual se tiene que habilitar el servicio http en la zona por defecto a través del siguiente comando firewall-cmd --zone=FedoraWorkstation --permanent --add-service=http
.




Espero que el post les sea de ayuda.

martes, 7 de septiembre de 2021

Configurar Multicast en MacOS


Estimados amigos,

En este post, voy a mostrarles como configurar Multicast en Mac, lo cual también aplica para Linux, lo cual es muy importante para realizar pruebas de tráfico. En mi caso lo estoy utilizando para testear una configuración de Cluster en Wildfly, sin más empecemos.


Qué es Multicast?.-  Un multicast es un protocolo por la cual la data es transmitida simultáneamente a todos los hosts que son parte de un grupo multicast, se puede hacer la analogía con un canal de radio en donde los que sintonizan una frecuencia en particular reciben la información
 
Configuración.- Por defecto multicast no está habilitado en Mac, para configuarlo y habilitarlo se debe realizar lo siguiente:

1.- Abril un terminal y ejecutar el comando ifconfig -ael cual permitirá revisar si la interface de red soporta multicast.
 
Como podemos apreciar en la última línea aparece la palabra MULTICAST, lo cual significa que la  interfaz de red en0 soporta aquello.

2.-  Revisar si la ruta multicast esta configurada, para lo cual se debe ejecutar el siguiente comando netstat -nr
 
 
Si está configurado en la primera tabla (Routing Tables) aparecerá una IP en el rango de 224.0.0.0 a 239.255.255.255. En el caso de que no esté configurado pasar al paso 3

3.-  Para añadir una dirección IP multicast ejecutar el siguiente comando sudo route -nv add -net 228.0.0.4 -interface en0
 

 
4.-  Verificar si la dirección IP multicast ha sido añadida con el comando netstat -nr
 

 5.-  Finalmente para verficar que la configuración este funcionando correctamente y que la máquina esté habilitado para multicast, se debe ejecutar los comandos   sudo tcpdump -ni en0 host 228.0.0.4 y ping -t 1 -c 2 228.0.0.4 en terminales diferentes.
 



 

lunes, 16 de agosto de 2021

Problems to Install Gradle on Mac using brew


Dear friends, 

In this post, I want to share how to fix the error about Gradle installation using brew. In my case when I  try to install Gradle, I have the following errors:


In the picture above, the suggestion was executing the commands related to git. Because as of Oct 2020 Homebrew no longer creates shallow clones and updates them. However, when I try to execute them, I had the following error:

The problem described is because for some reason the Xcode tools are missing. To continue to fix the problem about Gradle installation, you must do the following:

1. First, execute the xcode-select --install command. The pictures below show the installation process.



 

2.- Once time, these tools had finished. The next step is to execute the commands:

git -C "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core" fetch --unshallow

git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow

 

3.- Later, you must start the Gradle installation, to do this you must execute the brew install gradle command.

 

4.- Finally, execute the gradle -v command, to verify the installation.



viernes, 13 de agosto de 2021

Groovy Problem in Jasper Studio 6.13


Dear Friends,


In this post, I show how to fix the error related to Groovy in JasperStudio 6.13. Let me start.
I have a JEE project that has some reports that were designed using Ireport 5.0 with JasperReport 5.3. The problem was in updating the libraries and tools versions. Specifically to JasperReport 6.17 and JasperStudio 6.13, when I loaded the reports and try to compile them, I was the following error:


To fix it, we need to do this following:

 Change the Language

1.- Open the report in JasperStudio, place it in the Design mode and select the report in the outline view.

 

2. -  Select right-click and select the Show Properties view, in this view, you must change the language value from Groovy to Java and save it.


3. -  Finally,  compile the report.

martes, 3 de agosto de 2021

How to resolve errors related with JAXBException


Hello friends, when you have these errors related to JAXBException and you are using java version 9,10 o greater.



You can download the libraries (jars) o use Java 8. Because the JAXB API classes only are available in Java 6/7/8 but no in future Java versions. Since Java 9 they are part of the JEE API.

If you use Linux, you should make sure you use the correct version of the java. For this, you must select the version with command alternatives --config java


Later to select the version, you can use the java -version command, to verify the java version.

lunes, 2 de agosto de 2021

Install PostgreSQL on Fedora 33


 Dear friends,

In this post, I will show how to install PosgreSQL 12 on Fedora 33. To do this, we need the following.


1. Open a terminal and login with sudo user.

2. Install the postgres repository (pgdg-fedora-repo ) with the command

dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/F-33-x86_64/pgdg-fedora-repo-latest.noarch.rpm
 
install pgdg-fedora-repo  repository

3. Install the postgreSQL server, with the following command.

dnf install -y postgresql13-server
 

 

4. Then, we need to initialize the database and enable automatic-start, with the following commands.

/usr/pgsql-13/bin/postgresql-13-setup initdb
systemctl enable postgresql-13
systemctl start postgresql-13

5. Set the password. To do this, we need to log in with postgres user and execute the following command:

 psql -c "alter user postgres with password '<your_password>'"
 

6. Finally, login to database using the postgres user with the password created recently. You can use PGAdmin o Dbeaver