• 大数据学习遇到的坑(长期更新)


      这个学期,我们开始接触大数据,并且开始学习hadoop和hbase。说实话,对于我这个学习能力不是很强的人来说真的是一个挑战,而且虚拟机上的linux系统也是不停的出问题,现在把这些问题总结一下,留个记录。

      首先说明一下,我的是在VMware上安装的Contest6.0,版本不同,操作的方法可能不同。


    1、虚拟机连接不上主机路由

      问题如下:

    java.net.NoRouteToHostException: 没有到主机的路由; For more details see: http://wiki.apache.org/hadoop/NoRouteToHost

      这个问题弄得我很尴尬,这是说明我在启动的时候主机与虚拟机ping值不通,win+Rj进入dosc界面,在虚拟机启动的条件下输入  ping  (你的ip)  ,果然,我ping后丢包率为100%,在网上寻求解决方法,发现大多数都说是因为防火墙的问题,然后我去检查防火墙。

    service iptables stutas   //检查防火墙状态
    
    service iptables stop  //关闭防火墙

      

      显然,并不是防火墙的问题,后来,经过向大佬寻求帮助后,发现了这样一个问题,在我运行jps时,关于我端口的所有变量都没有启动成功,那是不是我IP的问题。随后,终于找到问题所在。

      解决方法:

      ①关闭虚拟机

      ②打开VMware,点击  编辑 --> 虚拟网络编译器 --> 点击更改设置 -->点击还原默认设置  -->  最后将子网IP改成你自己的就可以了

      

      

       ③重启虚拟机,输入命令正常启动

      搞定!


    2、关于进入hbase shell命令后出现的问题

      这个问题出现过好多次。刚开始的时候,当我运行到hbaseshell命令时,就会出现下面这种错误:

    ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

      这句话的意思是说,在运行的时候,你的hmaster并没有启动,然后,例如你在shell命令中使用list命令,就会如下图所示:

      

       一般来说,这种问题的出现一般是出现在集群中,由于zookeeper配置时端口和主机映射不一致而造成的,因此,需要在每个主机上都配置集群的主机映射。

      但是我遇到的这个问题就有点奇葩了,因为我并不是在集群下进行的开发,那就一定不是这种情况了,所以,那就是另外一种情况:因为多台节点的时间不同步,导致节点之间的连接时间超时,这时只需要通过  ntpdate 0.cn.pool.ntp.org  命令使各个节点的时间跟网络时间同步即可。

      同步后,重启hbase,重新运行会出现下面的情况:

    ERROR: Can't get master address from ZooKeeper; znode data == null

       这个问题的出现是因为你的节点长期或多次挂起引起的,你可以多次启动hbase就可以了。

      搞定!


     3、遇到线程启动不够的情况

      在hadoop使用过程中,我们经常会遇到线程启动不一致的情况,对于我的来说,开启hadoop、zookeeper和hbase之后,正常那个情况下是有九个线程启动的,如果启动之后,发现有线程缺少,那一般在启动过程中会出现如下情况,例如下图:

      

      这说明,在启动hadoop时,datanode没有启动,你需要先将他关闭,那么你就需要先将hadoop stop掉,然后重新启动就可以了,任何线程缺少的时候都可以使用这种方法。

      虽然这是一个小问题,但是有时不注意,你会发现自己的程序无法运行,造成很大的困然,所以,要养成每次启动或者使用时,都要先jps查看线程是否都已经启动的好习惯。


    4、配置MapReduce时,出现 An internal error occurred during: “Map/Reduce location status updater”. java.lang.NullPointerException; 

      出现这个问题只要就是在配置过程中没有正确的输入Map/Reduce Master和DFS Master中的Part,这两个值分别位于:usr/local/hadoop/etc/hadoop/hdfs-site.xml和相同目录下的core-site.xml中。并且在系统变量中新建 HADOOP_USER_NAME,内容为你的MapReduce的Location Name。 

      

      如果启动之后,发现没有出现DFS Location,那么右击项目栏空白处,点击刷新就有了。


    5、MapReduce使用过程中,运行程序出现 org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z 

      在使用MapReduce时,我们是用文件上传后会出现这个错误,因此,我们需要下载hadoop.dll,winutils.exe解压到你hadoop下的bin目录中,同时添加到C盘Windows目录下System32中,运行会不报错。


    6、CentOS6安装MySql出现错误(用yum安装mysql-server的时候报错)

    错误情况如下:

    [root@localhost hadoop]# sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
    Preparing...                ########################################### [100%]
        package mysql-community-release-el7-5.noarch is already installed
    [root@localhost hadoop]# yum install mysql-community-server
    已加载插件:fastestmirror, refresh-packagekit, security
    设置安装进程
    Loading mirror speeds from cached hostfile
    解决依赖关系
    --> 执行事务检查
    ---> Package mysql-community-server.x86_64 0:5.6.46-2.el7 will be obsoleting
    --> 处理依赖关系 mysql-community-common(x86-64) = 5.6.46-2.el7,它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    --> 处理依赖关系 mysql-community-client(x86-64) >= 5.6.10,它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    --> 处理依赖关系 systemd,它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    --> 处理依赖关系 systemd,它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    --> 处理依赖关系 libstdc++.so.6(GLIBCXX_3.4.15)(64bit),它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    --> 处理依赖关系 libc.so.6(GLIBC_2.17)(64bit),它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    ---> Package mysql-server.x86_64 0:5.1.73-8.el6_8 will be 取代
    --> 执行事务检查
    ---> Package mysql.x86_64 0:5.1.73-8.el6_8 will be 取代
    ---> Package mysql-community-client.x86_64 0:5.6.46-2.el7 will be obsoleting
    --> 处理依赖关系 mysql-community-libs(x86-64) >= 5.6.10,它被软件包 mysql-community-client-5.6.46-2.el7.x86_64 需要
    --> 处理依赖关系 libc.so.6(GLIBC_2.17)(64bit),它被软件包 mysql-community-client-5.6.46-2.el7.x86_64 需要
    ---> Package mysql-community-common.x86_64 0:5.6.46-2.el7 will be 安装
    ---> Package mysql-community-server.x86_64 0:5.6.46-2.el7 will be obsoleting
    --> 处理依赖关系 systemd,它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    --> 处理依赖关系 systemd,它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    --> 处理依赖关系 libstdc++.so.6(GLIBCXX_3.4.15)(64bit),它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    --> 处理依赖关系 libc.so.6(GLIBC_2.17)(64bit),它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    --> 执行事务检查
    ---> Package mysql-community-client.x86_64 0:5.6.46-2.el7 will be obsoleting
    --> 处理依赖关系 libc.so.6(GLIBC_2.17)(64bit),它被软件包 mysql-community-client-5.6.46-2.el7.x86_64 需要
    ---> Package mysql-community-libs.x86_64 0:5.6.46-2.el7 will be obsoleting
    --> 处理依赖关系 libc.so.6(GLIBC_2.17)(64bit),它被软件包 mysql-community-libs-5.6.46-2.el7.x86_64 需要
    ---> Package mysql-community-server.x86_64 0:5.6.46-2.el7 will be obsoleting
    --> 处理依赖关系 systemd,它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    --> 处理依赖关系 systemd,它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    --> 处理依赖关系 libstdc++.so.6(GLIBCXX_3.4.15)(64bit),它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    --> 处理依赖关系 libc.so.6(GLIBC_2.17)(64bit),它被软件包 mysql-community-server-5.6.46-2.el7.x86_64 需要
    ---> Package mysql-libs.x86_64 0:5.1.73-8.el6_8 will be 取代
    --> 处理依赖关系 libmysqlclient.so.16()(64bit),它被软件包 2:postfix-2.6.6-8.el6.x86_64 需要
    --> 处理依赖关系 libmysqlclient.so.16()(64bit),它被软件包 redland-1.0.7-11.el6.x86_64 需要
    --> 处理依赖关系 libmysqlclient.so.16()(64bit),它被软件包 perl-DBD-MySQL-4.013-3.el6.x86_64 需要
    --> 处理依赖关系 libmysqlclient.so.16(libmysqlclient_16)(64bit),它被软件包 2:postfix-2.6.6-8.el6.x86_64 需要
    --> 处理依赖关系 libmysqlclient.so.16(libmysqlclient_16)(64bit),它被软件包 redland-1.0.7-11.el6.x86_64 需要
    --> 处理依赖关系 libmysqlclient.so.16(libmysqlclient_16)(64bit),它被软件包 perl-DBD-MySQL-4.013-3.el6.x86_64 需要
    --> 处理依赖关系 libmysqlclient_r.so.16()(64bit),它被软件包 1:qt-mysql-4.6.2-28.el6_5.x86_64 需要
    --> 处理依赖关系 libmysqlclient_r.so.16(libmysqlclient_16)(64bit),它被软件包 1:qt-mysql-4.6.2-28.el6_5.x86_64 需要
    --> 完成依赖关系计算
    错误:Package: perl-DBD-MySQL-4.013-3.el6.x86_64 (@base/$releasever)
              Requires: libmysqlclient.so.16(libmysqlclient_16)(64bit)
              正在删除: mysql-libs-5.1.73-8.el6_8.x86_64 (@base/$releasever)
                  libmysqlclient.so.16(libmysqlclient_16)(64bit)
              Obsoleted By: mysql-community-libs-5.6.46-2.el7.x86_64 (mysql56-community)
                  Not found
    错误:Package: mysql-community-client-5.6.46-2.el7.x86_64 (mysql56-community)
              Requires: libc.so.6(GLIBC_2.17)(64bit)
    错误:Package: mysql-community-server-5.6.46-2.el7.x86_64 (mysql56-community)
              Requires: libc.so.6(GLIBC_2.17)(64bit)
    错误:Package: mysql-community-server-5.6.46-2.el7.x86_64 (mysql56-community)
              Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
    错误:Package: 2:postfix-2.6.6-8.el6.x86_64 (@base/$releasever)
              Requires: libmysqlclient.so.16()(64bit)
              正在删除: mysql-libs-5.1.73-8.el6_8.x86_64 (@base/$releasever)
                  libmysqlclient.so.16()(64bit)
              Obsoleted By: mysql-community-libs-5.6.46-2.el7.x86_64 (mysql56-community)
                  Not found
    错误:Package: redland-1.0.7-11.el6.x86_64 (@base/$releasever)
              Requires: libmysqlclient.so.16(libmysqlclient_16)(64bit)
              正在删除: mysql-libs-5.1.73-8.el6_8.x86_64 (@base/$releasever)
                  libmysqlclient.so.16(libmysqlclient_16)(64bit)
              Obsoleted By: mysql-community-libs-5.6.46-2.el7.x86_64 (mysql56-community)
                  Not found
    错误:Package: 1:qt-mysql-4.6.2-28.el6_5.x86_64 (@base/$releasever)
              Requires: libmysqlclient_r.so.16(libmysqlclient_16)(64bit)
              正在删除: mysql-libs-5.1.73-8.el6_8.x86_64 (@base/$releasever)
                  libmysqlclient_r.so.16(libmysqlclient_16)(64bit)
              Obsoleted By: mysql-community-libs-5.6.46-2.el7.x86_64 (mysql56-community)
                  Not found
    错误:Package: 1:qt-mysql-4.6.2-28.el6_5.x86_64 (@base/$releasever)
              Requires: libmysqlclient_r.so.16()(64bit)
              正在删除: mysql-libs-5.1.73-8.el6_8.x86_64 (@base/$releasever)
                  libmysqlclient_r.so.16()(64bit)
              Obsoleted By: mysql-community-libs-5.6.46-2.el7.x86_64 (mysql56-community)
                  Not found
    错误:Package: 2:postfix-2.6.6-8.el6.x86_64 (@base/$releasever)
              Requires: libmysqlclient.so.16(libmysqlclient_16)(64bit)
              正在删除: mysql-libs-5.1.73-8.el6_8.x86_64 (@base/$releasever)
                  libmysqlclient.so.16(libmysqlclient_16)(64bit)
              Obsoleted By: mysql-community-libs-5.6.46-2.el7.x86_64 (mysql56-community)
                  Not found
    错误:Package: redland-1.0.7-11.el6.x86_64 (@base/$releasever)
              Requires: libmysqlclient.so.16()(64bit)
              正在删除: mysql-libs-5.1.73-8.el6_8.x86_64 (@base/$releasever)
                  libmysqlclient.so.16()(64bit)
              Obsoleted By: mysql-community-libs-5.6.46-2.el7.x86_64 (mysql56-community)
                  Not found
    错误:Package: mysql-community-server-5.6.46-2.el7.x86_64 (mysql56-community)
              Requires: systemd
    错误:Package: mysql-community-libs-5.6.46-2.el7.x86_64 (mysql56-community)
              Requires: libc.so.6(GLIBC_2.17)(64bit)
    错误:Package: perl-DBD-MySQL-4.013-3.el6.x86_64 (@base/$releasever)
              Requires: libmysqlclient.so.16()(64bit)
              正在删除: mysql-libs-5.1.73-8.el6_8.x86_64 (@base/$releasever)
                  libmysqlclient.so.16()(64bit)
              Obsoleted By: mysql-community-libs-5.6.46-2.el7.x86_64 (mysql56-community)
                  Not found
     You could try using --skip-broken to work around the problem
     You could try running: rpm -Va --nofiles --nodigest
    错误日志

    解决方法:

    1)首先进到/etc/yum.repos.d目录,然后编辑mysql-community.repo 文件,将enabled设置为0,如下面所示:

     

     

     2)保存退出后重新安装即可。

    如果在重新安装时出现新的错误:

    yum install mysql-community-server
    已加载插件:fastestmirror
    设置安装进程
    Loading mirror speeds from cached hostfile
    * base: mirrors.aliyun.com
    * epel: mirror.pregi.net
    * extras: mirrors.aliyun.com
    * updates: mirrors.aliyun.com
    No package mysql-community-server available.
    错误:无须任何处理

    可以按照以下命令重新安装:

    yum remove mysql mysql-server mysql-libs compat-mysql51

    详情参照这个博客:CentOS6.8下完全干净卸载mysql

    附:CentOS下MySQL数据库的安装


      

  • 相关阅读:
    python正则去掉html标签里的css内容
    elasticsearch scroll
    js控制滚动条自动往下滑动
    Pandas导出Excel的时候出现openpyxl.utils.exceptions.IllegalCharacterError异常问题
    C# 动态构建表达式树(二)——构建 Select 和 GroupBy 的表达式
    C# 动态构建表达式树(一)—— 构建 Where 的 Lambda 表达式
    C# 中 async 和 await 的基本使用
    C# 中 AppDomain 的一些理解
    win10家庭版 无法修改hosts文件
    我的第一个Scala程序
  • 原文地址:https://www.cnblogs.com/yandashan666/p/11646870.html
Copyright © 2020-2023  润新知