如何配置Hadoop环境
1个回答
2016-02-22
展开全部
详细环境配置介绍如下:
Hadoop版本为0.20.2.
JDK版本为1.6.0.
操作系统为FreeBSD8.0(最小化安装)
vc3(192.168.1.3)是Namenode(Master),其他三台作为Datenode(slave).
Hadoop是Java语言编写的机群程序,他的安装时建立在ssh和JDK之上的,所以在配置Hadoop之前首先要对系统进行ssh和JDK的安装与配置。
1.下面首先来通过ssh来实现Hadoop节点之间用户的无密码访问。
(1).在各个节点的/etc/hosts文件中添加节点IP及对应机器名,并在各个节点上建立相同用户名与密码的账户。
修改/etc/hosts文件如下:
192.168.1.1 vc1
192.168.1.2 vc2
192.168.1.3 vc3
192.168.1.4 vc4
修改成功后就可以实现IP地址与机器名的对应解析。
在各个节点建立用户名为Hadoop,密码为123456的用户。
(2).实现节点间通过ssh无密码访问。
在vc3的/home/hadoop目录建立.ssh目录。
mkdir .ssh //建立.ssh目录
在/home/hadoop目录下进行ssh配置。
ssh-keygen -t rsa //生成密匙对
cd /home/hadoop/.ssh
cp id_rsa.pub authorized_keys
chmod go-rwx authorized_keys //要正确设置文件的权限644(即go-rwx)
scp -r /home/hadoop/.ssh vc1:/home/hadoop //将vc3中的.ssh文件夹内容复制到vc2节点的相同位置去。
scp -r /home/hadoop/.ssh vc2:/home/hadoop //同上
scp -r /home/hadoop/.ssh vc4:/home/hadoop //同上
(3).测试是否配置成功
同过ssh+机器名命令测试能否无密码访问其他计算机,如果无密码访问则配置成功。
例:vc1使用ssh vc3是否能无密码访问vc3,vc3使用ssh vc1是否能无密码访问vc1。(其他主机方法类似)
2.JDK的安装
在这里利用ports安装JDK。在安装时要先下载如下几个文件:
jdk-1_6_0_16-fcs-bin-b02-jrl-28_may_2008.jar
jdk-1_5_0_16-fcs-src-b02-jrl-28_may_2008.jar
tzupdater-1_3_12-2009a.zip
bsd-jdk16-patches-9.tar.bz2
diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2
到usr/ports/distfiles/目录,然后进入/usr/ports/java/jdk16进行安装。在这里需要说的是在安装JDK的时候最好安装最新版本,即1.6.0,否则在后面的Hadoop运行过程中可能会出错。
cd /usr/ports/java/jdk16 //进入jdk安装目录
make install clean //安装jdk
还有一种安装方法是去Sun官网下载JDK软件包jdk-6u12-Linux-i586.bin进行安装。(我没试过,不知道行不行,只是提一下。)把下载的JDK软件放到/home/hadoop目录下,给软件加上可执行权限,如下:
chmod a+x jdk-6u12-Linux-i586.bin
运行jdk-6u12-Linux-i586.bin进行安装。
./jdk-6u12-Linux-i586.bin
安装完成后会在当前目录生成jkd1.6.0_12文件夹。把生成的文件夹复制到/usr/java文件夹中。
mkdir /usr/java //新建java文件夹
cp -r jkd1.6.0_12 /usr/java
下载设置环境变量,修改/etc/profile文件。在该文件中添加如下代码:
export JAVA_HOME"/usr/java/jkd1.6.0_12"
export PATH="$PATH :$JAVA_HOME/bin:$JAVA_HOME/jre/bin:"
export CLASSPATH ="$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
保存后键入命令:
source /etc/profile
使环境变量设置生效。
安装好JDK后可以通过which命令来测试JDK是否安装成功:
which java
若是第一种方法显示信息如下:
/usr/local/jdk1.6.0/bin/java
如是第二种方法显示信息如下:
/usr/java/jkd1.6.0_12/bin/java
3.下来进行Hadoop的安装和配置。
下载hadoop-0.20.2.tar.gz到/home/hadoop目录,并解压:
tar -vxzf hadoop-0.20.2.tar.gz //解压hadoop到当前目录
解压完后进入/home/hadoop/hadoop-0.20.2/conf目录进行配置。
cd /home/hadoop/hadoop-0.20.2/conf
(1).修改hadoop-env.sh配置文件如下:
export JAVA_HOME=/usr/local/jdk1.6.0
(2).修改masters和slaves配置文件如下:
masters文件:
192.168.1.3
slaves文件:
192.168.1.1
192.168.1.2
192.168.1.4
(3).修改core-site.xml文件如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://202.113.88.73:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop/hadoop-${user.name}</value>
</property>
</configuration>
(4).修改hdfs-site.xml文件如下:
=====line 1 col 0 lines from top 1 ============================================
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(5).修改mapred-site.xml文件如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>202.113.88.73:9001</value>
</property>
</configuration>
配置文件修改完毕后格式化Namenode(运行Hadoop之前必须先进行格式化),进入/home/hadoop/hadoop-0.20.2/目录,命令如下:
./bin/hadoop namenode -format
格式化完毕后就可以运行Hadoop了,命令如下:
./bin/start-all.sh //在/home/hadoop/hadoop-0.20.2/目录下运行
如果要停止运行如下命令:
./bin/stop-all.sh //在/home/hadoop/hadoop-0.20.2/目录下运行
到此,Hadoop的配置已经完成了.
Hadoop版本为0.20.2.
JDK版本为1.6.0.
操作系统为FreeBSD8.0(最小化安装)
vc3(192.168.1.3)是Namenode(Master),其他三台作为Datenode(slave).
Hadoop是Java语言编写的机群程序,他的安装时建立在ssh和JDK之上的,所以在配置Hadoop之前首先要对系统进行ssh和JDK的安装与配置。
1.下面首先来通过ssh来实现Hadoop节点之间用户的无密码访问。
(1).在各个节点的/etc/hosts文件中添加节点IP及对应机器名,并在各个节点上建立相同用户名与密码的账户。
修改/etc/hosts文件如下:
192.168.1.1 vc1
192.168.1.2 vc2
192.168.1.3 vc3
192.168.1.4 vc4
修改成功后就可以实现IP地址与机器名的对应解析。
在各个节点建立用户名为Hadoop,密码为123456的用户。
(2).实现节点间通过ssh无密码访问。
在vc3的/home/hadoop目录建立.ssh目录。
mkdir .ssh //建立.ssh目录
在/home/hadoop目录下进行ssh配置。
ssh-keygen -t rsa //生成密匙对
cd /home/hadoop/.ssh
cp id_rsa.pub authorized_keys
chmod go-rwx authorized_keys //要正确设置文件的权限644(即go-rwx)
scp -r /home/hadoop/.ssh vc1:/home/hadoop //将vc3中的.ssh文件夹内容复制到vc2节点的相同位置去。
scp -r /home/hadoop/.ssh vc2:/home/hadoop //同上
scp -r /home/hadoop/.ssh vc4:/home/hadoop //同上
(3).测试是否配置成功
同过ssh+机器名命令测试能否无密码访问其他计算机,如果无密码访问则配置成功。
例:vc1使用ssh vc3是否能无密码访问vc3,vc3使用ssh vc1是否能无密码访问vc1。(其他主机方法类似)
2.JDK的安装
在这里利用ports安装JDK。在安装时要先下载如下几个文件:
jdk-1_6_0_16-fcs-bin-b02-jrl-28_may_2008.jar
jdk-1_5_0_16-fcs-src-b02-jrl-28_may_2008.jar
tzupdater-1_3_12-2009a.zip
bsd-jdk16-patches-9.tar.bz2
diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2
到usr/ports/distfiles/目录,然后进入/usr/ports/java/jdk16进行安装。在这里需要说的是在安装JDK的时候最好安装最新版本,即1.6.0,否则在后面的Hadoop运行过程中可能会出错。
cd /usr/ports/java/jdk16 //进入jdk安装目录
make install clean //安装jdk
还有一种安装方法是去Sun官网下载JDK软件包jdk-6u12-Linux-i586.bin进行安装。(我没试过,不知道行不行,只是提一下。)把下载的JDK软件放到/home/hadoop目录下,给软件加上可执行权限,如下:
chmod a+x jdk-6u12-Linux-i586.bin
运行jdk-6u12-Linux-i586.bin进行安装。
./jdk-6u12-Linux-i586.bin
安装完成后会在当前目录生成jkd1.6.0_12文件夹。把生成的文件夹复制到/usr/java文件夹中。
mkdir /usr/java //新建java文件夹
cp -r jkd1.6.0_12 /usr/java
下载设置环境变量,修改/etc/profile文件。在该文件中添加如下代码:
export JAVA_HOME"/usr/java/jkd1.6.0_12"
export PATH="$PATH :$JAVA_HOME/bin:$JAVA_HOME/jre/bin:"
export CLASSPATH ="$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
保存后键入命令:
source /etc/profile
使环境变量设置生效。
安装好JDK后可以通过which命令来测试JDK是否安装成功:
which java
若是第一种方法显示信息如下:
/usr/local/jdk1.6.0/bin/java
如是第二种方法显示信息如下:
/usr/java/jkd1.6.0_12/bin/java
3.下来进行Hadoop的安装和配置。
下载hadoop-0.20.2.tar.gz到/home/hadoop目录,并解压:
tar -vxzf hadoop-0.20.2.tar.gz //解压hadoop到当前目录
解压完后进入/home/hadoop/hadoop-0.20.2/conf目录进行配置。
cd /home/hadoop/hadoop-0.20.2/conf
(1).修改hadoop-env.sh配置文件如下:
export JAVA_HOME=/usr/local/jdk1.6.0
(2).修改masters和slaves配置文件如下:
masters文件:
192.168.1.3
slaves文件:
192.168.1.1
192.168.1.2
192.168.1.4
(3).修改core-site.xml文件如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://202.113.88.73:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop/hadoop-${user.name}</value>
</property>
</configuration>
(4).修改hdfs-site.xml文件如下:
=====line 1 col 0 lines from top 1 ============================================
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(5).修改mapred-site.xml文件如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>202.113.88.73:9001</value>
</property>
</configuration>
配置文件修改完毕后格式化Namenode(运行Hadoop之前必须先进行格式化),进入/home/hadoop/hadoop-0.20.2/目录,命令如下:
./bin/hadoop namenode -format
格式化完毕后就可以运行Hadoop了,命令如下:
./bin/start-all.sh //在/home/hadoop/hadoop-0.20.2/目录下运行
如果要停止运行如下命令:
./bin/stop-all.sh //在/home/hadoop/hadoop-0.20.2/目录下运行
到此,Hadoop的配置已经完成了.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询