一、Hadoop文件复制
把Hadoop文件复制到所有机器的 /usr/local/src/下面
cp hadoop-1.2.1-bin.tar.gz /usr/local/src/
scp -rphadoop-1.2.1-bin.tar.gz 192.168.116.11:/usr/local/src/
二、开始安装
cd /usr/local/src
tar xvzf hadoop-1.2.1-bin.tar.gz
创建一个temp文件夹用来放数据。
三、开始修改conf配置
vim masters 把里面的local删除,换成master,保存退出
vim slaves把localhost删除,换成 slaves1 和slaves2
vim core-site.xml
在configuration中输入
<property>
<name>hadoop.temp.dir</name>
<value>/usr/local/src/hadoop-1.2.1/temp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.116.10:9000</value>
</property>
vim mapred-site.xml
输入
<property>
<name>mapred.job.tracker</name>
<value>http://192.168.116.10:9001</value>
</property>
vim hdfs-site.xml 这里设置副本的数量,默认是3副本,这里我写2,内存大设置成3也可以。
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
vim hadoop-env.sh
输入
export JAVA_HOME=/usr/local/src/jdk1.6.0_45
vim /etc/hosts
输入IP建立解析关系
192.168.116.10 master
192.168.116.11 slave1
192.168.116.12 slave2
修改hostname
vim /etc/sysconfig/network
把修改好的Hadoop 复制到slave1和slave2
scp -rp hadoop-1.2.1 192.168.116.11:/usr/local/src/
关闭防火墙
/etc/init.d/iptables stop
输入iptables -L出现下面就关闭了
输入setenforce 0来关闭selinux
四、设置ssh免密码登录
执行ssh-keygen生产密码文件
把公钥内容id+rsa.put复制给known_hosts
vi authorized_keys
cat id_rsa.pub>authorized_keys
其他两台机器也是执行ssh-keygen
把公钥内容id_rsa.pub复制到master中
把公钥内容复制到另外两台机器
scp -rp authorized_keys slave1:~/.ssh/
验证一下,输入 ssh slave1
成功了。
五、启动Hadoop
cd 到/usr/local/src/下面的Hadoop里面的bin里面,
第一次启动要格式化一下 ./hadoop namenode -format
如果遇到报错Exception in thread "main" java.lang.NoClassDefFoundError: ”-Djava/library/path=/usr/local/src/hadoop-1/2/1/lib”
Caused by: java.lang.ClassNotFoundException: ”-Djava.library.path=.usr.local.src.hadoop-1.2.1.lib”
则修改 vim hadoop-env.sh添加两行再执行 ./hadoop namenode format就可以了
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/"
如果遇到报错/usr/local/src/hadoop-1.2.1/libexec/.........No such file or directory,,比如楼主我,,楞是修改了bashrc,修改etc/profile,,hadoop-env.sh全部都修改了一遍,还是一样报错,那就恭喜你跟我一样了,我的情况是这样的,输入java -version,出现java信息,说明java环境配置好了,,cd到Hadoop里面配置的java home也没问题啊,吐血了好久。。。。这个说明Hadoop没办法识别你的虚拟环境,,严格按照教程一步步来设置环境,哪怕一个标点错误也不行。重设一遍,就好了
接着启动全部 ./start-all.sh/
如果遇到报错,说明slave1和slave2没有配置好,启动失败。
slaves2: ssh: Could not resolve hostname slaves2: Name or service not known
slaves1: ssh: Could not resolve hostname slaves1: Name or service not known
master: Warning: $HADOOP_HOME is deprecated.
在/etc/profile文件中添加:
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS=-Djava.library.path=$HADOOP_HOME/lib
注意:是export HADOOP_OPTS=-Djava.library.path=$HADOOP_HOME/lib,而不是export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
我第一次就犯错了
source /etc/profile
浏览器输入IP:50070,看到画面,泪奔了。总算成功 了。。
查看端口netstat -tnpl
输入jps查看是否启动成功。