Hadoop集群搭建

来源:互联网 发布:网站源码小偷程序 编辑:程序博客网 时间:2024/06/18 12:02

今天我在自己的机器上,通过多个虚拟机系统,来搭建hadoop伪集群环境。

        一、下面就先来说一下搭建hadoop集群环境所需要做的准备工作:

首先,我用的是VMware Workstation11,

所使用的虚拟机系统为ubuntukylin-15.04-desktop-amd64系统,

然后用到的是  jdk-7u79-linux-x64

hadoop所使用的版本为:hadoop-2.6.0

接下来就说说步骤。

  1.  创建hadoop用户。

设置root用户密码:sudo passwd root 以后的操作会需要到root用户的权限。

创建hadoop用户组:sudo addgroup hadoop

创建hadoop用户: sudo adduser -ingroup hadoop hadoop

为hadoop用户分配root权限:sudo gedit /etc/sudoers

在root ALL=(ALL:ALL) ALL下面添加hadoop ALL=(ALL:ALL) ALL,如图

ad

2.  修改机器名。

打开/etc/hostname文件:sudo gedit /etc/hostname

修改里面的原来的名字,改为master。

3.  安装jdk

将已经下载的jdk-7u79-linux-x64.tar.gz复制到ubuntu上。

拷贝到/usr/local路径:


解压:cd /usr/local进入到jdk压缩包所在路径;解压缩sudo tar -zxvfjdk-7u79-linux-x64.tar.gz,回车出现量的压缩信息,压缩完之后查看该目录下的文件,会发现多了个文件夹,如图

设置环境变量

打开/etc/profile文件,将以下内容拷贝进去。

# set java environment

export JAVA_HOME=/usr/local/jdk1.7.0_79

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JRE_HOME=$JAVA_HOME/jre


然后通过source 命令立即使profile生效。

接下来就测试jdk 是否安装成功。输入 java -version

时,jdk 就配置成功了。

4. 安装SSH服务

sudoapt-get install ssh openssh-server

5. ssh免密码连接

创建ssh-key,这里采用ras的方式,
      ssh-keygen -t

然后将密钥保存至authorized_keys中

cat .ssh/id_rsa.pub >> .ssh/authorized_keys

再查看密钥. cat .ssh/authorized_keys,如图

将master节点上生成的key复制到slave节点上

      sudo scp ~/.ssh/id_rsa.pubhadoop@slave-xx:~/.ssh/


在slave节点上将master节点生成的id_rsa.pub追加到authorized_keys授权文件中

      cat~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

追加后,在master节点上通过ssh slave-1命令连接一下slave节点测试是否可以无密码登陆,如图

二、集群配置

1. 与安装jdk的步骤一样,将hadoop-2.6.0.tar.gz移动到/usr/local下,解压后在/usr/local目录下多一个文件夹,如图

2.  将hadoop文件的权限添加给hadoop组的hadoop用户

sudo chown -R hadoop:hadoop hadoop

3.  设置linux系统的hadoop环境变量,将以下内容复制进/etc/proflie文件中

# set hadoop environment

exportHADOOP_HOME=/usr/local/hadoop

# set PATH

export PATH=$PATH:$HADOOP_HOME/bin

4. 修改/etc/hosts文件,打开/etc/hosts文件,将各个节点的机器名与IP对应,如图

5. 配置/conf/hadoop-env.sh文件,指定其中的jdk路径,如图

6 .配置core-site.xml文件,每个人配置的路径都不一样,在找这个文件的时候多用ls -l命令看看,一般情况下都会在你解压的hadoop文件夹下面的 etc/hadoop里面。

<property>    <name>fs.defaultFS</name>    <value>hdfs://Master:9000</value></property><property>    <name>hadoop.tmp.dir</name>    <value>file:/usr/local/hadoop/tmp</value>    <description>Abase for other temporary directories.</description></property>
7.  配置hdfs-site.xml文件,打开hdfs-site.xml文件,配置如下

<property>    <name>dfs.namenode.secondary.http-address</name>    <value>Master:50090</value></property><property>    <name>dfs.namenode.name.dir</name>    <value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property>    <name>dfs.datanode.data.dir</name>    <value>file:/usr/local/hadoop/tmp/dfs/data</value></property><property>    <name>dfs.replication</name>    <value>1</value></property>
8. 配置mapred-site.xml文件,这个可配可不配,主要是map/reduce的配置,如下,当然这个文件一开始是没有的,需要我们先执行以下命令

cp mapred-site.xml.template mapred-site.xml  之后我们再进行配置文件。修改配置如下

<property>    <name>mapreduce.framework.name</name>    <value>yarn</value></property>
9. 然而在hadoop-2.6.0版本下,我们还需要配置一个文件, 文件yarn-site.xml
<property>    <name>yarn.resourcemanager.hostname</name>    <value>Master</value></property><property>    <name>yarn.nodemanager.aux-services</name>    <value>mapreduce_shuffle</value></property>
10. 当然最后不可忽视的一个配置就是在slaves下面需要配置,之前在网上搜了好多资料,它们都说要在master里面配置。然而,他们也没有说是配置的那个版本的hadoop,而那个master文件在hadoop-2.6.0版本中已经不存在了,所以我们只需要对slaves进行如下配置就ok了:
masterslave01slave02#这里是你的从机号 slavexx
配置好后,将 Master 上的 Hadoop 文件复制到各个节点上(虽然直接采用 scp 复制也可以正确运行,但会有所不同,如符号链接 scp 过去后就有点不一样了。所以先打包再复制比较稳妥)。因为之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。


在slave01上执行:

切换 Hadoop 的模式,不管是从集群切换到伪分布式,还是从伪分布式切换到集群,如果遇到无法正常启动的情况,可以删除所涉及节点的临时文件夹,这样虽然之前的数据会被删掉,但能保证集群正确启动。或者可以为集群模式和伪分布式模式设置不同的临时文件夹(未验证)。所以如果集群以前能启动,但后来启动不了,特别是 DataNode 无法启动,不妨试着删除所有节点(包括 Slave 节点)上的 tmp 文件夹,重新执行一次 hadoop-2.6.0/bin/hdfs namenode -format,再次启动试试。

然后再master 机器上使用hadoop用户,执行以下命令


操作完之后,再执行jps命令查看,如图

另外也可以在Master节点上通过命令bin/hdfs dfsadmin -report查看DataNode是否正常启动。例如我这边一共有1个Datanodes。如图

到这里,那么恭喜你已经配置hadoop-2.6.0成功了。当然,通过在浏览器器中输入http://master:50070/ ,看到如下,就说明配置成功了。




0 0
原创粉丝点击