大数据(一):Hadoop的安装与本地模式、伪分布式模式、完全分布式模式配置

一、大数据的四个v特征

  1. volume 体量大

  2. variety 样式多

  3. velocity 速度快

  4. valueless 价值密度低

二、Hadoop四个模块

  1. common

  2. hdfs:包括的进程nameNode+dataNode+secondaryNameNode

  1. hadoop yarn:包括的进程resourceManager+nodeManager

  2. hadoop mapreduce(mr)

三、安装hadoop

  1. 安装hadoop需要安装jdk

  2. 下载hadoop-3.1.1.tar.gz

  3. 解压 tar -xzvf hadoop-3.1.1.tar.gz

  4. 将解压出来的文件移动到/usr/loacl下 mv ~/downloads/hadopp-3.1.1 /usr/local/

  5. 创建符号链接 ln -s /usr/local/hadopp-3.1.1 /usr/local/hadoop

  6. 配置hadoop环境变量 ,在profile文件最下面添加

    1. vim /etc/profile

    2. export HADOOP_HOME=/usr/local/hadoop

    3. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

  7. 使环境变量生效 source /etc/profile

  8. 验证安装是否正确hadoop version

四、配置hadoop

  • 本地模式

    • 安装好之后就是本地模式

    • 本地模式中hdfs就是本地操作系统的文件系统,不会启动独立的进程

    • 使用hdfs dfs -ls / 可以查看文件系统目录

    • 适合开发和调试的时候使用

  • 伪分布模式

    • 进入hadoop目录下的/etc/hadoop文件夹

    • 编辑core-site.xml文件

<?xml version="1.0">
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost/</value>
    </property>
</configuration>
  • 编辑hdfs-site.xml

<?xml version="1.0">
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
  • 编辑mapred-site.xml

    • 先复制它的模板文件 cp mapred-site.xml.template mapred-site.xml(有的版本没有这个文件)

<?xml version="1.0">
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
  • 编辑yarn-site.xml

<?xml version="1.0">
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>localhost</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
  • 配置ssh(安全远程连接)

    • 查看是否已经安装ssh

      • yum list installed|grep ssh

    • 检查是否启动了ssh 

      • ps -Af|grep sshd

    • 在ssh的client端生成秘钥 这时~/.ssh/id_rsa文件夹下就会生成两个文件id_rsa(私钥)和id_rsa.pub(公钥)

      • ssk-keygen -t rsa -p '' -f ~/.ssh/id_rsa

    • 追加公钥到~/.ssh/authorized_keys文件中(文件名位置固定)

      • cd ~/.ssh

      • cat id_rsa.pub>>authorized_keys

    • 修改authorized_keys为644 

      • chmod 644 authorized_keys

    • 验证是否成功(由于是伪分布式所以直接使 用localho st就可以了)

      • ssh localhost(第一次需要输入密码)

  • 对hdfs进行格式化(相当于初始化)

    • hadoop namenode -format

  • 启动hadoop所有的进程(进入hadoop下的sbin目录)

    • start-all.sh

    • 如果出现Attempting to operate on hdfs namenode as root问题

    • 将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
  • 还有,start-yarn.sh,stop-yarn.sh顶部也需添加

#!/usr/bin/env bash 
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
    • 如果出现hadoop找不到jdk的情况

      • 编写hadoop目录下/etc/hadoop/hadoop_env.sh文件

      • 找到export JAVA_HOME=修改成对相应的java路径

    • 使用jps命令查看下进程

    • 查看hdfs文件系统

      • hdfs dfs -ls /

    • 创建目录

      • hdfs dfs -mkdir -p /user/root/hadoop

  • 完全分布式

    • 准备4个虚拟机,分别部署namenode、dataNode1、dataNode2、dataNode3,模拟容灾一个数据将会备份3份,namenode相当于管理员 存放数据目录

    • 修改主机名,分别将主机名修改成对应功能

      • vim /etc/hostname

    • 修改host文件,将主机ip对应上功能

      • vim /etc/host

    • 重启网络服务

      • service network restart

    • 生产ssh文件

      • 在namenode主机上生成公私秘钥,并添加到授权中

        • ssh-keygen -t rsa -p '' -f ~/.ssh/id_rsa

      • 将公钥放到datanode1-3的授权中,通过远程拷贝到/home/.ssh/authorized_keys中

        • scp id_rsa.pub 用户名@目标主机名:/home/.ssh/authorized_keys

    • 分别安装java和hadoop

    • 配置hadoop

      • 编辑core-site.xml文件

<?xml version="1.0">
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode/</value>
    </property>
</configuration>
  • 编辑hdfs-site.xml

<?xml version="1.0">
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>
  • 编辑mapred-site.xml

<?xml version="1.0">
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
  • 编辑yarn-site.xml

<?xml version="1.0">
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>namenode</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
  • 编辑slaves文件(新版本中叫 workers),清空并将datanode的主机名写入

  • 编辑hadoop-env.sh  添加JAVA_HOME

  • 分发配置到datanode

    • 进入hadoop的目录下

    • scp -r /etc用户名@目标主机名:/hadoop目录/

  • 清空临时文件,在/tmp文件夹下有个hadoop-用户名开头的文件删除掉(有可能不存在)

    • rm -rf  /tmp/hadoop-centos

  • 删除hadoop日志 ,在hadoop目录下的logs文件夹里

  • 在namenode中启动hadoop,datanode自动启动

猜你喜欢

转载自blog.csdn.net/qq_34886352/article/details/82017056