您的位置:首页 > 运维架构

Ubuntu上hadoop集群搭建

2012-02-16 10:38 387 查看

1、 安装JDK

a)       从http://www.oracle.com/technetwork/java/javase/downloads/index.html上下载Linux下的JDK安装文件jdk-6u30-linux-i586.bin。

b)       将JDK安装文件复制到一个本地的目录下,本人选择了/opt目录。

c)        执行

sudo sh jdk-6u30-linux-i586.bin (若无法执行首先要chmod+x jdk-6u30-linux-i586.bin)

d)        安装完毕后,修改/etc/environment文件,

sudo vi /etc/environment

在其中添加

PATH=”……:<jdk所在目录>/bin”

CLASSPATH=”.:<jdk所在目录>/lib”

JAVA_HOME=”<jdk所在目录>”

e)       然后

source ~/.bashrc

f)        重启terminal,如果是ssh登录的话,先退出,再重新登录。

g)       java -version

应该就能看到所安装的jdk的信息。

 在每台集群中的机器上都如上述所示,安装JDK。

 

2、 在集群的每台机器上都新建用户hadoop

a)       sudo adduser --ingroup adminhadoop

密码等信息任意。

将所新建的hadoop用户加入admin用户组,这样该用户就拥有的sudo权限,这样在设置时比较方便。

如果发现新建用户错误,则可以利用

userdel –r <username>

命令删除用户。

b)       接着将hadoop安装文件hadoop-0.20.203.0rc1.tar.gz复制每台机器的hadoop用户的主目录下,并执行

tar xzf hadoop-0.20.203.0rc1.tar.gz

解压得到hadoop-0.20.203.0目录。

 

3、 配置ssh,使master机器可以无密码ssh访问自己和其他机器

a)       此步骤在最终作为master的机器上运行,需保证每台机器上都安装有ssh服务器和客户端,如果没有安装则可以通过执行

sudo apt-get install ssh 和sudo apt-get installopenssh-server 命令来进行安装。

b)       首先执行命令

ssh-keygen –t rsa (提示输入路径直接选择默认的路径,密码为空)

形成公私钥对,分别存放在~/.ssh/id_rsa.pub和~/.ssh/id_rsa中。

首先,将id_rsa.pub复制到本机的~/.ssh/authorized_keys下。

如果原来authorized_keys已经存在,则执行

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 将公钥追加到authorized_keys中。

如果原来该文件不存在,直接将id_rsa.pub复制即可

cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

 这样通过ssh访问本机

ssh localhost

就不需要密码了。

c)        将master机上生成的公钥id_rsa.pub添加到其他机器的authorized_keys中,也是不存在authorized_keys则复制,存在authorized_keys则追加公钥。(可能有时候在其他机器上并不存在~/.ssh目录,这时可以手动新建一下这个目录,也可以在该机器上利用ssh登录一下其他机器)。

d)       最后,可以尝试在master机器上的hadoop用户可以无密码登录其他机器的hadoop用户。

 

4、 hadoop的各种配置文件的配置过程

假设现在存在三台机器,他们的任务和ip地址分别为:

11.0.0.107        namenode、jobtracker、secondarynamenode、datanode、tasktracker

11.0.19.115      datanode、tasktracker

11.0.19.45        datanode、tasktracker

a)  hadoop的配置文件都存在<hadoop安装文件>/conf目录下,如hadoop-0.20.203.0/conf目录下。

b)  配置文件目录下几个比较重要的配置文件如下(需要配置):

hadoop-env.shhadoop启动时所需要的一些环境变量的设置,其中比较常用的环境变量的设置就是JAVA_HOME。
core-site.xmlhadoop一些核心内容的设置,其中包括HDFS和MapReduce的基本设置。
hdfs-site.xmlHDFS的配置。
mapred-site.xmlMapReduce的设置。
masterssecondary namenode的主机名或是IP地址,在hadoop中jobtracker和namenode的主机的确定是由hadoop的启动脚本在哪台机器上运行决定的。
slavesdatanodes和tasktrackers的主机名或是IP地址。
c) core-site.xml的配置
     

<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>

<!-- Putsite-specific property overrides in this file. -->

<configuration>
<property>
<name>fs.default.name</name>  //HDFS的URI名称的前缀,默认的文件系统
<value>hdfs://11.0.0.107</value>
<final>true</final>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop_home</value>  //hadoop临时文件目录
</property>
</configuration>


d) hdfs-site.xml 的配置

<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>

<!-- Putsite-specific property overrides in this file. -->

<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/name1,/home/hadoop/name2</value>  // namenode存储meta信息的目录,指定多个目录,每个目录中都会有一份该信息
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/data1,/home/hadoop/data2</value>  // datanode存储数据块的目录,指定多个目录,数据在多个目录间选择一个存储
</property>
<property>
<name>dfs.replication</name>
<value>2</value>  // 存储文件的份数
</property>
</configuration>


 

e) mapred-site.xml的配置

<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>

<!-- Putsite-specific property overrides in this file. -->

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>11.0.0.107:8021</value>  //jobtracker服务运行的IP地址或主机名和端口号,端口号应该要指定
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/hadoop/hadoop_home</value>//MapReduce存储中间数据的目录
</property>
</configuration>


另外mapred.system.dir也可以进行设置,所设定的目录中存放着DistributedCache等共享文件。

配置文件配置完成后,将整个conf目录复制到每台机器上的<hadoop安装目录> hadoop-0.20.203.0下。

 

5、 启动HDFS和MapReduce

a)       在master主机上进行操作。

b)       建立HDFS文件系统

bin/hadoop namenode –format

c)        启动HDFS

bin/start-dfs.sh

d)       启动MapReduce

bin/start-mapred.sh

e)       如果启动成功,可以通过jps命令查看当前运行参数,也可通过浏览器访问http://11.0.0.107:50030/http://11.0.0.107:50070/了解MapReduce和HDFS的运行情况。


f)        如果需要停止HDFS和MapReduce则可通过

bin/stop-dfs.sh和bin/stop-mapred.sh

或是bin/stop-all.sh来完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息