hadoop2.7.1在ubuntu上的集群配置

一、节点分配

三部在VM上建立的Ubuntu虚拟机,上网方式用的NAT,使用Hadoop的用户名都叫hadoop,主机名、ip配置如下

主机名IP
master192.168.226.160
slave1192.168.226.161
slave2192.168.226.162

二、预装软件

我当然不是一台一台配置的,是先配置好一台的基础配置然后再复制的,先添加了一个叫hadoop的普通用户,等会用来放hadoop,下面介绍一些必备的软件:

需要预装:ssh、rsync、jdk7+

ssh和rsync,ubuntu里本来就有,想知道没有直接在终端输入ssh、rsync测试一下就好了,但是我的ssh服务好像没运行,当时我以为不能用,又apt-get install ssh了一下,其实既然发现安装了就应该自己去开,不会可以搜啊,这里我是偷懒了。

安装jdk7+,可以去官网下载,我是装的jdk7,主要是官网下不下来,不知道要不要翻墙,就直接用的旧的。

三、JAVA环境配置

首先配置java运行环境,我下的是因为考虑到可能所有用户都要用java,这里用管理员权限先把jdk的压缩包解压到/usr/local/中

然后配置环境变量,在/etc/profile后面加上下面两行就好了:

export PATH=$PATH:/usr/local/jdk1.7.0_07/bin
export JAVA_HOME=/usr/local/jdk1.7.0_07/
然后‘ source /etc/profile’(source前有个空格)使之生效,运行java看看配置是否成功。

四、配置Hadoop

Hadoop可以去http://hadoop.apache.org/releases.html下载,我下的是2.7.1的binary版本

直接解压到用户hadoop的家目录(/home/hadoop/)里就好了,之后进hadoop-2.7.1/etc/hadoop中配置一下Hadoop:

需要配置的文件有六个:hadoop-env.sh 、core-site.xml、hdfs-site.xml、mapred-site.xml、masters、slaves,其中mapred-site.xml是复制mapred-site.xml.template得来的。

1、配置hadoop-env.sh

在最后加上下面这行就行了,我感觉是不是和上面的JAVA_HOME重复了?

export JAVA_HOME=${JAVA_HOME}
2、配置core-site.xml

在configuration标签内加入下面的内容

<configuration>
    <!--master host ip:port 9000-->
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
        <final>true</final>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/hadoop-2.7.1/tmp</value>
        <description>A bas for other temporary directories</description>
    </property>
    <property>
        <name>hadoop.native.lib</name>
        <value>true</value>
        <description>Should native hadoop libraries, if present, be used.</description>
    </property>
</configuration>
3、配置hdfs-site.xml


<configuration>
    <!--Namenode store space name, log dir-->
    <property>
        <name>dfs.name.dir</name>
        <value>/home/hadoop/hadoop-2.7.1/hdfs/name</value>
    </property>
    <!--Datanode dir-->
    <property>
        <name>dfs.data.dir</name>
        <value>/home/hadoop/hadoop-2.7.1/hdfs/data</value>
    </property>
    <!--data back count-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>
4、配置mapred-site.xml

在configuration标签内加入下面的内容

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <description>Execution framework set to Hadoop YARN.</description>
    </property>
    <property>
        <name>mapreduce.map.memory.mb</name>
        <value>512</value>
    </property>
    <property>
        <name>mapreduce.map.cpu.vcores</name>
        <value>1</value>
        <description></description>
    </property>
    <property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>512</value>
        <description>Larger resource limit for reduces.</description>
    </property>
    <property>
        <name>mapreduce.reduce.shuffle.parallelcopies</name>
        <value>5</value>
        <description>Higher number of parallel copies run by reduces to fetch outputs from very large number of maps.</description>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
        <description>MapReduce JobHistory Server host:port, default port is 10020.</description>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
        <description>MapReduce JobHistory Server Web UI host:port, default port is 19888.</description>
    </property>
</configuration>

5、配置yarn-site.xml


<configuration>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
        <description>host is the hostname of the resource manager and
            port is the port on which the NodeManagers contact the Resource Manager.
        </description>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
        <description>host is the hostname of the resourcemanager and port is</description>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        <description>shuffle service that needs to be set for Map Reduce to run</description>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>256</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>6144</value>
    </property>
    <property>
        <name>yarn.scheduler.minimum-allocation-vcores</name>
        <value>1</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-vcores</name>
        <value>3</value>
    </property>
</configuration>

6、配置masters
这个文件以前没有,新建一个写上一行master(你的主节点主机名)就好了,我不知道这个是不是必须的,因为原来没有这文件。
7、配置slaves
里面加入数据节点的主机名:
slave1
slave2


五、配置hosts
改一下/etc/hosts,因为三台主机的hosts文件都是一样的嘛,我改成这样了,地下还有ipv6的东西没有动,就是把127.0.1.1注释了,感觉他很烦人。
127.0.0.1 localhost
#127.0.1.1 master
# Hadoop
192.168.226.160 master
192.168.226.161 slave1
192.168.226.162 slave2


六、关机,复制两个虚拟机
用VMware自动生成一下每个虚拟机的mac地址,进入复制出来的两个虚拟机,更改主机名为slave1、slave2,ip改成静态的,如上表进行配置,如果你的主机还没改,也要改成上表的主机名和IP。
七、配置ssh免密码登录
以下的操作要在三台机器上分别执行,可能前三个之前复制过来也可以,但是觉得都一样好像不大好,就单独弄了。
首先确保是以hadoop的身份运行的,确认后运行以下代码:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
再把authorized_keys的权限设置为600:
chmod 600 authorized_keys
可以ssh 本地ip/主机名 测试可否自己免密连自己:
下面的操作在master上运行:
ssh-copy-id -i ~/.ssh/id_dsa.pub hadoop@slave1


ssh-copy-id -i ~/.ssh/id_dsa.pub hadoop@slave2
这样就能实现master免密登录slave了,在slave1和slave2上也运行以上命令(把slave1/2改成其他两个节点),实现所有节点之间的免密登录。
八、从master复制hadoop到slave
进入master的hadoo家目录,输入一下命令就可以把hadoop文件夹放到slave的家目录了,太方便了
scp -r hadoop-2.7.1 slave1:~
scp -r hadoop-2.7.1 slave2:~
九、配置hadoop用户环境变量
在master家目录的.bashrc中加入以下行:
export HADOOP_INSTALL=/home/hadoop/hadoop-2.7.1
export PATH=$PATH:$HADOOP_INSTALL/bin
export HADOOP_COMMON_LIB_NATIVE_DIR="/home/hadoop/hadoop-2.7.1/lib/native"
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/home/hadoop/hadoop-2.7.1/lib"
export HADOOP_PREFIX=/home/hadoop/hadoop-2.7.1
然后把.bashrc放到slave中去:
scp -r .bashrc slave1:~
scp -r .bashrc slave2:~
 source .bashrc一下,再输入hadoop测试一下路径是否可用
这样就可以了
hadoop集群的简单配置这样就完成,下篇文章测试一下功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值