Hadoop安装笔记

准备
Java JDK:jdk-8u121-linux-x64.tar.gz
Hadoop:hadoop-2.7.3.tar.gz
三台计算机,分别为1个master节点,2个slave节点。


环境的构建

  1. 修改主机名,使用命令hostnamectl set-hostname master.hadoop将Master节点计算机主机名改为master.hadoop;其余两台slave节点可以相应的修改为slave1.hadoop,slave2.hadoop。(其实,修改主机名知识为了方便记忆,不修改也是可以的。)
  2. 配置三台计算之间的主机映射,使用命令vim /etc/hosts 修改hosts文件,添加Ip地址和主机名之间的映射
  3. 在Linux操作系统的超级管理员root权限下创建新的用户(命名为hadoop);在root用户下赋予hadoop用户sudo权限,通过修改 /etc/sudoers文件。
    a) 创建hadoop用户:使用命令 adduser hadoop便可以根据提示一步步的创建hadoop用户。
    b) 赋予hadoop用户sudo权限:使用命令 vim /etc/sudoers 在文件相应位置中添加 hadoop ALL=(ALL:ALL) ALL
  4. 进入hadoop用户设置三台计算机之间ssh免密码登入。
    a) 安装ssh:sudo apt-get install ssh. 安装完成后会在~目录(即当前用户主目录,即/home/hadoop)下产生一个隐藏文件夹.ssh(ls –a命令可以查看隐藏文件)。如果没有这个文件,可以自主创建(mkdir .ssh 命令创建.ssh文件夹)。
    b) 进入.ssh目录下面,在每台计算机上执行:ssh-keygen -t rsa命令生成密钥(这里一路回车就可以)。
    c) 完成第二步后会产生两个文件:
    i. Id_rsa #私钥
    ii. Id_rsa.pub #公钥
    d) 在第一台机器的目录.ssh下执行命令:cat id-rsa.pub >> authorized_keys,此后.ssh下面会出现authorized_keys(里面存放着登入这台计算机的公钥)
    e) 然后将第一台机器的.ssh目录下面的authorized_keys文件拷贝到第二台计算机的.ssh目录下,如:scp authorized_keys hadoop@slave1.hadoop:~/.ssh/
    f) 然后将第一台机器的.ssh目录下面的authorized_keys文件拷贝到第二台计算机的.ssh目录下,如:scp authorized_keys hadoop@slave2.hadoop:~/.ssh/
    g) 在集群的最后一台计算机执行完添加后,生成的authorized_keys文件就包含集群中所有计算机的公钥,如果以后还有机器加进到集群中来,可以直接添加到文件-authorized_keys。最后,将最后生成的authorized_keys复制到集群中的每一台计算机的.ssh目录下,覆盖掉之前的authorized_keys。
    h) 完成以上步骤后,就可以再集群上任意一台计算机上,免密码ssh登入其他计算机了。

Hadoop单机和伪分布式环境配置

  1. 解压安装Java JDK,为了方便配置,这里JDK统一安装在/usr/local目录下
    a) 在/usr/local 下使用命令 sudo tar –zxvf jdk-8u121-linux-x64.tar.gz将JDK压缩包解压到/usr/local目录下,这是你会看到/usr/local目录下多出一个jdk1.8.0_121/文件夹
    b) 配置java环境变量,使用命令vim /etc/profile 在全局的环境变量配置文件中添加JDK的路径
    (配置完成后保存退出,使用命令source /etc/profile是环境变量生效)
  2. 解压安装hadoop,为了方便配置,hadoop统一安装在/usr/local目录下
    a) 在/usr/local 下使用命令 sudo tar –zxvf hadoop-2.7.3.tar.gz将JDK压缩包解压到/usr/local目录下,这是你会看到/usr/local目录下多出一个hadoop-2.7.3/文件夹
    b) 修改hadoop-2.7.3/文件夹的权限,使用命令sudo chown -R Hadoop:Hadoop hadoop-2.7.3/将该文件夹的权限改为hadoop的权限。
    c) 为了方便访问,给hadoop-2.7.3/文件夹创建一个软链接,使用命令sudo ln –s hadoop-2.7.3/ hadoop这样以后就可以直接使用hadoop进入到hadoop-2.7.3/文件夹。
    d) 配置hadoop环境变量,使用命令vim /etc/profile在全局环境配置文件中添加hadoop的文件路径
    (配置完成后保存退出,使用命令source /etc/profile是环境变量生效)
    e) 配置hadoop运行环境,使用命令 cd /usr/local/hadoop/etc/hadoop进入hadoop的配置文件目录,修改hadoop-env.sh添加Java JDK的路径,export JAVA_HOME=/usr/local/jdk1.8.0_121
    f) 检查是否配置成功,命令行输入hadoop,显示如下相应内容则说明单机模式的hadoop环境配置成功。
    g) 测试例子程序,我们用hadoop里面自带的cordcount程序测试hadoop单机环境。
    使用命令
    Hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount input out
    h) 至此Hadoop单机模式单间成功
    i) 验证hadoop单机模式是否安装成功,可以直接输入命令hadoop 如果有相应的信息显示则表明安装成功,如果无法找到相应的hadoop则可能是环境变量配置错误
  3. 配置hadoop伪分布式集群:在单机模式配置成功的基础上配置伪分布式只需要修改几个配置文件就可以,这些配置文件都在/usr/local/hadoop/etc/hadoop配置文件目录下,主要需要配置的文件有:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml。
    a) 配置core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master.hadoop:8020/</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/hdfs/hadooptmp</value>
    </property>
    <property>
          <name>hadoop.proxyuser.hadoop.groups</name>
          <value>*</value>
          <description>Allow the superuser oozie to impersonate any members of the group group1 and group2</description>
    </property>
    <property>
          <name>hadoop.proxyuser.hadoop.hosts</name>
          <value>*</value>
          <description>The superuser can connect only from host1 and host2 to impersonate a user</description>
    </property>
</configuration>
b)  配置hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hdfs/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/hdfs/datanode</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.checkpoint.dir</name>
        <value>file:/home/hadoop/hdfs/namesecondary</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>
这里的dfs.replication的值4为后期集群的对应的计算机台数,配置单机伪分布式的时候可以将其改为1即可。注意到在配置hdfs-site.xml的时候指定了三个文件目录:/data/dfs/namenode、/data/dfs/datanode、/data/dfs/namesecondary所以需要创建者三个文件目录,使用mkdir命令即可以创建,同时修改他们的所有者权限。
c)  配置yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
    <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.resourcemanager.hostname</name>
        <value>master.hadoop</value>
    </property>
    <property>  
        <name>yarn.nodemanager.resource.memory-mb</name>  
        <value>20480</value>  
    </property>  
    <property>  
        <name>yarn.scheduler.minimum-allocation-mb</name>  
        <value>2048</value>  
    </property>  
    <property>  
        <name>yarn.nodemanager.local-dirs</name>  
        <value>${hadoop.tmp.dir}/nm-local-dir</value>  
    </property> 
    <property>  
        <name>yarn.resourcemanager.admin.address</name>  
        <value>master.hadoop:8033</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.address</name>  
        <value>master.hadoop:8032</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.resource-tracker.address</name>  
        <value>master.hadoop:8031</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.scheduler.address</name>  
        <value>master.hadoop:8030</value>  
    </property>    
</configuration>
d)  配置mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapred.job.tracker</name>
        <value>hdfs://master.hadoop:8021</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master.hadoop:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master.hadoop:19888</value>
    </property>
    <property>
        <name>mapreduce.tasktracker.map.tasks.maximum</name>
        <value>10</value>
    </property> 
    <property>
        <name>mapreduce.tasktracker.reduce.tasks.maximum</name>
        <value>4</value>
    </property>
</configuration>
e)  自此,hadoop伪分布式环境已经搭建完成,同样可以使用测试用例进行测试。

分布式Hadoop环境配置
构造分布式hadoop集群,只需要将第一步的各种配置文件在每台计算机上做相同的配置,所不同的就是hdfs-site.xml配置文件的dfs.replication值修改问相应的计算机数量。同时需要配置/usr/local/hadoop/etc/hadoop文件夹下的slaves文件,在slaves文件里配置好每台计算机的主机名就可以了。
到这里,hadoop集群就已经差不多配置完成。在使用hadoop集群前,首先格式化一次集群。然后启动集群start-all.sh将集群的所有服务启动,使用jps命令可以查看到相应的进程,使用浏览器可以访问http://master.hadoop:50070/可以查看hadoo集群的web页面。同样可以使用测试用例验证集群是否搭建成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值