centos單機部署hadoop僞集羣


簡介

Hadoop能在單臺機器上以僞分佈式模式運行,即每一個Hadoop模塊運行在單獨的java進程裏 node

版本

centos:5.8 apache

hadoop:2.2.0 vim

建立hadoop用戶

不是必須的,但從安全和運維的角度,建議隔離在一個專門的用戶下 centos

 
  1. sudo groupadd hadoop
  2. sudo useradd -g hadoop hadoop
  3. sudo passwd hadoop

切換到hadoop用戶: 安全

su hadoop bash

設置SSH無密碼登錄localhost

 
  1. ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
  2. cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

測試: 運維

ssh localhost ssh

若是不用輸入密碼,則設置成功 maven

若是仍然須要輸入密碼,能夠參考本站另外一篇博文《ssh無密碼登錄》,修改相應文件夾的權限

下載hadoop

官網下載hadoop-2.2.0.tar.gz

tar -xvzf hadoop-2.2.0.tar.gz -C /var/

cd /var/hadoop-2.2.0/

設置環境變量

$ vim ~/.bashrc

添加:
export HADOOP_PREFIX=/var/hadoop-2.2.0
export HADOOP_COMMON_HOME=$HADOOP_PREFIX
export HADOOP_HDFS_HOME=$HADOOP_PREFIX
export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
export HADOOP_YARN_HOME=$HADOOP_PREFIX
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

配置hadoop

hadoop配置文件默認在安裝目錄的etc/hadoop文件夾下面

配置hadoop-env.sh

vim hadoop-env.sh

主要是配置JAVA_HOME,設置正確的JDK位置

配置HDFS

vim core-site.xml

 
  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://localhost</value>
  5. </property>
  6. </configuration>

vim hdfs-site.xml

 
  1. <configuration>
  2. <property>
  3. <name>dfs.datanode.data.dir</name>
  4. <value>file:///home/hadoop/hdfs/datanode</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>file:///home/hadoop/hdfs/namenode</value>
  9. </property>
  10. <property>
  11. <name>dfs.namenode.checkpoint.dir</name>
  12. <value>file:///home/hadoop/hdfs/namesecondary</value>
  13. </property>
  14. <property>
  15. <name>dfs.replication</name>
  16. <value>1</value>
  17. </property>
  18. </configuration>

hadoop會自動建立相應的目錄

yarn-site.xml

添加:

 
  1. <property>
  2. <name>yarn.nodemanager.aux-services</name>
  3. <value>mapreduce_shuffle</value>
  4. </property>

mv mapred-site.xml.template mapred-site.xml

vim mapred-site.xml

添加:

 
  1. <property>
  2. <name>mapreduce.framework.name</name>
  3. <value>yarn</value>
  4. </property>

測試hadoop

hdfs namenode -format

start-dfs.sh

start-yarn.sh

一些注意

若是使用maven引用hadoop的jar包方式,必定注意hadoop集羣的版本,是1.0仍是2.0

不然會出現相似「Server IPC version 7 cannot communicate with client version 4」的錯誤

若是是hadoop1版本,在pom.xml下添加相似下面依賴:

<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.2.0</version>
</dependency>

注意的是這個依賴並不全,若是寫mr任務或者寫hdfs,還須要引入其餘依賴

若是是hadoop2,添加相似下面依賴:

<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.4.0</version>
</dependency>

這個依賴基本會把因此相關jar包都包含了

相關文章
相關標籤/搜索