mac 搭建hadoop 集群

说实话 centos 搭建hadoop集群 已经不是一次两次,还是有根底的,但是作为在mac上搭建hadoop还是头一次,万事开头难,自然每次尝试采坑的时候都是比较忐忑。不知道会在哪里摔下,不断的查阅资料 百度google 只是为了 解决搭建中的一个个不能正常运行的坎。
在公司搭建 ,差不多手工一个小时,解决问题七八个小时左右, 中间还带着了解AWS和配置shadowsocket,还有zeppelin 不能正常使用spark,好生绝望。

别的不扯了,回正题,写这个 最重要的还是给自己下次采矿坑的时候,能够不耽误时间,顺利 快速的回到主题业务上,下面我开始介绍 安装的过程大致情况和需要注意的事情。

1.首先自己的mac 安装了 java 8,这个自己下载 dmg格式 傻瓜安装即可,配置好
/etc/profile 中的 JAVA_HOME 和 PATH

难点在于:获得 java 的准确安装路径,使用 whereis java 获得的java 路径其实是个假的,好像是一个类似链接的玩意。 这个需要 智慧,我这次没有费太大力气,因为 我之前有备份 这个,并且通过快捷键 shift + command +G ,输入路径 可视化查找 隐藏路径
2.下载 hadoop,
从 官网下载,我用的2.7.3 这个版本
3.解压 hadoop.tar.gz压缩包 到指定目录
一般我都是安装到 /usr/local 下 ,好像需要 root 权限操作
sudo tar -zxvf hadoop.tar.gz -C /usr/local/

  1. 解压后 重命名一下 hadoop文件夹名称,便于 在 terminal 查找方便
    mv hadoop.2.7.3/ hadoop/
    5.进入 hadoop 文件夹根目录,创建 logs 目录,若无logs ,hadoop的五个守护进程都将无法启动
    mkdir /usr/local/hadoop/logs
    6.创建 namenode datanode tem 目录,若无hadoop的 namenode datanode secondnamenode 都无法启动,但是这三个目录创建地方 有讲究,在mac上暂时只能在
    /usr/local/ 这个目录下,因为mac 有一个傻叉的机制,在其他的目录下 虽然可以手动在terminal总是可以 命令:mkdir 创建,但是在hadoop启动过程中,hadoop是没有权限操作,会提示 不支持操作 或者权限不足的 英文,这个困扰了我两个小时多,大家不要穷折腾,
    sudo mkdir -p /usr/local/nodehadoop/data/namenode sudo mkdir -p /usr/local/nodehadoop/data/datanode sudo mkdir -p /usr/local/nodehadoop/hdfs/hadoop/tmp
    7.如果mac 使用场所固定,也就是ip 公网和内网都不会变动的,需要 将 内网的ip地址设为固定的,只能手动修改。
    设置---网络--高级---TCP/IP--配置ipv4 选第二个 使用DHCP (手动设定地址)
    【需要注意的是,假如 mac 搬家蹭别人家的WiFi 一定要把 这个重新 选第一个 自动获取,否是 你的电脑将无法上网,也可以在新的网络中找到确定准确的新内网ip 再固定下来 变成 手动

8.设置电脑接受 远程登录
设置-共享---左边 remote login 远程登录 打钩 ,右边 选择第一个 允许所有人,否则 当你在尝试使用 本机的root或者其他用户 ,这辈子都登录不上 启动不了hadoop
报错会提示 缺少权限 permission deny 或者无法访问,密码错误
9.设置主机名 /etc/hosts
已经拿到 本机的内网 ip地址 v4 后, 就要为这个ip 设置主机名,方便浏览器 地址栏访问。其实主要就是一个映射问题,比如 :
192.168.31.126 mullerhadoop
10.之后就是 hadoop的配置文件修改更新
hadoop 中的 /etc/hadoop/目录下的配置文件 core-site.xml mapred-site.xml hdfs-site.xml yarn-site.xml ,均需要修改,可以参照 github上的 chinahadoop sparktraining 项目做一些更改,然后是 hadoop-env.sh需要 配置好 JAVA_HOME
如果配置文件 有问题,会一直耽搁很久,需要谨慎细心。

11.然后是 进入 /hadoop/bin 目录下 格式化namenode
/usr/local/hadoop/bin/hadoop namenode -format
, 中间会有确认,选择y,即使这样,
不过经常还会出现格式 不彻底,可能需要多次格式化,并需要重启电脑多次
这个会在 hadoop/logs/....namenode.....log 中有 体现,提示namenode 没有格式化,虽然你已经格式化多次了,但是还这样。窍门是 必须先 启动hdfs
hadoop/sbin/start-dfs.sh,这个时候namenode没有起来,然后hadoop namenode -format,然后关闭hdfs,sbin/stop-dfs.sh.然后再 start-dfs.sh。这个时候一般 就可以了

12.启动 hadoop
在启动 hadoop ,由于最容易出问题的就是 namenode datanode,所以 先
/usr/local/hadoop/sbin/start-dfs.sh ,
第一次启动,会多次输入密码 和root密码,输入正确会 执行之后的步骤,并且有询问 确认 ,回复y ,若执行结束,输入 jps 查看 hadoop 的前三个守护进程是否正常启动,如果正常启动,则继续 启动 同目录下的 ./start-yarn.sh,等待结果,若成功则会出现另外两个 hadoop的守护进程 nodemanager resourcemanager,
若启动 失败 ,分三种
一,一直提示 普通用户和 root用户密码错误,虽然输入的是正确的密码
这个 需要 修改 /etc/ssh/sshd_config 文件,向其中添加 一行
PermitRootLogin yes
并且
找到:PermitRootLogin prohibit-password禁用,
二。namenode 没有启动起来,其他都启动了
查看 /usr/local/hadoop/logs / 目录下的namenode 的log 日志会有体现,一般就是namenodep没有格式化,nomenode 目录不存在 或者没有权限,没有格式化就接着格式化,重启电脑, 目录不存在就创建,没有权限 要么赋予quanli 要么 在 /usr/local/目录下创建

写着写着就忘记了,是啥嘞?
如果 三个守护进程都没有启动起来,可能是配置文件出了大问题,这个时候一定要去查看
/usr/local/hadoop/logs/ 目录下的 对应的log 日志,太有用了,能够快速确认问题根源所在,

  1. 创建ssh key 免登陆
    首先要 创建 ssh key ssh-keygen -t rsa
    然后就是 copy ssh 给要 上服务器的 客户端ip [b] 比如 192.168.255.131
    ssh-copy-id 192.168.255.131
    这样就不用再重复多次输入密码了,每次启动hadoop的时候。

还有 碰到的 比如 ip addr 无法解析 主机名错误 等等,一般都是 hadoop xml 配置文件的有问题

至此,基本上涵盖了 常见的mac 搭建hadoop集群中的问题,出问题,多看logs日志,多想着减法,如何定位问题,大家再接再厉吧
成功启动后再整slaves 然后 使用一下 hadoop fs 的命令 熟悉一下,再往上累加 hive 和spark impala

你可能感兴趣的:(mac 搭建hadoop 集群)