最折腾的步骤是在hadoop的安装,我尝试安装了4次,前两次直接用brew install hadoop+其他博客上的安装教程,后面两次直接按照hadoop官网说的安,第三次是因为我安装在/usr/local下面遇到了用户权限的问题才又重新安装了一遍。所以说按照hadoop官网安装是最保险的。下面的介绍都是基于hadoop官网的教程,需要配合官网教程食用~
- 设备:macOS+java版本–jdk1.8.0_171.jdk
- 参考链接:
hadoop 官方安装教程 - 简要的官方安装过程介绍-官网上那些详细的介绍在这里就不赘述了
hadoop3.x 安装
- 下载+解压
在 http://www.apache.org/dyn/closer.cgi/hadoop/common/ 选择一个合适的版本下载,我下的是hadoop-3.2.0,解压到你想放的文件夹下面,我是在/user/***以下的文件夹下面。访达右键前往文件夹输入路径就可以打开这个文件夹啦。
- 按照官网教程在etc/hadoop/hadoop-env.sh添加参数
赠送 java安装路径查询-终端输入以下代码
/usr/libexec/java_home
- cd到hadoop文件夹下面命令行输入
bin/hadoop
官网提供了3种安装模式我选的是第二种伪分布式。
- 文件配置(官网都有,懒得贴( ̀⌄ ́)) etc/hadoop/core-site.xml
- etc/hadoop/hdfs-site.xml
- 无密登陆ssh
ssh这里还要在系统里打开远程登录,在 系统偏好设置 -> 共享 中,勾选 远程登录,右边选择 所有用户。
验证是否成功,终端输入
ssh localhost
- 格式化文件系统(Format the filesystem)
- 切到hadoop文件夹下面
$ bin/hdfs namenode -format
这里要千万要注意的是只能格式化一次,要是重复格式化的话会导致namenode的cluster id和datanode的cluster id不一致然后你就得去改id,但我改了没有效果所以就删档重来。
- Start NameNode daemon and DataNode daemon(逐渐变懒):
- 切到hadoop文件夹下面,反正要看的你输入的路径有这个sh文件就对了
sbin/start-dfs.sh
到了这里你就能リンクスタート了,后面没有坑,照着官网一步一步走,在Execution的6. Run some of the examples provided:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+'
记得把2.9.2换成你自己的hadoop版本就可以运行的。
踩坑填坑
- namenode的clusterid和datanode的clusterid不一致如何修改datanode的id
打开hadoop的logs文件夹-hadoop-***-datanode-bogon.log,寻找id不一致的报错信息,
然后你可以找到一个路径,我是在/tmp/hadoop-***/dfs/,同样访达右键前往文件夹输入/tmp然后再翻一翻就有啦(***代表我的用户名) 把data的那个version里面的clusterid改成跟name下面的clusterid一致;但我尝试过了没反应,可能是我自己哪里又犯错了趴。。 - 如何卸载安装不成功的hadoop
- 删除你解压的那个软件包
- 删除/tmp/hadoop-***这个文件夹
配置环境变量(hadoop3+scala+spark)
打开.bash_profile文件,添加
- export HADOOP_HOME=/Users/ironegg/hadoop-3.2.0
- export SCALA_HOME=/usr/local/Cellar/scala/scala-2.12.8
- export SPARK_HOME=/Users/ironegg/spark
- export PYSPARK_PYTHON=python3
- export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin
配置环境变量的时候不要抄!!记得对照你自己的文件路径!!
叮~成功的~
scala安装
直接brew install scala
spark安装
官网 http://spark.apache.org/downloads.html
我安装的是spark-2.4.0-bin-hadoop2.7.tar,解压后把他放在跟hadoop同一文件夹中。
环境变量在上面一起配置好了,mac自带了python2所以要添加个pyspark_python的路径(跟上面的环境变量配置一起了),这样pyspark才能基于python3调用。
终端输入spark-shell调出spark
那个WARN NativeCodeLoader:62网上有解决办法可以自行查找虽然我还没去看。