Hadoop环境的搭建

环境配置需要:vm8,ubuntu11.10,hadoop 

构架:(虚拟机下):

:192.168.75.129

:192.168.75.131

:192.168.75.130

配置步骤:

(一):虚拟机下安装ubuntu。

(二):安装jdk,并配置环境:

、下载jdk:

           http://download.oracle.com/otn-pub/java/jdk/6u43-b01/jdk-6u43-linux-i586.bin?AuthParam=1366011104_3110dd05270258b287e4d45c004b6cdd 

并放到/home/ptrdu/java文件夹中。   


hadoop环境变量查看 hadoop基础环境配置_hadoop环境变量查看

切记:不能直接从windows中使用vmtools拖过来,会造成文件受损(本例使用共享文件夹实现)。

、安装jdk:

 从终端进入安装目录执行以下命令:

在Terminal进入java文件夹,chmod u+x jjdk-6u43-linux-i586.bin(使其变为可执行的)。

执行输入命令jdk-6u43-linux-i586.bin 等待自动安装直到结束(期间需要enter一次)。


hadoop环境变量查看 hadoop基础环境配置_jar_02


配置java环境:

置环境变量:输入命令 sudo gedit /etc/profile 编辑,再文件末尾添加

export JAVA_HOME=你的jdk安装位置

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar: $JAVA_HOME/lib/tools.jar(主意地址分割使用冒号)

export PATH=$JAVA_HOME/:$PATH

点save后关闭文件回到Terminal


hadoop环境变量查看 hadoop基础环境配置_hadoop_03


输入命令 sudo gedit /etc/environment编辑:

在原有的PATH中添加jdk安装位置(即JAVA_HOME)使用冒号分隔

再在文件末尾添加(同Profile中的 但是此处没有PATH 如果误写入PATH则会导致下一次开机时,反复输入密码却不能进入系统,只有重装系统)

export JAVA_HOME=你的jdk安装位置(如:/home/sa/java/jdk1.6.0)

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar: $JAVA_HOME/lib/tools.jar(主意地址分割使用冒号)

hadoop环境变量查看 hadoop基础环境配置_JAVA_04

测试,看看是否配置成功,配置完成后输入sudo gedit /etc/environment,或者重启虚拟机,使配置生效:


hadoop环境变量查看 hadoop基础环境配置_Hadoop_05


hosts的配置:

使用虚拟机克隆,产生两台以做datanode,并使用sudo gedit /etc/hostname修改名称,分别为namenode,datanode1,datanode2,重启生效。

ifconfig记录各台机器信息:


:192.168.75.129

:192.168.75.131

:192.168.75.130


(三)Hadoop配置:

(1)输入sudo gedit /etc/hosts修改hosts文件(三个节点都要改),第一个需要用#注释掉。

     (


hadoop环境变量查看 hadoop基础环境配置_Hadoop_06



Ssh的配置:在三台虚拟机上分别执行 sudo apt-get install ssh等待ssh自动安装成功

hadoop环境变量查看 hadoop基础环境配置_JAVA_07

设置无密码登录(只在namenode做):

SSH安装:在两台虚拟机上分别执行 sudo apt-get install ssh等待ssh自动安装成功

免密码登录(只在namenode做):输入命令 ssh-keygen –t dsa –P ‘’ –f ~/.ssh/id_dsa这个命令会在.ssh文件夹下创建两个文件id_dsa及id_dsa.pub

把公钥追加到授权的key里面去 输入命令 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

无密钥登录本机设置完毕。

输入 ssh –version显示结果:


hadoop环境变量查看 hadoop基础环境配置_hadoop环境变量查看_08

在namenode中 cd到.ssh文件夹下 输入以下命令:

scp authorized_keys datanode1: ~/.ssh/

scp id_dsa.pub datanode1: ~/.ssh/

scp id_dsa datanode1: ~/.ssh/


hadoop环境变量查看 hadoop基础环境配置_Hadoop_09



实现无密码登录:


hadoop环境变量查看 hadoop基础环境配置_hadoop环境变量查看_10



同理在datanode2上实现。

Hadoop配置:

设置环境变量

增加如下内容

  #config hadoop

  export HADOOP_HOME=/home/ptrdu/hadoop-0.20.1

  export PATH=$HADOOP_HOME/bin:$PATH

的日志文件路径的配置

  export HADOOP_LOG_DIR=${HADOOP_HOME}/logs

修改以下文件:

Conf/hadoop-env.sh:

加上:export JAVA_HOME=/home/ptrdu/java/jdk1.6.0_43

Conf/core-site.xml:

<Configuration>

<Property>

<name>fs.default.name</name>

<value>hdfs://namenode:9000</value>

</Property>

<Property>

<name>hadoop.tmp.dir</name>

<value>/home/ptrdu/tmp</value>

</Property>

</Configuration>

Conf/hdfs-site.xml:

<configuration>

<Property>

<name>dfs.replication</name>

<value>1</value>

</configuration>

Conf/mapred-site.xml:

<Configuration>

<Property>

<name>mapred.job.tracker</name>

<value>namenode:9001</value>

</Property>

</Configuration>

Conf/master:

Namenode

Conf/slaves:

datanode1

datanode2

进入cd /home/ptrdu/hadoop-0.20.1/bin目录:

输入hadoop namenode -format,初始化namenode。


hadoop环境变量查看 hadoop基础环境配置_Hadoop_11

Tips:有些小警告,找不到方法解决

启动hadoop:start-all.sh

Tips:发生权限问题,datanode同样要修改。

chmod -R a+w /home/ptrdu/hadoop-0.20.2

hadoop环境变量查看 hadoop基础环境配置_JAVA_12


用jps观察各节点情况:

Namenode:


hadoop环境变量查看 hadoop基础环境配置_hadoop_13



Datanode1:

hadoop环境变量查看 hadoop基础环境配置_hadoop环境变量查看_14

Datanode2同Datanode1


可以在浏览器输入namenode:50070和namenode:50030查看具体情况,端口号是默认的,名字是你的namenode名。


Problem:

WARN conf.Configuration: bad conf file: element not <property>,文件好像有问题。(暂时未解决)

解决方法:配置文件里的configuration和property首字母写成大写了。。。。。。。。。。

Datanode登录到namenode有问题:


hadoop环境变量查看 hadoop基础环境配置_hadoop环境变量查看_15



解决方法:datanode生成自己的密钥,并把自己的公共密钥添加到namenode的authorized_keys中

具体过程:

输入ssh-keygen,不输入,连按enter,生成空密码。

将id_rsa.pub添加到namenode的authorized—keys中。重命名为datanode2—pub。

进入namenode,将收到的datanode2—pub放到authorized——keys中