После захода в список рассылки cmake-developer
и, наконец, оставив сообщение о проблемах cmake gitlab , я понял, что проблема была не столько в моей версии cmake, сколько в моей cmake_minimum_required
, которую я унаследовал от старый проект.
Я устанавливал:
cmake_minium_required(VERSION 2.8)
После обновления до 3.12, я получил правильное поведение:
/path/to/g++ -rdynamic CMakeFiles/test.dir/test.cpp.o -o test -lboost_program_options-mt
Чтение cmake_minimum_required документов, которые я понял " команда неявно вызывает "cmake_policy
. Я думаю, что последний не очень хорошо играл с FindBoost
из моего 3.12 `cmake.
Я не уверен, полезен ли этот пост для SO, но я определенно усвоил здесь урок по cmake.
Это сбивает с толку, но hadoop.tmp.dir
используется как база для временных каталогов локально, а также в HDFS . Документ не велик, но по умолчанию для mapred.system.dir
установлено значение "${hadoop.tmp.dir}/mapred/system"
, и это определяет путь в HDFS , где в структуре Map / Reduce хранятся системные файлы.
Если вы хотите, чтобы они не были связаны друг с другом, вы можете отредактировать ваш mapred-site.xml
так, чтобы определение mapred.system.dir было чем-то, что не связано с ${hadoop.tmp.dir}
Посмотрел информацию об этом. Единственной вещью, которую я мог придумать, был этот пост в Amazon Elastic MapReduce Dev Guide :
В hadoop-site.xml мы установили hadoop.tmp.dir в / mnt / вар / Библиотека / Hadoop / TMP. / mnt - это место, где мы монтируем «дополнительные» тома EC2, которые могут содержать намного больше данных, чем том по умолчанию. (Точное количество зависит от типа экземпляра.) RunJar.java Hadoop (модуль, распаковывающий входные JAR-файлы) интерпретирует hadoop.tmp.dir как путь к файловой системе Hadoop, а не как локальный путь, поэтому вместо этого он записывает путь в HDFS местного пути. HDFS монтируется в / mnt (в частности, / mnt / var / lib / hadoop / dfs /. Таким образом, вы можете записать в него множество данных.