你好,游客 登录 注册 搜索
背景:
阅读新闻

H​a​d​o​o​p​安​装​-​保​你​一​次​成​功

[日期:2014-07-22] 来源:  作者:佚名 [字体: ]


[DOC]H​a​d​o​o​p​安​装​-​保​你​一​次​成​功

虚拟机安装

不要用Cgywin

 

系统都为32位的Centos 5

 

Linux安装ssh协议,安装的时候选中ssh安装包。

 

 

 

 

 

一、硬件环境   

 2机器,通过hostname进行设置:         

master(192.168.1.102)

slave1(192.168.1.101)

该环境目前只有2个节点,有资源的话可以增加slave2slave3

 

虚拟机上安装linux的话,用使用桥接的方式,在虚拟机系统名称上点右键——设置:

如果桥接不行可以选NAT

给每个linux设置固定的ip,因为不设置的话虚拟机每次启动的时候会重新分配ip.

 

二、相关软件         

hadoop-0.20.2 

jdk-6u30-linux-i586.bin 

 

三、JDK1.6安装和配置       

(1)在每台机器上运行二进制文件:./jdk-6u18-linux-x64-rpm.bin 或        

(2)编辑每台机器的/etc/profile,增加如下内容

export  JAVA_HOME=/usr/jdk1.6.0_21

export  CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export  PATH=

$PATH:$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin     

 :环境变量视具体安装情况而定,下同

四、安装Hadoop 及配置

(1)root登录,在master和 slave1上分别修改/etc/hosts,添加如下内容:                 

192.168. 1.102  master                 

192.168.1.101  slave1               

 

 

 (2)root登陆,建立hadoop用户 

useradd hadoop 
passwd hadoop

输入容易记忆的密码:如hadoop

 

(3)进入hadoop目录,使用如下命令:(注意权限问题

  注意:如果是mastersalveIP有变化的话,需要重新执行此步。

(出现问题可使用root账户查看/var/log/secure日志文件)

su - hadoop             #进入hadoop用户目录 
ssh-keygen -t rsa      #建立ssh目录,敲回车到底这个命令将为hadoop上的用户

hadoop生成其密钥对,询问其保存路径时直接回车采用默认路径,当提示要为生成的密钥输入passphrase的时 候,直接回车也就是将其设定为空密码。生成的密钥对id_rsaid_rsa.pub,默认存储在/root/.ssh目录下

chmod 755 .ssh           #赋予755权限

cd .ssh

#ls l

id_rsa  id_rsa.pub

 

(4)这一步骤仅在master上执行下列命令会提示你输入slave1的密码,按照提示输入即可,如果失败可重新尝试执行命令

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

#把公用密匙添加到authorized_keys 文件中(此文件最后一定要赋予644权限

 

ssh slave1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

#上面条命令是把其他slave节点的公钥拷贝到master节点中的authorized_keys#有几个slave节点就需要运行几次命令,slave1是节点名称

scp ~/.ssh/authorized_keys slave1:~/.ssh/authorized_keys

#把authorized_keys文件拷贝回每一个节点,slave1是节点名称

 

 (5)master上连接所有slave节点,输入如下命令,上有几个slave节点就要输入几次,注意每次输入后,要返回master节点,重新输入命令:

ssh slave1  #需要选择yes/no 选择yes即可

 

此时 ls .ssh 结果如下:

authorized_keys  id_rsa  id_rsa.pub  known_hosts

 

(6)Hadoop的安装,将下载好的hadoop-0.20.2.tar.gz文件上传到四台机器上的/usr               //解压文件                      

                 tar  xvfz  hadoop-0.20.2.tar.gz 

                  //如出现问题可以用下面两句代替

                  gzip -d hadoop-0.20.2.tar.gz

                 tar xvf hadoop-0.20.2.tar

             

(7)配置/etc/profile               

 // root登录四台机器,编辑/etc/profile,增加如下内容                 

export  HADOOP_HOME=/usr/hadoop-0.20.2                 

export PATH=$PATH:$HADOOP_HOME/bin             

 

(8)修改Hadoop的配置文件,hadoop文件的conf文件夹中 

A 、masters文件里添加如下内容:                     

192.168.1.102

 

Bslaves文件添加如下内容:                   

192.168.1.101

 

注:配置IP的地方尽量不要用主机名,否则不通用,易出问题。

        

9)修改以下共3xml配置文件:

首先hadoop-env.sh中添加如下语句:

export JAVA_HOME=/usr/jdk1.6.0_21

 

core-site.xml添加如下语句在<configuration></configuration>之间:

<property>

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

<value>hdfs:// 192.168.1.102:9000</value>

</ property >

注意,这样配成IP 192.168.1.102,不要用主机名master, 否则eclipse里连接不上。

  <property>

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

<value>/home/hexianghui/tmp</value>

</property> 

 

mapred-site.xml添加如下语句在<configuration></configuration>之间:

<property>

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

<value>192.168.1.102:9001</value>

</property>

 

hdfs-site.xml添加如下语句在<configuration></configuration>之间,

replication 默认为3,如果不修改,datanode 少于三台就会报错

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

 

 

10、配置好的hadoop发送到salve1上:

Scp -r /usr/hadoop/hadoop-0.20.2 slave1:/usr/hadoop/

 

 

(11)配置好后在master机器上进入hadoopbin目录 格式化文件系统(一定要)               

./hadoop namenode -format  #格式化文件系统

        ./start-all.sh                       #启动namenode上的hadoop 

  确保90019000端口是通的。 

 

jps  查看是否启动正常! 

 

(12)查看50070,54310,50030端口是否启动 或者远程访问如下链接         

#1080       

#50030

#50060

 

 netstat -tnl     

http://master:50070访问 

http://master:50030

 

五、打开90009001端口方法

 

首先,我们需要在CentOS系统中编辑iptables Java代码
vi /etc/sysconfig/iptables-config

然后在CentOS系统中添加 Java代码
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT

最后CentOS系统要重新启动服务 Java代码
/sbin/service iptables restart 

查看端口是否开放 Java代码

netstat –anp|grep 900

/sbin/iptables -L -n

 

 

六:常遇问题解决办法

1、 关闭防火墙,每台机子都要关

 

/etc/init.d/iptables stop

 

开机就不启动防火墙:

vi /etc/sysconfig/selinux
#修改为 SELinux=disable

service iptables stop
chkconfig iptables off

reboot

这样开机就不启动防火墙了。

 

注:如果防火墙未关,可能出现如下错误:

File /home/hexianghui/tmp/mapred/system/jobtracker.info could only be

replicated to 0 nodes, instead of 1

 

 

2修改主机名和设置固定IP

 

修改主机名  vi  /etc/sysconfig/network

 

设默认IP   vi  /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 

#BOOTPROTO=dhcp 

BOOTPROTO=static 

IPADDR=192.168.131.50 

NETMASK=255.255.255.0 

TYPE=Ethernet 

HWADDR=XX:XX:XX:XX:XX:XX 

ONBOOT=yes

 

最后重启服务service network restart

 

 

3、更换IP需要做什么?

如果masterslaveIP换了,需要做如下操作:

1、 清空Hadoop临时目录 /home/hadoop/tmp

2、 重新执行hadoop namenode –format 格式化HDFS

 

后果,HDFS上的目录文件会丢失。

 





收藏 推荐 打印 | 录入:zhujiguang | 阅读:
相关新闻       H​a​d​o​o​p​安​装 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款