Я использовал приведенный выше ответ FBUnicorn для составления полного руководства по установке Giraph 1.2.0 поверх только что развернутого экземпляра Hortonworks (HDP 2.2).
Я развернул HDP с помощью VirualBox, поскольку виртуальная машина будет иметь готовое подключение к Интернету, чего не было в случае с эквивалентом VMware.
Вот несколько шагов:
Клонировать git-репозиторий Giraph
cd /usr/local/
sudo git clone https://github.com/apache/giraph.git
Добавить пользователя в CentOS
useradd -G hadoop hduser
sudo passwd hduser
sudo chown -R hduser:hadoop giraph
su - hduser
Установите Maven (mvn) в CentOS (с помощью этой статье)
wget http://mirror.cc.columbia.edu/pub/software/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz
sudo tar xzf apache-maven-3.0.5-bin.tar.gz -C /usr/local
cd /usr/local
sudo ln -s apache-maven-3.0.5 maven
Настройка Maven
sudo vi /etc/profile.d/maven.sh
Вставлять
export M2_HOME=/usr/local/maven
export PATH=${M2_HOME}/bin:${PATH}
Выйдите из системы и войдите снова. Убедитесь, что доступна версия 3 или выше maven.
mvn -version
Экспорт каталогов Hadoop и Giraph
vi $HOME/.bashrc
Добавлять
export HADOOP_HOME=/usr/hdp/2.2.0.0-2041/hadoop
export GIRAPH_HOME=/usr/local/giraph
Измените GraphRunner.java согласно ответу FBUnicorn (/usr/local/giraph/giraph-core/src/main/java/org/apache/giraph)
job.getConfiguration().setBoolean("giraph.SplitMasterWorker", false);
перед логическим verbose = !cmd.hasOption('q');
Скомпилировать Giraph
source $HOME/.bashrc
cd $GIRAPH_HOME
mvn -Phadoop_2 -fae -DskipTests clean install
Убедитесь, что банки созданы в папке $GIRAPH_HOME/giraph-core/target/.
Создайте тестовый пример с крошечным графиком
vi /tmp/tiny_graph.txt
Вставлять
[0,0,[[1,1],[3,3]]]
[1,0,[[0,1],[2,2],[3,1]]]
[2,0,[[1,2],[4,4]]]
[3,0,[[0,3],[1,1],[4,4]]]
[4,0,[[3,4],[2,4]]]
Создана папка HDFS:
hadoop fs -mkdir -p /user/hduser/input
Скопируйте график в HDFS hadoop fs -copyFromLocal /tmp/tiny_graph.txt /user/hduser/input/tiny_graph.txt
Убедитесь, что файл попал в репозиторий HDFS hadoop fs -ls /user/hduser/input
График процесса Giraph
hadoop jar /usr/local/giraph/giraph-examples/target/giraph-examples-1.2.0-SNAPSHOT-for-hadoop-2.5.1-jar-with-dependencies.jar org.apache.giraph.GiraphRunner org.apache.giraph.examples.SimpleShortestPathsComputation -vif org.apache.giraph.io.formats.JsonLongDoubleFloatDoubleVertexInputFormat -vip /user/hduser/input/tiny_graph.txt -vof org.apache.giraph.io.formats.IdWithValueTextOutputFormat -op /user/hduser/output/shortestpaths -w 1
person
gdoubleu
schedule
20.01.2015