在centOS测试成功!
hadoop和jdk否放在 /root/local目录下
1、设置静态IP
设置完成后重启网卡
service network restart
一定要设置
验证:ifconfig
2、修改主机名:
hostname hadoop
gedit /etc/sysconfig/network
改成hadoop
ubuntu则修改/etc/hostname
验证:重启机器
3、绑定hostname和ip
gedit /etc/hosts
增加 192.168.1.100 hadoop
验证:ping hadoop
4、关闭防火墙
service iptables stop
验证:service iptables status
ubuntu关闭防火墙:sudo ufw disable
5、关闭防火墙其自动运行
chkconfig iptables off
验证:chkconfig --list|grep iptables
6、SSH(secure shell)的免密码登陆
a、执行命令,产生秘钥
产生的秘钥位于 ~/.ssh文件夹中 用户目录下
cd ~
cd .ssh
ssh-keygen -t rsa
b、cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
c、scp ~/.ssh/id_rsa.pub root@hadoop002:.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub root@192.168.0.157:.ssh/authorized_keys
把主节点配置拷贝到从节点:scp -r /etc/hadoop/conf hadoop002:/etc/hadoop
ubuntu可能要手动开启ssh服务:
sudo apt-get install openssh-server
然后确认sshserver是否启动了:
ps -e |grep ssh
验证:ssh localhost
使用pieTTY的SSH登陆
7、安装jdk
使用winscp把jdk和hadoop文件从主机复制到/usr/local目录下
在/etc/profile 前面添加
export JAVA_HOME=/root/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
source /etc/profile
8、安装hadoop
tar -zvxf hadoop-1.1.2.tar.gz
/etc/profile添加
export JAVA_HOME=/root/local/jdk
export HADOOP_HOME=/root/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
source /etc/profile
修改hadoop配置文件进行伪分布配置
参考教程ppt
配置文件主要位于$HADOOP_HOME/config目录下
1.hadoop-env.sh
export JAVA_HOME=/root/local/jdk/
export HADOOP_HOME_WARN_SUPPRESS=1
2.core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop0:9000</value>
<description>change your own hostname</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/local/hadoop/tmp</value>
</property>
</configuration>
3.hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
4.mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop0:9001</value>
<description>change your own hostname</description>
</property>
</configuration>
上面的配置可能有些系统不支持hostname,使用ip配置是最安全的。
格式化hadoop:hadoop namenode -format
启动:start-all.sh
命令jps查看启动了5个进程 NameNode JobTracker TaskTracker DataNode SecondaryNameNode
web查看:http://192.168.1.100:50070/dfshealth.jsp
http://hadoop:50070/dfshealth.jsp
http://192.168.1.100:50030/jobtracker.jsp
http://hadoop:50030/jobtracker.jsp
然后hadoop配置和启动成功了!
附:
一、NameNode进程没有启动成功的原因
1、没有格式化
2、hostname和ip没有绑定
3、SSH的免密码登陆没有配置成功
二、多次格式化hadoop是错误的
方法:删除/root/local/hadoop/tmp文件夹:
rm -rf /data/hadoop/tmp
再重新格式化命令hadoop namenode -format
ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.io.IOException: Incomplete HDFS URI, no host
解决启示:
网上查阅此文:http://jiajun.iteye.com/blog/757137,得知主机名不允许出现下划线_,于是猜测我这里是因为主机名中存在点号.的问题。所以主机名不要有特殊字符。