mac下Hadoop、HDFS、Spark环境的安装和搭建

本文详述了在Mac系统中如何搭建Hadoop和Spark环境,包括使用brew安装软件、配置SSH、修改环境变量、启动与关闭服务等步骤,并解决了在配置过程中遇到的权限和连接问题。此外,还介绍了安装Scala的过程。
摘要由CSDN通过智能技术生成

环境搭建

相比之前搭建Hadoop环境的Windows系统的相对繁琐步骤,Mac下显得简单不少。
虽然我们需要搭建的是Spark环境,但是因为Spark依赖了Hadoop的HDFS以及YARN计算框架,当然还有类似软件包管理软件。

安装前必备

操作系统:Mac OS X
JDK:1.8.0_121
命令终端:iTerm2(Mac自带的命令终端也一样,只是配置环境参数需要到~/.bash_profile下添加,对于iTerm2需要到~/.zshrc中添加)
软件包管理工具:brew(能够方便的安装和卸载软件,使用brew cash还可以安装图形化的软件,类似于Ubuntu下的apt-get以及前端里的npm


安装Hadoop

上面步骤和条件如果都具备的话,就可以安装Hadoop了,这也是我唯一遇到坑的地方。

1. 配置ssh

配置ssh就是为了能够实现免密登录,这样方便远程管理Hadoop并无需登录密码在Hadoop集群上共享文件资源。
如果你的机子没有配置ssh的话,在命令终端输入ssh localhost是需要输入你的电脑登录密码的。配置好ssh后,就无需输入密码了。
第一步就是在终端执行ssh-keygen -t rsa -P '',之后一路enter键,当然如果你之前已经执行过这样的语句,那过程中会提示是否要覆盖原有的key,输入y即可。
第二步执行语句cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys用于授权你的公钥到本地可以无需密码实现登录。
理论上这时候,你在终端输入ssh lcoalhost就能够免密登录了。

但是,我在这里遇到了个问题,折腾了我蛮久。当我执行cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys的时候,总是出现如下警告zsh: permission denied: /Users/jackie/.ssh/authorized_keys
显然这是权限问题,我直接为ssh目录赋予777740700都无效,还是报同样的错。于是查了下资料在这里看到了解决方案。
设置authorized_keys权限——$ chmod 600 authorized_keys
设置.ssh目录权限——$ chmod 700 -R .ssh
参考资料给出的解释是:文件和目录的权限千万别设置成chmod 777.这个权限太大了,不安全,数字签名也不支持--!。

 如果是别人电脑ssh到我的电脑,那么除了要把自己的私钥复制给别人,还需要执行cat id_rsa.pub >> authorized_keys命令才行。

 生成ssh后,使用 ssh localhost 来测试 ssh 是否成功。给出提醒如下:

ssh: connect to host localhost port 22: Connection refused

这是因为mac电脑的共享配置未打开,在System preferences ->Sharing中打开如下配置:

 

此时再次使用 ssh localhost 命令来测试返回 Last login: Mon Mar 21 09:58:12 2016,表明已经成功。

可以看看 在Mac下安装Hadoop的坑

 


2. 下载安装Hadoop

这时候brew的好处就体现出来了,你无需到Hadoop官网去找下载链接,只要在命令终端输入brew install hadoop等命令执行完,你就可以看到在/usr/lcoal/Cellar目录下就有了hadoop目录,表示安装成功。(当然命令执行过程中会因为网络或其他原因中断,这时候你只需要重新执行一次brew install hadoop即可)


3. 配置Hadoop

3.1 进入安装目录/usr/local/Cellar/hadoop/2.8.0/libexec/etc/hadoop,找到并打开hadoop-env.sh文件,将
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"
改为

 
  1. export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="

  2. export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home"

(java_home请写上你本机上jdk安装的位置)


3.2 配置hdfs地址和端口
进入目录/usr/local/Cellar/hadoop/2.8.0/libexec/etc/hadoop,打开core-site.xml<configuration></configuration>替换为

 
  1. <configuration>

  2. <property>

  3. <name>hadoop.tmp.dir</name>

  4. <value>/usr/local/Cellar/hadoop/hdfs/tmp</value>

  5. <description>A base for other temporary directories.</description>

  6. </property>

  7. <property>

  8. <name>fs.default.name</name>

  9. <value>hdfs://localhost:8020</value>

  10. </property>

  11. </configuration>


3.3 配置mapreduce中jobtracker的地址和端口
在相同的目录下,你可以看到一个mapred-site.xml.template首先将文件重命名为mapred-site.xml,同样将<configuration></configuration>替换为

 
  1. <configuration>

  2. <property>

  3. <name>mapred.job.tracker</name>

  4. <value>localhost:8021</value>

  5. </property>

  6. </configuration>


3.4 修改hdfs备份数
相同目录下,打开hdfs-site.xml加上

 
  1. <configuration>

  2. <property>

  3. <name>dfs.replication</name>

  4. <value>1</value>

  5. </property>

  6. </configuration>


4. 格式化HDFS

这个操作相当于一个文件系统的初始化,执行命令hdfs namenode -format
在终端最终会显示成功

 
  1. 17/05/06 15:51:29 INFO namenode.FSImageFormatProtobuf: Saving image file /usr/local/Cellar/hadoop/hdfs/tmp/dfs/name/current/fsimage.ckpt_0000000000000000000 using no compression

  2. 17/05/06 15:51:29 INFO namenode.FSImageFormatProtobuf: Image file /usr/local/Cellar/hadoop/hdfs/tmp/dfs/name/current/fsimage.ckpt_0000000000000000000 of size 322 bytes saved in 0 seconds.

  3. 17/05/06 15:51:29 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0

  4. 17/05/06 15:51:29 INFO util.ExitUtil: Exiting with status 0

  5. 17/05/06 15:51:29 INFO namenode.NameNode: SHUTDOWN_MSG:

  6. /************************************************************

  7. SHUTDOWN_MSG: Shutting down NameNode at jackies-macbook-pro.local/192.168.*.*

  8. ************************************************************/


5. 配置Hadoop环境变量

因为我用的是iTerm2,所以打开~/.zshrc添加

 
  1. export HADOOP_HOME=/usr/local/Cellar/hadoop/2.8.0

  2. export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

再执行source ~/.zhsrac以确保配置生效
配置这个是方便在任意目录下全局开启关闭hadoop相关服务,而不需要到/usr/local/Cellar/hadoop/2.8.0/sbin下执行。


6. 启动关闭Hadoop服务

启动/关闭HDSF服务

 
  1. ./start-dfs.sh

  2. ./stop-dfs.sh

启动成功后,我们在浏览器中输入http://localhost:50070可以看到

启动/关闭YARN服务

 
  1. ./start-yarn.sh

  2. ./stop-yarn.sh

启动成功后,我们在浏览器中输入http://localhost:8088可以看到

启动/关闭Hadoop服务(等效上面两个)

 
  1. ./start-all.sh

  2. ./stop-all.sh

注意,如果从别人电脑往我的电脑里传文件,出现connection refused提示。则可能需要把电脑的hosts文件中的 localhost  127.0.0.1  改为  localhost   0.0.0.0  。

另外,可以通过

 

jps

命令看到当前hadoop启动的节点。

 

 

可以通过

 

hdfs dfs -mkdir -p /input

命令来在 HDFS 文件系统中创建目录。注意这个目录是在HDFS的文件系统中的目录,而不是你电脑上的目录。

 


安装Scala

 

同样的配方,执行brew install scala你就可以拥有Scala。
在终端执行scala -version,如果出现类似Scala code runner version 2.12.2 -- Copyright 2002-2017, LAMP/EPFL and Lightbend, Inc.说明你安装成功了。
同样,不要忘了配置Scala的环境变量,打开~/.zshrc添加

 
  1. export SCALA_HOME=/usr/local/Cellar/scala/2.12.2

  2. export PATH=$PATH:$SCALA_HOME/bin


安装Spark

有了前面这么多的准备工作,终于可以安装Spark了。也是比较简单,起码我没有遇到坑。
Spark官网下载你需要的Spark版本,注意这里我们看到需要有依赖的Hadoop,而且还让你选择Hadoop的版本。
下载完直接双击压缩包就会解压(建议安装一个解压软件),将其重命名为spark放到/usr/local下面。

毫无例外,我们还需要一个环境参数配置,打开~/.zshrc添加

 
  1. export SPARK_HOME=/usr/local/spark

  2. export PATH=$PATH:$SPARK_HOME/bin

走到这一步,我们终于可以启动spark了,打开终端,输入spark-shell,这时候会看到

妥了!虽然整个安装过程没有遇到什么大坑,但是还是比较耗时间。

在配置Hadoop环境的过程中出现错误:Error:Invalid HADOOP_COMMON_HOME
原因是:没有配置环境变量HADOOP_COMMON_HOME
解决方法:在~/.bash_profile里面配置环境变量HADOOP_COMMON_HOME
HADOOP_COMMON_HOME=$HADOOP_HOME
HADOOP_HOME是配置的Hadoop的安装目录
修改完之后执行:source ~/.bash_profile

这里 借鉴

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值