我这里提供Hadoop-3.0.3的安装包
链接:https://pan.baidu.com/s/1prQlQZxikjcPMOsVBrda1w
提取码:1234
当然你也可以去官网下载自己找具体版本下面就大概演示了下怎么去下载的
https://hadoop.apache.org/releases.html
然后将hadoop-3.0.3.tar.gz上传的linux上我这里以centos7为例:
cd ~
mkdir hadoop
cd hadoop
tar -zxf hadoop-3.0.3.tar.gz
可以参考这篇文件
还需要在hadoop-3.0.3/etc/hadoop/hadoop-env.sh 里再显示地重新声明一遍JAVA_HOME
先检测是否可用免登陆到本机
SSH 本地主机ip
如果需要输入密码那么就不能免登录,那么使用hadoop就会失败
配置ssh免登陆:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
vi /etc/profile
文件最后添加内容如下:
PATH="$PATH:/root/hadoop/hadoop-3.0.3/bin"
export PATH
刷新环境变量立即生效
source /etc/profile
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
etc/hadoop/core-site.xml:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/root/hadoop/hadoop-3.0.3/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
注意: <value>hdfs://localhost:9000</value>
改为你服务器的ip,否则启动不起来DataNode
etc/hadoop/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/root/hadoop/hadoop-3.0.3/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/root/hadoop/hadoop-3.0.3/tmp/dfs/data</value>
</property>
</configuration>
注意: 格式化,会将数据全部清空的,而且如果hadoop启动状态是无法进行格式化的,所有建议在安装的时候格式化一次就行了之后就不需要了
/root/hadoop/hadoop-3.0.3/bin/hdfs namenode -format
如果第二次会出现下图: 意思就是让你重写格式你选y就行了
格式成功后 /root/hadoop/hadoop-3.0.3/tmp 下会出现dfs目录
/root/hadoop/hadoop-3.0.3/sbin/start-dfs.sh
然后检测是否启动成功jps
然后在通过游览器访问hadoop
Hadoop3之前: http://192.168.42.129:50070/
Hadoop3之后: http://192.168.42.129:9870/
在/hadoop/sbin路径下:将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
/root/hadoop/hadoop-3.0.3/logs
遇到问题可以在这里找原因
查看日志发现
java.io.IOException: Incompatible clusterIDs in /root/hadoop/hadoop-3.0.3/tmp/dfs/data: namenode clusterID = CID-d99e47c9-9220-4792-bc2b-52831ffab2c9; datanode clusterID = CID-9667705d-79f2-4727-b625-93f02373cd9c
at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:719)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadStorageDirectory(DataStorage.java:284)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadDataStorage(DataStorage.java:397)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.addStorageLocations(DataStorage.java:377)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:541)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1705)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1665)
at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:390)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:280)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:816)
at java.lang.Thread.run(Thread.java:748)
这个意思是说namenode 和datanode Id 不一致因为当执行文件系统格式化时,会在namenode数据文件夹(即配置文件中dfs.name.dir在本地系统的路径)新生成一个current/VERSION文件,记录clusterID,标识了所格式化的 namenode的版本。多次格式化namenode,那么datanode中保存(即配置文件中dfs.data.dir在本地系统的路径)的current/VERSION文件只是你第一次格式化时保存的namenode的ID,因此就会造成datanode与namenode之间的id不一致。
解决办法:
删除DataNode的current文件
rm -rf /root/hadoop/hadoop-3.0.3/tmp/dfs/data/current
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_45203607/article/details/121808999
内容来源于网络,如有侵权,请联系作者删除!