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

Hadoop 详细安装配置指南

2015-09-28 14:00 423 查看
1. 安装虚拟机和Linux。我们集群中准备3台机器:

192.168.1.16Master

192.168.1.17Slave1

192.168.1.18Slave2

可参考 http://blog.csdn.net/yg_it/article/details/25472523

2. 网络配置

2.1 修改hostname

a): 执行命令hostname 查看机器名称。

b): 如需修改,使用vi编辑器 vi /etc/sysconfig/network 修改其中的HOSTNAME属性为Master。

c): 执行hostnameMaster ,在当前环境中立即生效。

d): 执行命令hostname验证设置结果。

2.2 配置IP 和hostname 绑定。

a): 编辑文件“vi/etc/hosts” ,增加ip与hostname的映射信息。

192.168.1.16Master

192.168.1.17Slave1

192.168.1.18Slave2

b): 执行pingmaster 验证是否映射成功。

2.3 关闭防火墙。

a): 执行命令service iptables stop 关闭防火墙。

b): 执行命令service iptables status 查看防火墙是否正在运行。

c): 执行命令chkconfig iptables off 关闭防火墙自动运行。

3. 配置ssh免密码登陆(1.ssh-keygen -t rsa -P ''产生公钥私钥文件 2.产生的文件位于~/.ssh目录下 3. cp id_rsa.pub authorized_keys(如果要进行免密码登陆需要把产生的id_rsa.pub 信息复制到其他机器上authorized_keys文件中))

3.1  执行命令ssh-keygen-t rsa -P ''产生公钥私钥文件,产生的文件位于~/.ssh目录下。

3.2 执行命令ssh-copy-id-i master复制公钥文件到master节点的authorized_keys中。

ssh-copy-id-i slave1 复制公钥文件到slave1节点的authorized_keys中。

ssh-copy-id-i slave2  复制公钥文件到slave2节点的authorized_keys中。

 

3.3 执行命令 sshmaster ,验证免密码登陆。

 

4. 安装JDK

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

下载 jdk-7u60-linux-x64.tar.gz

安装好的CentOS会自带OpenJdk,我们先卸载掉OpenJdk,在安装Oracle的JDK。

4.1 执行命令 rpm-qa | grep java 查看jdk。

4.2 分别执行以下命令,卸载OpenJdk。

rpm-e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64

rpm -e --nodepsjava-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
rpm-e --nodeps tzdata-java-2013g-1.el6.noarch

4.3 在"/usr"下创建"java"文件夹,将jdk上传到“/usr/java/”目录下,执行命令 tar –zxvf jdk-7u60-linux-x64.tar.gz 解压缩,产生文件夹jdk1.7.0_60  。

4.4 设置Java环境变量

a): 编辑文件 vi/etc/profile 在尾部添加

exportJAVA_HOME=/usr/java/jdk1.7.0_60

export PATH=$PATH:$JAVA_HOME/bin

b): 执行命令source /etc/profile使其立即生效

c): 使用命令 java–version ,如果看到如图所示,则JDK安装成功。

d): 同理,安装Slave1节点和Slave2节点上的JDK。

 

5. 安装Hadoop

下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-1.2.1/

下载hadoop-1.2.1.tar.gz

5.1 在master节点上传hadoop-1.2.1.tar.gz到/home/hadoop下。

5.2 执行命令 tar-zxvf ~/home/hadoop/hadoop-1.2.1.tar.gz 进行解压缩,产生文件夹hadoop-1.2.1。

5.3 设置环境变量

a): 编辑文件 vi/etc/profile 在尾部添加

exportHADOOP_HOME=/home/hadoop/hadoop-1.2.1

export PATH=$PATH:$HADOOP _HOME/bin

b): 执行命令 source /etc/profile使其立即生效

5.4 配置文件hadoop-env.sh,增加内容如下

export JAVA_HOME=/usr/java/jdk1.7.0_60

5.5 配置文件core-site.xml,增加内容如下

[plain]
view plaincopyprint?
1.     <configuration>  
2.         <property>  
3.             <name>fs.default.name</name>  
4.             <value>hdfs://Master:9000</value>  
5.         </property>  
6.         <property>  
7.             <name>hadoop.tmp.dir</name>  
8.             <value>/home/hadoop/hadoop-1.2.1/tmp</value>  
9.         </property>    
10.   
11. </configuration>  
 <configuration>

    <property>

      <name>fs.default.name</name>

      <value>hdfs://Master:9000</value>

    </property>

    <property>

      <name>hadoop.tmp.dir</name>

      <value>/home/hadoop/hadoop-1.2.1/tmp</value>

    </property> 

 </configuration>

注意:请先在 /home/hadoop/hadoop-1.2.1/ 目录下建立tmp 文件夹,不然会报tmp目录找不到。
5.6 配置文件hdfs-site.xml,增加内容如下

[plain]
view plaincopyprint?
1.     <configuration>  
2.         <property>  
3.             <name>dfs.replication</name>  
4.             <value>2</value>  
5.         </property>  
6.         <property>  
7.             <name>dfs.permissions</name>  
8.             <value>false</value>  
9.         </property>    
10. </configuration>  
 <configuration>

    <property>

      <name>dfs.replication</name>

      <value>2</value>

    </property>

    <property>

      <name>dfs.permissions</name>

      <value>false</value>

    </property> 

 </configuration>

注意:dfs.replication是数据副本数量,默认为3,slave少于3台就会报错,这里我们有2个slave就设置为2.
5.7 配置文件 mapred-site.xml,增加内容如下
[plain]
view plaincopyprint?
1.     <configuration>  
2.         <property>  
3.             <name>mapred.job.tracker</name>  
4.             <value>http://Master:9001</value>  
5.         </property>  
6.     </configuration>  
<configuration>

<property>

<name>mapred.job.tracker</name>

<value>http://Master:9001</value>

</property>

</configuration>

5.8 配置文件masters(hadoop1.1.2/conf目录下),删除localhost增加内容如下

Master

4.9 配置文件slaves(hadoop1.1.2/conf目录下),删除localhost增加内容如下

Slave1

Slave2

5.10 把master上的hadoop-1.2.1复制到其他节点,执行命令

scp-r  ~/hadoop-1.2.1  slave1:~/

scp -r  ~/hadoop-1.2.1  slave2:~/

scp-r xxx  root@主机名:/xxx

5.11 设置其他节点上hadoop的环境变量。(参照5.3)

5.12 在master节点执行命令hadoop namenode -format 进行格式化

5.13 在master节点执行命令start-all.sh 启动集群,并验证集群

查看Slave1和Slave2进程

 

网页查看集群
http://master:50070 http://master:50030
OK,Hadoop1.2.1集群安装成功!

 

 

 

 hadoop在子节点上没有datanode进程

 

经常会有这样的事情发生:在主节点上start-all.sh后,子节点有TaskTracker进程,而没有DataNode进程。

环境:1NameNode   2DataNode三台机器,Hadoop为1.2.1

解决办法:

1.先停止Hadoop,bin/stop-all.sh

2.三台机器都把hadoop1.2.1/tmp下所有文件删除,rm-rf tmp/*

3.重新格式化DFS  bin/hadoop namenode -format

4.再重启bin/start-all.sh

5.查看各节点jps,就有DataNode和TaskTracker了

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: