Configurando hadoop e hilo totalmente distribuidos, ¿por qué no puedo iniciar nodemanager en el esclavo?
Abra /etc/hbase/conf/hbase-env.sh y busque el siguiente contenido:
#Habilite la depuración JDWP remota del proceso principal de HBase. Para desarrolladores principales
# export HBASE_master_OPTS = "$HBASE_master_OPTS-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8070 "
# export HBASE_RegionServer_OPTS = " $HBASE_RegionServer_OPTS-Xdebug-Xrunjdwp:transport=dt_socket, server=y, suspend=n, dirección=8071 "
p>
# export HBASE_thrift_OPTS = "$HBASE_thrift_OPTS-Xdebug-Xrunjdwp:transport=dt_socket ,servidor=y,suspend=n,dirección=8072"
# export HBASE _ ZOOKEEPER _ OPTS = "$ HBASE _ ZOOKEEPER _ OPTS-Xdebug-Xrunjdwp:transport = dt_socket, servidor=y, suspender= n, dirección=8073 "
Si desea llamar al proceso maestro de hbase de forma remota, elimine los comentarios sobre HBASE_MASTER_OPTS, etc. Tenga en cuenta que estoy usando hbase en cdh-4.3.0.
Configurar la depuración remota de Hive
Detenga el proceso de Hive-server2 y luego use el siguiente comando para iniciar Hive-server2.
hive -service hiveserver -debug
El proceso escuchará en el puerto 8000 las conexiones en espera de depuración. Si desea cambiar el puerto de escucha, puede modificar el archivo de configuración: $ {hive _ home} bin/ext/debug.sh.
Si Hadoop es superior a 0.23, al iniciar Cli en modo de depuración se producirá un error:
Error: no se puede cargar este agente JVM TI dos veces, verifique si hay opciones de jdwp duplicadas. .
Abre ${Hadoop_HOME}/bin/Hadoop y comenta el siguiente código.
#Respete siempre HADOOP_OPTS y HADOOP_CLIENT_OPTS
HADOOP_OPTS="$HADOOP_OPTS$HADOOP_CLIENTE_OPTS"
Configuración de la depuración remota de YARN
p>
Agregue parámetros de depuración en el siguiente código:
if[" $ COMMAND " = " class path "];
class path = ` cyg path-p-w " $ class path " ` 0
El barco no corre con los gastos de carga
echo $CLASSPATH
Exportar
elif[" $ COMMAND " = " RM admin "]; luego
CLASS = ' org cliente Hadoop . /p>
YARN _ OPTS = " $ YARN _ OPTS $ YARN _ CLIENT _ OPTS "
elif[" $ COMMAND " = " aplicación "] entonces
clase; = " org " . Apache . hilo cliente . CLI . $ COMMAND " = " nodo "]; luego
class = " org " . Apache . Hadoop . Yarn . Client . CLI . Node CLI
YARN _ OPTS = " $ YARN _ OPTS $ YARN _ CLIENT _ OPTS "
elif[" $ COMMAND " = " administrador de recursos "]; entonces
class path = $ { class path }:$ YARN _ CONF _ directorio/rm-config /log4j.properties
CLASS = 'org.Apache.servidor de hilo.'
YARN_OPTS="$YARN_. OPTS $ YARN _ administrador de recursos _ OPTS "
if[" $ YARN _ administrador de recursos _ tamaño del montón "! = "" ];Entonces
JAVA _ HEAP _ MAX = "-Xmx " " $ YARN _ administrador de recursos _ tamaño HEAP " " m "
El barco no soporta la carga costos
elif[" $ COMMAND " = " administrador de nodos "] entonces
class path = $ { class path }:$ YARN _ CONF _ directorio/nm-config/log4j .propiedades
CLASS = 'servidor org.hadoop.
. administrador de nodos '
YARN _ OPTS = " $ YARN _ OPTS-servidor $ YARN _ administrador de nodos _ OPTS "
if [ "$YARN_NODEMANAGER_HEAPSIZE "! = "" ];Entonces
JAVA _ HEAP _ MAX = "-Xmx " " $ YARN _ administrador de nodos _ tamaño HEAP " " m "
El barco no soporta la carga cuesta
elif[" $ COMMAND " = " servidor proxy "]; luego
CLASS = ' servidor proxy web Apache . p >
YARN _ OPTS = " $ YARN _ OPTS $ YARN _ servidor proxy _ OPTS "
if [ "$YARN_PROXYSERVER_HEAPSIZE "! = "" ];Entonces
JAVA _ HEAP _ MAX = "-Xmx " " $ YARN _ servidor proxy _ tamaño HEAP " " m "
El barco no soporta la carga costos
Por ejemplo, si desea depurar el código del administrador de recursos, agregue el siguiente código en la rama ELIF["$command" = "resource manager"]:
YARN_resourcemanager_OPTS = " $ YARN _ administrador de recursos _ OPTS-Xdebug-Xrunjdwp:transport = dt _ socket, server=y, suspend=n, dirección=6001 "
Consulte lo anterior para conocer otros procesos.
Nota: Los puertos no deben entrar en conflicto.
Configuración de la depuración remota de mapreduce
Si desea depurar Map o reducir tareas, es inútil modificar bin/hadoop porque no hay parámetros de inicio para las tareas de Map en bin/hadoop.
En este momento es necesario modificar Mapred-site.xml.
<Properties>
<Name>mapred.child.Java.opts</name>
<Value> -xmx 800m-Xdebug-Xrunjdwp:transport=dt_socket,server=y, suspend=y,address=8000</value>
</property>
En un TaskTracker, solo se puede iniciar una tarea de mapa o una tarea de reducción; de lo contrario, habrá un puerto conflicto durante el inicio.
Por lo tanto, modifique los elementos de configuración en conf/hadoop-site.xml en todos los TaskTrackers:
& ltProperties>
& ltName>mapred tasktracker task .maximum</name>
<value>1</value>
</property>
<Properties>
<Name>mapred.tasktracker.reduce.tasks.maximum</name>
<Value>1</ value & gt;
& lt/property & gt;
Uso del método en Eclipse:
Abrir eclipse, buscar la configuración de depuración... y agregue una aplicación Java remota:
Puede asociar el código fuente de Hive en la fuente y luego hacer clic en el botón Depurar para ingresar al modo de depuración remota.
Escribe una clase de prueba jdbc y ejecuta el código. En este punto, el programa puede ejecutarse normalmente hasta el final porque no hay ningún punto final en Hive-server2.
Establezca un punto de interrupción en el código de Hive, como en el método de ejecución de ExecDriver.java, y luego ejecute la clase de prueba jdbc.