Red de conocimiento informático - Consumibles informáticos - Configurando hadoop e hilo totalmente distribuidos, ¿por qué no puedo iniciar nodemanager en el esclavo?

Configurando hadoop e hilo totalmente distribuidos, ¿por qué no puedo iniciar nodemanager en el esclavo?

Configure la depuración remota de hbase

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.