hadoop集群时注意环境保持一致,目录结构.
1.1.1 所需工具
Redhat Enterprise Linux 6.3
hadoop 1.2.1
jdk 1.6 +
1.1.2 配置系统IP
这里推荐静态ip(static)
这里略过...
1.1.3 先修改一个主机名
hadoop喜好使用主机名访问节点
第一步:看机器名:uname-a
Linux Hadoop12.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64GNU/Linux
第二步:修改/etc/sysconfig/network中的hostname
第三步:修改/etc/hosts文件
1.1.4 host配置
vim /etc/hosts
给图给力:
192.168.121.133 | Hadoop1 | Redhat Linux 6.3 |
|
192.168.121.163 | Hadoop2 | Redhat Linux 6.3 | 安装完成后备份下来的系统 |
192.168.121.165 | Hadoop3 | Redhat Linux 6.3 | 克隆出来的系统 |
java目录统一在/home/jdk1.7.0_71
hadoop目录统一在/home/hadoop1.2.1
节点的hosts完全一样
1.1.5 配置vsftpd
这里略过...
1.1.6 配置ssh在集群互通时无密码访问
ssh目录在用户目录下的.ssh目录中
1. 输入命令生成钥:
ssh-keygen -t rsa
一路回车,直接确认.生成结束后可预览生成的key图,在.ssh目录中会多了两个文件,id_rsa和id_rsa.pub
id_rsa为密钥
id_rsa.pub为公钥
2. 拷贝公钥到authorized_keys
cp id_rsa.pub authorized_keys
# 注意authorized_keys目录名称是固定的
3. 将本机的key拷贝到另外机器
ssh 主机名 测试 ssh可否通过
拷贝公钥到Hadoop2机器,hadoop.pub为新文件名
scp id_rsa.pub Hadoop2:/root/.ssh/hadoop.pub
扩展公钥到authorized_keys
cat hadoop.pub >> authorized_keys
#注意当前是在Hadoop2机器上
将2机器上的公钥拷到1
scp authorized_keys hadoop1:/root/.ssh/
注意,如果不能无密码访问,可以查看一下authorized_keys 和known_hosts是否包含公钥.
1.1.7 jdk 环境配置
使用tar解压压缩包,注意路径及名称在后续配置中会用到,配置文件路径:/etc/profile,也可以配置.bash_profile这样不影响其它的用户
#java export JAVA_HOME=/home/jdk1.7.0_71 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH # hadoop |
测试输入java发现:
-bash: /home/jdk1.7.0_71/bin/javac:/lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
缺少glibc包和nss包
rpm -qa|grep glib
1.1.8 hadoop环境变量参数配置
使用tar解压压缩包,注意路径及名称在后续配置中会用到
设置hadoop环境变量
# java /home/jdk1.7.0_71
export JAVA_HOME=/home/jdk1.7.0_71
export JRE_HOME=$JAVA_HOME/jre
exportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
# hadoop
export HADOOP_HOME=/home/hadoop/hadoop-1.2.1
export PATH=$HADOOP_HOME/bin:$PATH
2.1 配置hadoop
2.1.1 配置hadoop-env.sh
export JAVA_HOME=/home/jdk1.7.0_71
测试了一,不设置还不行,被注释掉了,打开就行,其实有环境变量应该可以不用配置,但不设置就报错
2.1.2 配置conf/masters
[root@Hadoop1 conf]# vim masters
配置管理者,加主机名即可
Hadoop1
2.1.3 conf/slaves
[root@Hadoop1 conf]# more slaves
Hadoop1
Hadoop2
2.1.4 配置conf/core-site.xml
#注意vi粘贴时在插入模式
<configuration>
<!---global properties -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<!--file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.121.133:9000</value>
</property>
</configuration>
我这里使用的Hadoop1做为namenode;
2.1.5 conf/hdfs-site.xml
#注意vi粘贴时在插入模式
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
replication默认为3,如果不修改,datanode 少于三台就会报错
2.1.6 conf/mapred-site.xml(简单配置,datanode 的配置相同)
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.121.133:9001</value>
</property>
</configuration>
配置完成,Hadoop3配置相同,使用命令拷贝即可
cd /home/hadoop-1.2.1
scp conf/* Hadoop3:/home/hadoop-1.2.1/conf/
2.1.7 启动测试
cd /home/hadoop-1.2.1/bin
深待闺中20载,终于开始启动了,上面提步骤不能跳,不能错,有问题可以慢慢修改,我出现过不能互通,通了又不能拷贝,拷了确没有文件事.
按顺序查看以下:
hadoop
hadoop namenode
格式化 文件系统
hadoop namenode -format
sh start-all.sh 奔跑吧...
查看hadoop启动进程控制台信息如下:
[root@Hadoop1 bin]# jps
2718 NameNode
3984 TaskTracker
2895 JobTracker
4063 Jps
3837 SecondaryNameNode
缺少:DataNode
sh stop-all.sh 停止
2.1.8 验证安装
查看hdfs的datanode有多少及使用情况:
hadoop dfsadmin -report
查看hadoop(java)线程: jps
通过report 方式可以看到各datanode节点信息,也可以通过ip加50030查看
http://192.168.121.133:50030/jobtracker.jsp
给图给力:
上面地址看到的jobtracker如下图
到这里安装算告捷,如果有问题可进群讨论: 大数据QQ交流:208881891