Hadoop集群安装笔记

1.       虚拟机链接方式:桥接
2.       修改linux主机名
/etc/sysconfig/network 
/etc/hosts
3.       修改linux ip
ifconfig eth0 192.168.1.110 netmask 255.255.255.0
4.       三台机器上建立相同用户lxw
5.       Ssh免密码登陆:
用lxw用户登陆linux1上:
ssh-keygen –t rsa
一路回车下去即可在目录/home/lxw/.ssh/下建立两个文件 id_rsa.pub和id_rsa
接下来,需要进入/home/lxw/.ssh目录,执行如下命令:
scp -r id_rsa.pub lxw@linux2:/home/lxw/.ssh/authorized_keys_linux1
scp -r id_rsa.pub lxw@linux3:/home/lxw/.ssh/authorized_keys_linux1
用lxw用户登陆linux2:
ssh-keygen –t rsa
一路回车下去即可在目录/home/lxw/.ssh/下建立两个文件 id_rsa.pub和id_rsa
再把is_rsa.pub文件复制到linux1机器上去。
scp -r id_rsa.pub lxw@linux1:/home/lxw/.ssh/authorized_keys_linux2
用lxw用户登陆linux3:
ssh-keygen –t rsa
一路回车下去即可在目录/home/lxw/.ssh/下建立两个文件 id_rsa.pub和id_rsa
再把is_rsa.pub文件复制到linux1机器上去。
scp -r id_rsa.pub lxw@linux1:/home/lxw/.ssh/authorized_keys_linux3
上述方式分别为linux1\linux2\linux3机器生成了rsa密钥,并且把linux1的id_rsa.pub复制到linux2\linux3上去了,而把linux2和linux3上的id_rsa.pub复制到linux1上去了。
接下来还要完成如下步骤:
linux1:
以lxw用户登录linux1,并且进入目录/home/lxw/.ssh下,执行如下命令:
cat id_rsa.pub >> authorized_keys
cat authorized_keys_linux2 >> authorized_keys
cat authorized_keys_linux3 >> authorized_keys
chmod 600 authorized_keys
linux2/linux3:
以lxw用户登录linux2/linux3,并且进入目录/home/lxw/.ssh下,执行如下命令:
cat id_rsa.pub >> authorized_keys
cat authorized_keys_linux1 >> authorized_keys
chmod 600 authorized_keys
通过上述配置,现在以用户lxw登录linux1即可以无密钥认证方式访问linux2和linux3了,同样也可以在linux2和linux3上以ssh linux1方式连接到linux1上进行访问了.
注意:.ssh 目录权限为700  authorized_keys文件权限为600
6.       安装jdk1.6 (root用户,三台机器执行同样操作)
先检验是否已安装了jdk:
rpm -qa | grep jdk
rpm -qa | grep gcj
libgcj-4.1.2-46.el5
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
卸载:yum -y remove java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
mkdir –p /usr/java
chmod u+x  jdk-6u31-linux-i586.bin
./ jdk-6u31-linux-i586.bin
配置环境变量:
vi /etc/profile
##set java environment
export JAVA_HOME=/usr/java/jdk1.6.0_31
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
source /etc/profile
java –version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Client VM (build 20.6-b01, mixed mode, sharing)
用lxw用户配置环境变量:
vi .bashrc
##set java environment
export JAVA_HOME=/usr/java/jdk1.6.0_31
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
source .bashrc
7.       上传hadoop-0.21.0.tar.gz到linux1:/home/lxw/
tar –xzvf hadoop-0.21.0.tar.gz
编辑/home/lxw/hadoop-0.21.0/conf/core-site.xml
<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href=../../"configuration.xsl"?> 

<!-- Put site-specific property overrides in this file. --> 
<configuration> 
     <property> 
          <name>hadoop.tmp.dir</name> 
          <value>/home/lxw/hadoop-0.21.0/hadooptmp</value> 
     </property> 
     <property> 
          <name>fs.default.name</name> 
          <value>hdfs://linux1:9000</value> 
     </property> 
</configuration>
编辑hdfs-site.xml
<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href=../../"configuration.xsl"?> 
<!-- Put site-specific property overrides in this file. --> 
<configuration> 
     <property> 
          <name>dfs.name.dir</name> 
          <value>/home/lxw/hadoop-0.21.0/hadoopname</value> 
     </property> 
     <property> 
          <name>dfs.data.dir</name> 
          <value>/home/lxw/hadoop-0.21.0/hadoopdata</value> 
     </property> 
     <property> 
          <name>dfs.replication</name> 
          <value>2</value> 
     </property> 
</configuration>
编辑mapred-site.xml
<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href=../../"configuration.xsl"?> 

<!-- Put site-specific property overrides in this file. --> 
<configuration> 
     <property> 
          <name>mapred.jobtracker.address</name> 
          <value>linux1:9001</value> 
     </property> 
</configuration>
编辑masters
linux1
编辑slaves
linux2
linux3
8.       分别在上述3个节点机器上配置hadoop的环境变量
vi ~/.bashrc
export HADOOP_HOME=/home/lxw/hadoop-0.21.0
export PATH=$HADOOP_HOME/bin:$PATH
9.       启动HDFS和Mapreduce,并且查看集群状态
1)       格式化文件系统
hdfs namenode –format
hadoop namenode -format
2)       启动hadoop
start-dfs.sh
start-mapred.sh
3)       用jps命令查看进程,NameNode上的结果如下
10.   遇到的问题:
1)  jobtraker没有起来:
java.lang.RuntimeException: Not a host:port pair: local
原因:mapred-site.xml 中mapred.jobtracker.address 需要改为:mapred.job.tracker
2)  9000端口没有打开 50070 50030
如果你的 conf/core-site.xml的配置是:
<configuration>
     <property>
         <name>fs.default.name</name>
         <value>hdfs://linux1:9000/</value>
     </property>
</configuration>
那么你应该将machine1的9000端口打开:
#iptables -I INPUT  -p tcp --dport 9000 -j ACCEPT
然后可以查看
http://linux1:50070/dfshealth.jsp (你应该将500070端口也打开)

再执行,又报别的错:hdfs.DFSClient: Exception in createBlockOutputStream java.net.ConnectException: Connection refused
应该是datanode上的端口不能访问,到datanode上修改iptables:
#iptables -I INPUT  -s linux1 -p tcp  -j ACCEPT

OK 了!
3)  /etc/hosts文件
不需要120.0.0.1 localhost
4)  Cannot delete /home/lxw/hadoop-0.20.2/hadooptmp/mapred/system. Name node is in safe mode.
请不要急,NameNode会在开始启动阶段自动关闭安全模式,然后启动成功。如果你不想等待,可以运行:
bin/hadoop dfsadmin -safemode leave 强制结束。

猜你喜欢

转载自superlxw1234.iteye.com/blog/1483954