hadoop安装简要指南

自己安装hadoop时遇到了很多坑,这里把验证成功的方法记录一下。

1. 部署集群

首先你需要有几台服务器,将它们的name和ip都记录下来,然后将它们记录到每一台机器的/etc/hosts文件中,比如:

192.168.119.128 namenode
192.168.119.129 datanode1
192.168.119.130 datanode2

然后需要配置这几台机器之间的免密登录,这一步非常非常容易出错,一定要当心。首先先生成每台机器的密钥:

ssh-keygen -t rsa -P ‘’

然后将所有机器下/root/.ssh/id_rsa.pub的内容粘贴到authorized_keys文件,放在每台机器的/root/.ssh/目录下。
然后各个机器之间ssh来回登录一下,将首次免密登录需要输入的yes给搞定(不来回登录一下的话,之后hadoop安装可能会报错)。

2. 安装hadoop

安装hadoop时记住自己的用户名,不要随便用sudo!用sudo建立的目录是管理员权限,普通用户无法创建文件。
每一台机器上创建hadoop的工作文件夹,比如:

mkdir /root/hadoop
mkdir /root/hadoop/tmp
mkdir /root/hadoop/var
mkdir /root/hadoop/dfs
mkdir /root/hadoop/dfs/name
mkdir /root/hadoop/dfs/data

然后下载一个hadoop放到namenode机器上然后解压缩,依次修改如下文件:

  • hadoop-2.8.0/etc/hadoop/slaves,添加datanode的名字
datanode1
datanode2
  • hadoop-2.8.0/etc/hadoop/hadoop-env.sh,添加
export   JAVA_HOME=/usr/java/jdk1.8.0_66
  • hadoop-2.8.0/etc/hadoop/core-site.xml,在configuration之间添加
<property>
     <name>hadoop.tmp.dir</name>
     <value>/root/hadoop/tmp</value>
</property>
<property>
     <name>fs.default.name</name>
     <value>hdfs://namenode:9000</value>
</property>
  • hadoop-2.8.0/etc/hadoop/hdfs-site.xml,在configuration之间添加
<property>
   <name>dfs.name.dir</name>
   <value>/root/hadoop/dfs/name</value>
</property>
<property>
   <name>dfs.data.dir</name>
   <value>/root/hadoop/dfs/data</value>
</property>
<property>
   <name>dfs.replication</name>
   <value>2</value>
</property>
<property>
      <name>dfs.permissions</name>
      <value>false</value>
</property>
  • 复制hadoop-2.8.0/etc/hadoop/mapred-site.xml.template为mapred-site.xml,添加
<property>
   <name>mapred.job.tracker</name>
   <value>hdfs://namenode:49001</value>
</property>
<property>
      <name>mapred.local.dir</name>
       <value>/root/hadoop/var</value>
</property>
<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>
  • hadoop-2.8.0/etc/hadoop/yarn-site.xml,添加
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>namenode</value>
</property>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.https.address</name>
    <value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>8182</value>
    <discription>单个任务最大可申请内存,默认8182MB</discription>
</property>
<property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>2.1</value>
</property>
<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>2048</value>
    <discription>该节点可使用内存</discription>
</property>

然后使用scp命令将hadoop文件夹复制到其他所有节点上。

3. 启动hadoop

执行初始化脚本:

hadoop-2.8.0/bin/hadoop namenode -format

启动hadoop:

hadoop-2.8.0/sbin/start-all.sh

可使用如下命令查看启动后的状态:

hadoop-2.8.0/bin/hadoop dfs admin -report查看hadoop状态

使用50060端口可以查看hadoop overview,使用8088端口可以查看hadoop集群情况。

猜你喜欢

转载自blog.csdn.net/kittyzc/article/details/82807220