Hadoop环境的搭建
环境配置需要:vm8,ubuntu11.10,hadoop
构架:(虚拟机下):
:192.168.75.129
:192.168.75.131
:192.168.75.130
配置步骤:
(一):虚拟机下安装ubuntu。
(二):安装jdk,并配置环境:
、下载jdk:
并放到/home/ptrdu/java文件夹中。
切记:不能直接从windows中使用vmtools拖过来,会造成文件受损(本例使用共享文件夹实现)。
、安装jdk:
从终端进入安装目录执行以下命令:
在Terminal进入java文件夹,chmod u+x jjdk-6u43-linux-i586.bin(使其变为可执行的)。
执行输入命令jdk-6u43-linux-i586.bin 等待自动安装直到结束(期间需要enter一次)。
配置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
输入命令 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(主意地址分割使用冒号)
测试,看看是否配置成功,配置完成后输入sudo gedit /etc/environment,或者重启虚拟机,使配置生效:
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文件(三个节点都要改),第一个需要用#注释掉。
(
Ssh的配置:在三台虚拟机上分别执行 sudo apt-get install ssh等待ssh自动安装成功
设置无密码登录(只在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显示结果:
在namenode中 cd到.ssh文件夹下 输入以下命令:
scp authorized_keys datanode1: ~/.ssh/
scp id_dsa.pub datanode1: ~/.ssh/
scp id_dsa datanode1: ~/.ssh/
实现无密码登录:
同理在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。
Tips:有些小警告,找不到方法解决
启动hadoop:start-all.sh
Tips:发生权限问题,datanode同样要修改。
chmod -R a+w /home/ptrdu/hadoop-0.20.2
用jps观察各节点情况:
Namenode:
Datanode1:
Datanode2同Datanode1
可以在浏览器输入namenode:50070和namenode:50030查看具体情况,端口号是默认的,名字是你的namenode名。
Problem:
WARN conf.Configuration: bad conf file: element not <property>,文件好像有问题。(暂时未解决)
解决方法:配置文件里的configuration和property首字母写成大写了。。。。。。。。。。
Datanode登录到namenode有问题:
解决方法:datanode生成自己的密钥,并把自己的公共密钥添加到namenode的authorized_keys中
具体过程:
输入ssh-keygen,不输入,连按enter,生成空密码。
将id_rsa.pub添加到namenode的authorized—keys中。重命名为datanode2—pub。
进入namenode,将收到的datanode2—pub放到authorized——keys中