If the circles never need to move independently, you can make one body. See here for an example of a hexagon body. I've extracted the relavent bits and pasted them here:
import static org.anddev.andengine.extension.physics.box2d.util.constants.PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
import com.badlogic.gdx.physics.box2d.FixtureDef;
import com.badlogic.gdx.physics.box2d.PolygonShape;
/* ... */
public class PhysicsExample extends BaseExample implements IAccelerometerListener, IOnSceneTouchListener {
/* ... */
private static Body createHexagonBody(final PhysicsWorld pPhysicsWorld, final Shape pShape, final BodyType pBodyType, final FixtureDef pFixtureDef) {
/* Remember that the vertices are relative to the center-coordinates of the Shape. */
final float halfWidth = pShape.getWidthScaled() * 0.5f / PIXEL_TO_METER_RATIO_DEFAULT;
final float halfHeight = pShape.getHeightScaled() * 0.5f / PIXEL_TO_METER_RATIO_DEFAULT;
/* The top and bottom vertex of the hexagon are on the bottom and top of hexagon-sprite. */
final float top = -halfHeight;
final float bottom = halfHeight;
final float centerX = 0;
final float left = -halfWidth + 2.5f / PIXEL_TO_METER_RATIO_DEFAULT;
final float right = halfWidth - 2.5f / PIXEL_TO_METER_RATIO_DEFAULT;
final float higher = top + 8.25f / PIXEL_TO_METER_RATIO_DEFAULT;
final float lower = bottom - 8.25f / PIXEL_TO_METER_RATIO_DEFAULT;
final Vector2[] vertices = {
new Vector2(centerX, top),
new Vector2(right, higher),
new Vector2(right, lower),
new Vector2(centerX, bottom),
new Vector2(left, lower),
new Vector2(left, higher)
};
return PhysicsFactory.createPolygonBody(pPhysicsWorld, pShape, vertices, pBodyType, pFixtureDef);
}
}
EDIT:
I know the OP has found a working solution to their problem, but I thought I would update my answer anyway. I think the best way is still to make just one body, but you can add multiple fixtures to it (Example done in RUBE):

When a collision happens, the fixture (e.g. ball) in contact is passed to all the collision callbacks, so you don't have to worry about implementing any fancy system to determine which ball was hit in a collision.
IMO this is a lot cleaner and faster than creating new bodies for every ball, and then joining every body to a central one using weld joints.