IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    云服务器的伪分布hadoop

    sma发表于 2020-04-12 00:00:00
    love 0

    我希望自己能够有足够的运气和足够的勇气去见到命运里更多的不同的风。也期待在未来的日子里,能够被这些涌动的气流雕刻成不一样的山川与河流。 --《见风》

    厦门大学数据库实验室网站提供了阿里云构建大数据环境的详细流程,从服务器的配置到ubuntu的配置到大数据环境的搭建

    详情见dblab.xmu.edu

    一、安装jdk

    下载jdk

    直接wget下载到服务器

    wget https://repo.huaweicloud.com/java/jdk/8u191-b12/jdk-8u191-linux-x64.tar.gz

    或者自行下载上传

    点击这里下载

    官网下载

    上传到/home下,解压缩

    
    tar -zxvf /home/jdk-8u191-linux-x64.tar.gz -C /usr/local/
    

    将Java添加至环境变量

    vim /etc/profile
    添加如下:
    export JAVA_HOME=/usr/local/jdk1.8.0_191
    export PATH=$PATH:$JAVA_HOME/bin
    
    source /etc/profile 生效
    java -version 检测一下
    systemctl status firewalld 检查下防火墙状态
    (如果为active状态,执行
    systemctl stop firewalld
    systemctl disable firewalld)

    二 、环境配置

    修改hostname

    vim /etc/hostname
    修改为hadoop
    hostnamectl set-hostname hadoop 立即生效

    修改映射关系

    vim /etc/hosts
    
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    172.19.199.187 hadoop

    注意:172.19.199.187改成你的私网ip!!!(私网ip阿里云控制台上有显示)

    创建用户hadoop

    adduser hadoop 创建用户
    passwd hadoop 修改密码
    
    给hadoop用户root权限
    vim /etc/sudoers
    添加一行
    hadoop ALL=(root) NOPASSWD:ALL

    设置ssh

    生成密钥
    ssh-keygen -t rsa -P "" 
    将密钥写入ssh中,这样在本地启动时,就可以避免输入密码
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    三、Hadoop伪分布式环境搭建

    下载hadoop,在/home下执行
    wget https://mirrors.aliyun.com/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
    解压
    tar -zxvf /home/hadoop-2.8.5.tar.gz -C /usr/local/
    改名
    mv hadoop-2.8.5 hadoop
    修改文件权限
    sudo chown -R hadoop:hadoop /usr/local/hadoop

    修改hadoop/etc/hadoop/hadoop-env.sh文件

    export JAVA_HOME=/usr/local/jdk1.8.0_191

    修改hadoop/etc/hadoop/core-site.xml文件

    <configuration>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/usr/local/hadoop/tmp</value>
            <description>Abase for other temporary directories.</description>
        </property>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://172.19.199.187:9000</value>
        </property>
    </configuration>

    注意:172.19.199.187改成你的私网ip!!!(私网ip阿里云控制台上有显示)

    修改etc/hadoop/hdfs-site.xml文件 指定HDFS文件存储的副本数个数,默认是3个,这里是单台机器就设置为1,这个数字要小于datanode的节点数

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
        <!-- 如果是通过公网IP访问阿里云上内网搭建的集群 -->
        <property>
        <name>dfs.client.use.datanode.hostname</name>
        <value>true</value>
        <description>only cofig in clients</description>
        </property>
    </configuration>

    修改mapred-site.xml

    cp mapred-site.xml.template mapred-site.xml
    vim mapred-site.xml
    #添加如下
    
    <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
    </property>

    修改yarn-site.xml

    vim yarn-site.xml
    #添加如下
    
    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
            <description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
    </property>

    将hadoop添加至环境变量

    vim /etc/profile
    添加如下:
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    

    source /etc/profile 执行生效

    hdfs namenode -format 格式化
    start-all.sh 启动hdfs
    jps查看
    25827 SecondaryNameNode
    26058 NodeManager
    25563 NameNode
    25967 ResourceManager
    29935 Jps
    25679 DataNode
    

    单机练习也可以不用启动yarn,用sqoop时需要,要不会有权限问题

    四 查看HDFS外部UI界面(阿里云)

    开启服务器外网访问端口----网络和安全-》安全组-》配置规则

    添加安全组规则-》添加端口50070

    访问hdfs-web端口

    http://公网ip:50070

    查看live的datanode

    上传一个文件执行mapreduce-wordcount测试

    上传文件
    hadoop fs -put /lipstick.csv /
    
    执行
    hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /lipstick.csv /output

    阿里云上搭建的hadoop集群,需要配置映射集群经过内网访问,也就是局域网的ip地址。 如果配置为公网IP地址,就会出现集群启动不了,namenode和secondarynamenode启动不了,如果将主机的映射文件配置为内网IP集群就可以正常启动了。但通过eclipse开发工具访问会出错,显示了阿里云内网的ip地址来访问datanode。

    摘录引用:

    https://www.jianshu.com/p/18ded352cf40

    http://dblab.xmu.edu.cn/blog/2022-2/

    https://blog.csdn.net/u010886217/article/details/83479380



沪ICP备19023445号-2号
友情链接