0%

macOS安装Hadoop3

Mac上的Hadoop一直没有安装。。。Flink总是跑在local模式上,实在不太好,于是在mac上面安装了Hadoop3,随便安装了一下,默认就是最新版本的,安装过程被zsh坑了不少,今后凡是安装模式,还是最好切换到原先的bash模式。

macOS安装Hadoop3

第一步是java环境

bash环境

1
2
3
4
安装Java,配置环境变量
打开vi ~/.bash_profile
输入i在文件末尾添加export JAVA_HOME=$(/usr/libexec/java_home),并按esc,输入:wq!保存。
在~/目录下,执行source ~/.bash_profile

zsh

1
2
3
4
5
zsh

打开vi ~/.zshrc
输入i在文件末尾添加export JAVA_HOME=$(/usr/libexec/java_home),并按esc,输入:wq!保存。
在~/目录下,执行source ~/.zshrc

ssh配置

1
2
3
4
生成ssh公钥
终端输入cat ~/.ssh/id_rsa.pub拷贝,cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
系统设置(System Preferences) -> 共享(sharing) -> 远程登录(Remote Login)
终端测试ssh localhost

可能出现的错误

1
2
3
4
5
6
7
Q:host key verification failed

A:cd ~/.ssh 然后rm known_hosts。随后出现Are you sure you want to continue connecting(yes/no),输入yes

Q:Warning:” Permission denied (publickey,password,keyboard-interactive)”

A:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 若有多个秘钥,也需使用id_rsa.pub

安装安装配置Hadoop

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
终端输入brew install hadoop,此时Hadoop被安装到/usr/local/Cellar/hadoop下。

这边直接安装hadoop会下载一个openJDK14,我们需要修改一下jdk依赖,然后就可以卸载掉这个JDK

若计算机原先安装前端框架yarn则会出现命名冲突name conflict,此时执行brew uninstall yarn即可

终端输入cd $JAVA_HOME进入JDK目录,pwd查看JDK路径。

更改Hadoop配置文件信息

cd /usr/local/Cellar/hadoop

ls查看Hadoop版本,本机为3.1.2

cd /3.1.2/libexec/etc/hadoop

用vscode打开open hadoop-env.sh,找到其中一行:

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"

将其修改为:

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

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home" #改为自己JDK目录

配置HDFS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cd /usr/local/Cellar/hadoop/3.1.2/libexec/etc/hadoop,打开open core-site.xml,填写<configutation><\configutation>之间的内容。

<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/Cellar/hadoop/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:8020</value>
</property>
</configuration>

设置MAP-REDUCE中JOBTRACKER的地址和端口号

cd /usr/local/Cellar/hadoop/3.1.2/libexec/etc/hadoop,打开mapred-site.xml,填写<\configutation>之间的内容。

1
2
3
4
5
6
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:8021</value>
</property>
</configuration>

更改HDFS的默认备份方式(默认为3)

1
2
3
4
5
6
7
8
cd /usr/local/Cellar/hadoop/3.1.2/libexec/etc/hadoop,打开hdfs-site.xml,填写<configutation><\configutation>之间的内容。

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

格式化新安装的HDFS

1
2
3
cd /usr/local/Cellar/hadoop/3.1.2/libexec/etc/hadoop,在该目录下执行hdfs namenode -format

查看控制台,若出现ERROR,则需检查配置文件内容是否出错。

启动后台程序

cd /usr/local/Cellar/hadoop/3.1.2/sbin,在该目录下执行以下命令:

  • ./start-dfs.sh or ./stop-dfs.sh启动或关闭hdfs

    1
    2
    3
    4
    Starting namenodes on [localhost]
    Starting datanodes
    Starting secondary namenodes [MacBook-Pro.local]
    2019-05-18 10:04:32,583 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    说明成功启动本地服务,此时在浏览器输入如下网址:http://localhost:9870,查看Resource Manager。(Hadoop版本不同,端口号也不同)

  • ./start-yarn.sh or ./stop-yarn.sh启动或关闭yarn

    JobTracker http://localhost:8088

    Specific Node Information http://localhost:8042

  • ./start-all.sh or ./stop-all.sh启动或关闭Hadoop,该命令可同时开启或关闭以上三个服务。

环境配置错误

Error:Invalid HADOOP_COMMON_HOME

~/.bash_profile里面配置环境变量HADOOP_COMMON_HOME
HADOOP_COMMON_HOME=$HADOOP_HOME,HADOOP_HOME是配置的Hadoop的安装目录,修改完之后执行:source ~/.bash_profile

其他错误

输入命令时终端未响应=>ssh localhost