centos单机部署hadoop伪集群


目录

  • 1 简介
  • 2 版本
  • 3 创建hadoop用户
  • 4 设置SSH无密码登陆localhost
  • 5 下载hadoop
  • 6 设置环境变量
  • 7 配置hadoop
    • 7.1 配置hadoop-env.sh
    • 7.2 配置HDFS
  • 8 测试hadoop
  • 9 一些注意

简介

Hadoop能在单台机器上以伪分布式模式运行,即每个Hadoop模块运行在单独的java进程里

版本

centos:5.8

hadoop:2.2.0

创建hadoop用户

不是必须的,但从安全和运维的角度,建议隔离在一个专门的用户下

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

切换到hadoop用户:

su hadoop

设置SSH无密码登陆localhost

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

测试:

ssh localhost

如果不用输入密码,则设置成功

如果仍然需要输入密码,可以参考本站另一篇博文《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包都包含了

你可能感兴趣的:(centos单机部署hadoop伪集群)