史上最详细搭建分布式Hadoop(四)之Hadoop安装

一、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查看是否启动成功。


 

猜你喜欢

转载自blog.csdn.net/lbship/article/details/82013936