Mac Homebrew 安装 Hadoop

一、安装 Java 和 Hadoop

brew install Java
brew install Hadoop

java -version 和 hadoop version 来查看安装版本及测试正常(PS:Java 和 Hadoop 的环境变量无需变动)

二、配置SSH(免密登录)

因为安装hadoop需要远程登入的功能,所以需要安装ssh工具,但Mac下自带ssh,所以不需要安装ssh。
首先在系统里打开远程登录,位置在 System Preferences -> Sharing 中,左边勾选 Remote Login ,右边选择 Only there users,并添加当前用户。
方法一:打开Terminal输入 ssh localhost,输入 yes 然后输入密码确认后,看到 Last login: 字样为ssh成功。
方法二:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 生成公钥和私钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 将公钥追加到文件
chmod 0600 ~/.ssh/authorized_keys # 修改相关权限

ssh localhost用来测试

三、修改配置文件

/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop 主要都在这个目录下

  1. hadoop-env.sh
    PS:亲测无需修改 JAVA_HOME 和 HADOOP_HOME等变量(有如有问题可以修改测试,直接设置 JAVA_HOME 的路径,不要用$JAVA_HOME 代替,因为 Hadoop 对系统变量的支持不是很好)。
    查看Java安装路径:

/usr/libexec/java_home

vim hadoop-env.sh

找到 # export JAVA_HOME= ,改参数如下:

export JAVA_HOME={your java home directory}

把 {your java home directory} 改成你上面查到的 Java 路径,记得去掉注释 # 。比如 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home 。

同理修改下面两个参数:

export HADOOP_HOME=/usr/local/Cellar/hadoop/3.1.1/libexec

根目录应该不是 /usr/local/Cellar/hadoop/3.1.1 ,可通过 hadoop version 来测试

export HADOOP_CONF_DIR=/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop

  1. core-site.xml
    设置 Hadoop 的临时目录和文件系统,localhost:9000 表示本地主机。如果使用远程主机,要用相应的 IP 地址来代替,填写远程主机的域名,则需要到 /etc/hosts 文件去做 DNS 映射。

<configuration>

<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value> #可自行修改
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

fs.default.name 保存了NameNode的位置,HDFS和MapReduce组件都需要用到它,这就是它出现在core-site.xml 文件中而不是 hdfs-site.xml文件中的原因,在该处配置HDFS的地址和端口号。

  1. hdfs-site.xml
    注意 name 和 data 的路径都要替换成本地的路径:

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/name</value> #可自行修改
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/data</value> #可自行修改
</property>
</configuration>

变量dfs.replication指定了每个HDFS默认备份方式通常为3, 由于我们只有一台主机和一个伪分布式模式的DataNode,将此值修改为1。

  1. mapred-site.xml
    将 yarn 设置成数据处理框架:

<configuration>

<property>

<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

  1. yarn-site.xml
    配置数据的处理框架 yarn:

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:9000</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>

四、运行

接下来用到的命令,如 hadoop、hdfs、start-all.sh、stop-all.sh 等,都已经配置到环境变量里了,所以直接使用即可。(查看位置:切换到 /usr/local/Cellar/hadoop/3.1.1//usr/local/Cellar/hadoop/3.1.1/libexec/,执行根目录下 bin 或 sbin 下的文件时,实际上执行的是 libexec/bin或 libexec/sbin 下的文件,查看脚本内容即可发现)。
1.格式化文档系统:hadoop namenode -formathdfs namenode -format
2.启动 NameNode 和 DataNode:

start-dfs.sh

现在可以看到 Overview 界面了,NameNode 和 DataNode - http://localhost:9870
PS:Hadoop3.0中namenode的默认端口配置发生变化:从50070改为9870
3.启动 ResourceManager 和 NodeManager:

start-yarn.sh

现在可以看到 All Applications 界面:
ResourceManager – http://localhost:8088
NodeManager – http://localhost:8042

在 Terminal执行jps测试。

直接执行 start-all.sh 等同于同时执行 start-dfs.sh 和 start-yarn.sh。退出时执行 stop-all.sh,或者:stop-yarn.sh 和 stop-dfs.sh。

五、WARN(可忽略)

在log中会显示警告 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable的提醒,是关于 Hadoop 本地库的, Hadoop本地库是为了提高效率或者某些不能用Java实现的功能组件库。

六、基本操作

Hadoop 的安装启动就完成啦!接下来就可以通过一些 shell 命令来操作 Hadoop 下的文件了,例如:

hadoop fs -ls /        #查看根目录下的文件及文件夹
hadoop fs -mkdir -p /data #在根目录下创建一个文件夹data(这个路径是虚拟的,随便填写,并不会在本机看到,可通过页面你控制台中 Utilities -> browse the file system 查看) PS: 2.x之后的版本命令需要加参数 -p
hdfs dfs -put /root/data /data #上传本地目录文件到hadoop目录
hdfs dfs -copyFromLocal /root/data/person.txt /data #copy本地文件到hadoop目录
hadoop fs -rm /.../... #移除某个文件
hadoop fs -rm -r /... #及联删除文件夹

七、常见错误

1.datanode没启动
建议直接把文件name 和 data下的文件删了,然后重启hadoop。查看链接:https://blog.csdn.net/ludonqin/article/details/51396187

参考链接:
Mac 安装 Hadoop 3.x
【干货】简单三步在Mac上安装Hadoop
Mac OS X 上搭建 Hadoop 开发环境指南
Mac下使用homebrew安装Hadoop-3.1.1记录
【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容