0.前言

最近因为需要所以要安装hadoop,但是网上怎么说呢,就是很混乱,各种资料,各种安装方法,总体来说都不是很有效果,经过了3天的挣扎,收集资料,才完成了部署。

1.从官网上获得对应的安装包

下载地址:

https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz

点击第一个

下载完成如下文件夹

大数据 java 运维 eureka 史上最详细的hadoop安装教程(含坑点)  第1张

89204008082.png)]" />

2.将安装包传入系统

这里使用rz插件。

一般刚开始的时候系统里面是没有的,此处我们需要手动安装一下。

大数据 java 运维 eureka 史上最详细的hadoop安装教程(含坑点)  第2张

89204239352.png)]" />

apt install lrzsz

然后就开始传输文件

===等等吧

网速太慢了,啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

3.准备Java环境

上传Java环境

此处我已经准备好了环境了。

jdk-8u171-linux-x64.tar.gz

又是漫长的等待

暂停一下……

1.解压文件

tar -zxvf jdk-8u60-linux-x64.tar.gz

2.配置环境

vi /etc/profile

按i执行编辑

export JAVA_HOME=/root/jdk1.8.0_171

export CLASSPATH=$JAVA_HOME/lib/

export PATH=$PATH:$JAVA_HOME/bin

最后按ESC 然后输入:wq退出。

然后执行source /etc/profile重载配置文件。

配置环境完成

https://www.cnblogs.com/zeze/p/5902124.html

4.开始配置hadoop

4.1解压

tar -zxvf hadoop-2.10.0.tar.gz //刚才的命令不对。。。

4.2 检查是否可用

./bin/hadoop version # 查看hadoop版本信息,成功显示则安装成功

出现上述信息代表文件是可用的。。。。。。

4.3 修改配置文件配置hadoop的Java环境

这里我们需要指明,不能用这种,会提示找不到java环境。

配置成这样

然后老规矩,按住esc,输入:wq退出vi且保存。

4.4 修改core-site和hdfs-site文件

core-site修改如下

hadoop.tmp.dir

file:/root/hadoop-2.10.0/tmp

Abase for other temporary directories.

fs.defaultFS

hdfs://localhost:9000

hdfs-site修改如下

dfs.replication

1

dfs.namenode.name.dir

file:/root/hadoop-2.10.0/tmp/dfs/name

dfs.datanode.data.dir

file:/root/hadoop-2.10.0/tmp/dfs/data

照着改即可。

4.5 初始化节点

./bin/hdfs namenode -format

此时会出现

20/05/11 22:42:18 WARN net.DNS: Unable to determine address of the host-falling back to "localhost" address

java.net.UnknownHostException: iZ2ze2wduzi6txmep99j17Z: iZ2ze2wduzi6txmep99j17Z: Name or service not known

at java.net.InetAddress.getLocalHost(InetAddress.java:1505)

at org.apache.hadoop.net.DNS.resolveLocalHostIPAddress(DNS.java:307)

at org.apache.hadoop.net.DNS.(DNS.java:62)

at org.apache.hadoop.hdfs.server.namenode.NNStorage.newBlockPoolID(NNStorage.java:989)

at org.apache.hadoop.hdfs.server.namenode.NNStorage.newNamespaceInfo(NNStorage.java:598)

at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:181)

at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1211)

at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1655)

at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1782)

Caused by: java.net.UnknownHostException: iZ2ze2wduzi6txmep99j17Z: Name or service not known

at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)

at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)

at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)

at java.net.InetAddress.getLocalHost(InetAddress.java:1500)

... 8 more

这是阿里云的问题。我们需要修改host文件

vi /etc/hosts

加入

127.0.0.1 iZ2ze2wduzi6txmep99j17Z: iZ2ze2wduzi6txmep99j17Z iZ2ze2wduzi6txmep99j17Z

完成,老规矩退出方法。

reboot重启

出现

代表初始化成功。

最后一步启动hadoop

输入命令

./sbin/start-dfs.sh

这里提示输入密码,是不行的。我们还要配置一个免密登录。

4.6 安装SSH免密登录

sudo apt-get update #第一步

sudo apt-get install ssh #第二步

sudo apt-get install pdsh #第三步

#生成授权

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #加入授权

chmod 0600 ~/.ssh/authorized_keys #啥意思?

出现如下界面代表已经免密登录已经配置完成了。

4.7 再次尝试

输入指令:./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格

查看是否启动成功

已经启动完成了,到此为止完成了Hadoop的配置操作。

5.最后结果

输入jps看到上述四个即完成启动。

查看原文