大数据管理技术 | 一些遇到的错误

一些遇到的错误

hbase

  1. gedit ~/.bashrc时显示

    Unable to init server: Could not connect: Connection refused
    
    (gedit:4223): Gtk-WARNING **: 23:15:04.898: cannot open display:

    原因:进入了ssh/hdfs之类的操作 exit即可

    或者是真的没有权限,参考

  2. 进入hbase shell后输入list显示

    ERROR: Can't get master address from ZooKeeper; znode data == null
    
    Here is some help for this command:
    List all user tables in hbase. Optional regular expression parameter could
    be used to filter the output. Examples:
    
      hbase> list
      hbase> list 'abc.*'
      hbase> list 'ns:abc.*'
      hbase> list 'ns:.*'
    
    
    hbase(main):002:0> hbase> list
    NameError: undefined local variable or method `hbase' for #<Object:0x66deec87>
  3. ./bin/hive --service hiveserver2 --hiveconf报错缺少参数

    原因:应该是三行一起输入:

    ./bin/hive --service hiveserver2 --hiveconf hive.server2.thrift.port=10000 --hiveconf hive.root.logger=INFO,console
  4. 在./bin/beeline -u jdbc:hive2://localhost:10000时总是显示没有成功连接

    原因是在之前设置hadoop的core-site.xml时没有把助教的alice修改成我的lz…

  5. fs -ls: ls: `.’: No such file or directory

    hadoop fs -ls 命令的完整语法是:hadoop fs -ls [path]

    默认情况下当你未指定[path] 时,hadoop会在HDFS里面将路径扩展为/home/[username];这样的话[username]就会被执行命令的Linux用户名替代。因此,当执行此命令时,hadoop fs -ls ,你看到的报错,ls: '.'no suck file or directory ,因为Hadoop正在寻找这路径/home/longting(Linux用户名),但是这条路径在HDFS中不存在。

    所以可以:fs -ls /

    这样,你就明确指定了[path]并且是HDFS的根,它会自定被认为是HDFS的根目录。

spark

在虚拟机上先安装python 再通过python 安装pip3 再通过pip3 -install pyspark

  1. python-pip:直接sudo apt install python3-pip失败,说清华镜像网是18.04.4,而这个要找18.04.3愣是不给装

    解决:将默认全改成中科院的网址,然后通过sudo apt-get update全面更新,更新到了python3

    随后又试了一次

    sudo apt install python3
    sudo apt install python3-pip
    python3 -m pip install --upgrade pip

    记得这次是成功了

  2. pyspark

    血泪史。先是直接

    pip3 install pyspark

    结果两次在99%时显示00:00:01killed。至今don’t know why…。随后根据https://blog.csdn.net/weixin_43762013/article/details/104324549来写的:

    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U pyspark

    然后又显示ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

    在这里插入图片描述

    然后搜了发现是setuptools的事儿,于是:

    sudo pip3 install --upgrade setuptools

    但是又显示一长串报错,最后一条是ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org’, port=443): Read timed out.

    在这里插入图片描述

    于是根据之前那个网站写了

    pip3 --default-timeout=100

    安装成功后再次尝试

    pip3 install i https://pypi.tuna.tsinghua.edu.cn/simple pip -U pyspark

    但是注意,这里我错将-i写成了i,所以报错ERROR: Cannot determine archive format of /tmp/pip-req-build-cx9wwcsg

    然后又试了一遍

    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U pyspark

    仍然是说python setup.py egg_info Check the logs for full command output.

    在这里插入图片描述

    于是搜索https://blog.csdn.net/qq_35374722/article/details/103319220,写了

    pip3 install --user pytest-runner
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U pyspark

    再次失败,还是显示python setup.py egg_info Check the logs for full command output.

    于是再次尝试了更新setuptools

    sudo pip3 install --upgrade setuptools
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U pyspark

    在这里插入图片描述

    终于成功!!

  3. 运行pyspark

    此时用./bin/pyspark仍然失败

    在这里插入图片描述

    这时候需要改动一下bashrc

    sudo gedit ~/.bashrc

    如https://blog.csdn.net/qq_42881421/article/details/88069211所说在文末添加:

    export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.7-src.zip:$PYTHONPATH
    export PYSPARK_PYTHON=python3

    此时发现我并没有设置SPARK_HOME,于是顺便添加了(这个地址视个人而变)

    export SPARK_HOME=/usr/local/spark/spark-3.0.0-bin-hadoop2.7

    然后在每次运行pyspark时还需要在终端(也就是cmd shell里写:)

    export PYSPARK_PYTHON=python3

    此时再切换到目录下,./bin/pyspark

    在这里插入图片描述

    终于成功大功告成

pyspark

  1. 运行时显示name sc is not defined

    在py文件前面加:(地址是你的spark下面python的绝对地址)

    import sys
    sys.path.append("/usr/local/spark/spark-3.0.0-bin-hadoop2.7/python")
    import pyspark
    spark = pyspark.sql.SparkSession.builder.appName("SimpleApp").getOrCreate()
    sc = spark.sparkContext
  2. fail connection

    在这里插入图片描述

    需要开启hadoop

  3. Input path does not exist: hdfs://localhost:9000/user/lz/train_mllib.data

    需要将文件上传到hadoop空间

    hdfs dfs -mkdir hdfs://localhost:9000/user/lz
    hdfs dfs -put ./train_mllib.data hdfs://localhost:9000/user/lz/train_mllib.data
  4. 在上传时显示

    File /user/lz/train_mllib.data._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1).  There are 0 datanode(s) running and no node(s) are excluded in this operation.

    搜索到解决方法:https://blog.csdn.net/wanghai__/article/details/5744158?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase

    关闭所有运行;格式化namenode;重新开启;上传

    在这里插入图片描述

  5. 还是有问题 最终选择绕开hdfs空间的问题

    将py里改成"file:///usr/local/…/Titanic/train_mllib.data",这样就是本地路径而不是hadoop口空间的hdfs://路径了,终于成功了

    在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值