一些遇到的错误
hbase
-
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即可
或者是真的没有权限,参考
-
进入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>
-
./bin/hive --service hiveserver2 --hiveconf报错缺少参数
原因:应该是三行一起输入:
./bin/hive --service hiveserver2 --hiveconf hive.server2.thrift.port=10000 --hiveconf hive.root.logger=INFO,console
-
在./bin/beeline -u jdbc:hive2://localhost:10000时总是显示没有成功连接
原因是在之前设置hadoop的core-site.xml时没有把助教的alice修改成我的lz…
-
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
-
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
记得这次是成功了
-
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
终于成功!!
-
运行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
-
运行时显示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
-
fail connection
需要开启hadoop
-
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
-
在上传时显示
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;重新开启;上传
-
还是有问题 最终选择绕开hdfs空间的问题
将py里改成"file:///usr/local/…/Titanic/train_mllib.data",这样就是本地路径而不是hadoop口空间的hdfs://路径了,终于成功了