hadoop 在 centos 6.5 安装指导

Hadoop分布式安装指导

版本描述

系统版本为centos 6.5 64 bit

Hadoop版本:hadoop 2.4.0 64bit 版本

说明:apache社区上发布的是32位的编译版本,直接安装在64位上会出现库的问题

至于如何获取64位的版本,可以自己编译也可以从网上获取

网络规划

本文安装的系统是centos,这个安装规划了一个namenode和一个datanode,安装多贵datanode和一个datanode是一样的。

hostname

ip

master

namenode

10.20.96.217

slave

Datanode1

10.20.96.246

用户创建

用户创建

root用户登录,在所有节点上创建用户,用户名为tanxian ,密码:tanxian(这是用我的名字创建的,当然是可以修改的)

1、创建用户组:groupadd hadoop

2、执行如下命令: useradd tanxian -g hadoop -d /home/tanxian

3、用户建立好,在设置密码

  执行如下命令: passwd tanxian

  在提示输入密码处输入:tanxian

  在提示确认密码处输入:tanxian

修改主机名

依次修改每台机器 /etc/hosts文件和机器名。

10.20.96.217 namenode

10.20.96.246 datanode1

如果是分布式部署一定要配置这个,masterhdfs上就认这个

建立信任关系

建立namenode节点和所有datanode节点之间的双向信任关系

建立namenodedatanode的信任关系

1、用户tanxian用户登录到namnenode节点,在/home/tanxian目录下检查是否有.ssh目录,如果没有就手动建立

   建立目录执行如下命令:mkdir .ssh

2、创建密钥

   执行如下命令:ssh-keygen -t rsa

   持续回车确认,完成后在 .ssh目录下会产生如下两个文件 :id_rsa(私钥文件)  id_rsa.pub(公钥文件)

3、用tanxian用户登录到datanode1节点,进入到/home/tanxian目录下,在/home/tanxian目录下检查是否有.ssh目录,如果没有就手动建立

  建立目录执行如下命令:mkdir .ssh

  

4、进入 .ssh目录看是否有authorized_keys,如果没有建立这个文件

   执行如下命令:touch authorized_keys

   

5、把namenode节点中/home/hadoop/.ssh/id_rsa.pub中的内容copydatanode节点中的/home/hadoop/.ssh/authorized_keys文件中

 执行命令:scp ~/.ssh/id_rsa.pub tanxian@datanode1:~/

6、用用户tanxian登录到datanode1上,在其home目录下执行如下命令,把公钥添加到鉴权文件中

cat id_rsa.pub > ./.ssh/authorized_keys

7、修改文件和文件夹的权限(这部是个坑,如果权限设置不对,信任关系就不能生效)

   设置 .ssh 文件夹权限为chmod 700 .ssh

   设置文件权限:chmod 600 authorized_keys

这样namenodedatanode的信任关系就建立好

8、测试是否建立完成

   输入命令ssh tanxian@datanode1

   敲回车直接过去,不用输入密码就表示建立好了。

建立datanodenamenode信任关系

重复上面的步骤,只不过对namenode节点换为datanode节点,datanode节点换为namenode节点

建立节点自己对自己的信任关系

Namenode节点和datanode节点都需要,把自己的id_rsa.pub 追加在自己的authorized_keys 中即可

执行命令: cat id_rsa.pub >> authorized_keys

安装jdk

这里就不在描述如何安装jdk了,但是要注意把jdkJAVA_HOME配置在系统的PATH

安装hadoop

安装namenode节点

1、把安装包hadoop-2.4.0-64.tar.gz 传到/home/tanxian目录下

2、tar开安装包 ,执行命令:tar -zxvf hadoop-2.4.0-64.tar.gz

   执行命令mv hadoop-2.4.0 hadoop

3、配置hadoop的环境变量

   A、切换到root用户,进入/etc/profile.d 目录

   B、在这个目录下新建文件,执行命令:touch hadoop.sh

   C、在文件中写入如下配置数据

HADOOP_HOME=/home/tanxian/hadoop

export HADOOP_HOME

export HADOOP_MAPRED_HOME=$HADOOP_HOME

export HADOOP_COMMON_HOME=$HADOOP_HOME

export HADOOP_HDFS_HOME=$HADOOP_HOME

export HADOOP_YARN_HOME=$HADOOP_HOME

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

export HADOOP_LOG_DIR=$HADOOP_HOME/logs

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

export HADOOP_BIN=$HADOOP_HOME/bin

export PATH=$HADOOP_BIN:$PATH

D、切换到hadoop用户使配置生效,执行命令:source /etc/profile

E、执行命令:echo $HADOOP_HOME 如果看见输出为/home/tanxian/ 表示配置成功

4、建立数据存储目录(提示这步需要用root用户)

   默认hadoop数据存放在HADOOP_HOME/data目录,需要通过软连接的形式把它链接到空间更大的地方,如果是测试可以不用

   A、在大空间位置建立目录mkdir data  进入data目录在执行mkdir hadoop

   B、修改文件/dataown,执行命令: chown -R tanxian:hadoop /data 

   C、建立软连接 执行命令:ln -s /data/hadoop /home/tanxian/hadoop/data

5、配置masters

   A、如果没有masters就创建爱masters文件,执行命令:touch masters

   B、在文件中写入namenodehostsname地址,格式如下:namenode

6、配置slaves

   在slaves文件中配置datanodeip地址格式如下

   datanode1

   10-20-97-配置core-site.xml

添加如下配置

<property>

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

    <value>/home/tanxian/hadoop/tmp</value>

    <description>temporary directories.</description>

</property>

<property>

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

     <value>hdfs://10.20.96.217:9000</value>

     <final>true</final>

 </property>

7、配置hdfs-site.xml

添加如下配置

<property>

    <name>dfs.namenode.secondary.http-address</name>

    <value>10.20.96.217:50090</value>

</property>

<property>

    <name>dfs.webhdfs.enabled</name>

    <value>true</value>

</property>

<property>

    <name>dfs.namenode.name.dir</name>

    <value>/home/tanxian/hadoop/data/dfs/name</value>

    <final>true</final>

</property>

<property>

    <name>dfs.datanode.data.dir</name>

    <value>/home/tanxian/hadoop/data/data</value>

    <final>true</final>

</property>

<property>

    <name>dfs.replication</name>

    <value>1</value>

</property>

<property>

    <name>dfs.permissions</name>

    <value>false</value>

</property>

8、配置mapred-site.xml

 <property>

     <name>mapreduce.framework.name</name>

     <value>yarn</value>

 </property>

<property>

   <name>mapreduce.jobhistory.address</name>

   <value>10.20.96.217:10020</value>

</property>

<property>

    <name>mapreduce.jobhistory.webapp.address</name>

    <value>10.20.96.217:19888</value>

</property>

<property>

   <name>mapreduce.jobhistory.intermediate-done-dir</name> 

   <value>/mr-history/tmp</value> 

</property>

<property>

   <name>mapreduce.jobhistory.done-dir</name> 

    <value>/mr-history/done</value> 

</property>

 

9、配置yarn-site.xml

      <property>

       <name>yarn.nodemanager.aux-services</name>

       <value>mapreduce_shuffle</value>

  </property>

  <property>

       <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

       <value>org.apache.hadoop.mapred.ShuffleHandler</value>

  </property>

  <property>

       <name>yarn.nodemanager.local-dirs</name>

       <value>/home/tanxian/hadoop/data</value>

 </property>

 <property>

       <name>yarn.nodemanager.log-dirs</name>

       <value>/home/tanxian/hadoop/logs</value>

 </property>

 <property>

       <name>yarn.nodemanager.remote-app-log-dir-suffix</name>

       <value>logs</value>

 </property>

 <property>

       <name>yarn.log-aggregation.retain-check-interval-seconds</name>

       <value>-1</value>

 </property>

 <property>

       <name>yarn.nodemanager.log.retain-seconds</name>

       <value>10800</value>

 </property>

  <property>

       <name>yarn.resourcemanager.scheduler.address</name>

       <value>10.20.96.217:8030</value>

  </property>

  <property>

       <name>yarn.resourcemanager.resource-tracker.address</name>

       <value>10.20.96.217:8031</value>

  </property>

  <property>

        <name> yarn.resourcemanager.address</name>

        <value>10.20.96.217:8032</value>

  </property>

  <property>

        <name> yarn.resourcemanager.admin.address</name>

        <value>10.20.96.217:8033</value>

  </property>

  <property>

        <name>yarn.resourcemanager.webapp.address</name>

        <value>10.20.96.217:8088</value>

  </property>

这样namenode节点安装完成

安装datanode节点

1、配置hadoop的环境变量

    配置操作同上

2、建立数据存储目录

配置操作同上

3、把namenode上的hadoop打包copydatanode节点上的/home/tanxian目录下

4、把包tar

格式化 hdfs

配置好后在namenode机器上进入hadoopbin目录格式化文件系统(一定要)

hdfs namenode -format    #格式化文件系统

启动hadoop

进入namenode节点的$HADOOP_HOME/sbin 目录

下执行 ./start-all.sh 

他会把所有的节点启动起来,包括namenodedatanode1

namenode上执行jps命令发现如下

表示namenode节点正常启动

datanode1上执行jps命令发现如下

表示datanode1启动正常

问题1"Not implemented by the DistributedFileSystem FileSystem implementation"

包中的DistributedFileSystem 冲突导致hadoop-core-1.2.1hadoop-common-2.4.0有相同的内导致,删除hadoop-core-1.2.1即可

问题2: 格式化文件系统的时候抛出ERROR security.UserGroupInformation: PriviledgedActionException as:tanxian (auth:SIMPLE) cause:org.apache.hadoop.hdfs.server.common.IncorrectVersionException: Unexpected version of data node. Reported: -55. Expecting = -47.

原因是namenodedatanode版本不一致导致

   

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值