您的位置:首页 > 运维架构

Hadoop 简单集群搭建

2012-12-27 14:04 423 查看
搭建三个节点的Hadoop环境。

理论上讲,Namenode 和JobTracker都是master节点,分布在不同的机器上。我们这里把两个java的进程放在同一台机器上。然后搭建两个slave机器,每个机器上都作为Datanode和TaskTracker.

1. 准备:

都需要安装Linux的发行版本,一台机器作为master节点,两外两个机器作为slave节点。

修改3台机器的/etc/hosts,让彼此的主机名称和ip都能顺利解析。

如果系统中安装有交换机,在一个子网下已经可以ping通,就不需要配置。我的集群就是这样的情况。配置完后用ping命令检查是否可以通过主机名访问各机器。

2. 安装java环境:

三台机器统一安装java环境,配置环境变量。我的java安装在/usr/java/下,环境变量如下:

JAVA_HOME=/usr/java/jdk1.6.0_34/
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME
export PATH
export CLASSPATH


3.新建一个用户组和用户,专门用来做hadoop测试,命令根据linux的版本不同而定,下面的代码是ubuntu

sudo addgroup hadoop
sudo adduser --ingroup hadoop hadoop
sudo usermod -aG admin hadoop


4.下载hadoop-1.0.4,这个是个稳定的版本。

将其解压在/home/hadoop下,这里可以解压在别的地方,视你的情况而定。但是放在别的地方可能有访问权限的问题

配置hadoop环境变量:

HADOOP_HOME=/home/hadoop/hadoop-1.0.4
HADOOP_CONF_DIR=$HADOOP_HOME/conf
HADOOP_LOG_DIR=/home/hadoop/hadoop-1.0.4/logs
PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_HOME
export HADOOP_CONF_DIR
export HADOOP_LOG_DIR
export PATH


以下内容现在master节点上面做

5.安装ssh,并生成公钥和私钥,运行:

ssh-keygen -t rsa


在/home/hadoop/.ssh下生成两个文件, id_rsa id_rsa.pub,执行以下命令将公钥放在authorized_keys中:

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


以上配置完成后,执行一下ssh localhsot,确认你的每台机器都可以使用ssh

如果不行,自行上网查找解决方法,我的机器在这一步中执行不下去,原因多种多样。

有一个原因可能是因为authorized_keys 的权限问题,需要权限是600才可以。但是不局限这个问题

6. 将master服务器上的authorized_keys的内容加到slave两台机器的authorized_keys文件中。让master也可以不需要密码访问2台slave服务器。

测试ssh 机器名,看是否可以无密码登录slave机器

7. 添加$HADOOP_HOME/conf/hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.6.0_34/
8. 编辑$HADOOP_HOME/conf/core-site.xml

<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-1.0.4/tmp</value>
<description>.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://机器名:54310</value>
<description> </description>
</property>


9. 编辑$HADOOP_HOME/conf/mapred-site.xml

<property>
<name>mapred.job.tracker</name>
<value>master机器名:54311</value>
<description>.  </description>
</property>


10. 编辑$HADOOP_HOME/conf/hdfs-site.xml

<property>
<name>dfs.replication</name>
<value>3</value>
<description>. </description>
</property>


11. 编辑$HADOOP_HOME/conf/masters

编辑$HADOOP_HOME/conf/slaves

12. 拷贝masternode上$HADOOP_HOME文件拷贝到各个节点上

13. 在所有机器上创建/home/hduser/hadoop/tmp

14. 配置结束,启动hadoop

先格式化masternode

bin/hadoop namenode -format


bin/start-all.sh


执行启动Hadoop进程后, 在master服务器会启动3个java进程,分别的NameNode,SecondNameNode,JobTracker,在LOG目录下会产生2个文件,分别对应NameNode的运行日志和JobTracker的运行日志, 在slave服务器会启动2个java进程,分别为DataNode,TaskTracker,,在LOG目录下会产生2个文件,分别对应 DataNode的运行日志和TaskTracker的运行日志,可以通过查看日志分析hadoop的启动是否正确。

通过浏览器可以查看hadoop状态。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: