使用三台阿里云服务器搭建Hadoop集群(云计算实验踩坑集锦)

使用三台阿里云服务器搭建Hadoop集群(云计算实验踩坑集锦),第1张

使用三台阿里云服务器搭建Hadoop集群(云计算实验踩坑集锦)

使用阿里云服务器搭建这个hadoop集群,踩得坑人已经傻了,浪费了我快一周的时间。

1.准备环节

准备三台阿里云服务器

Namenode121.196.224.191Datanode1121.196.226.12Datanode247.96.42.166

端口设置(后面会有坑)
Namenode
通过安全组手动开放9000端口

在控制台查看Namenode的私网ip

Datanode1和Datanode2
通过安全组开放50010端口

2.配置环境

我们只需要把Namenode环境配置好,其他datanode采用主传的方式即可
配置Namenode环境

  1. 下载并解压所需包
ssh 121.196.224.191    //连接Namenode节点
mkdir  /home/hadoop
cd /home/hadoop/
wget http://denglab.org/cloudcomputing/download/hadoop.tar.gz
tar -zxvf hadoop.tar.gz
mkdir /home/jdk
cd /home/jdk/
wget http://denglab.org/cloudcomputing/download/jdk.tar.gz
tar -zxvf jdk.tar.gz
  1. 设置bash profile
    vi ~/.bash_profile
    将原有的配置替换为下面代码
#export PATH
export JAVA_HOME=/home/jdk/jdk1.7.0_75
export JAVA_JRE=/home/jdk/jdk1.7.0_75/jre
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0

# path
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH=$JAVA_HOME/bin:$PATH

source ~/.bash_profile //保存配置

  1. 修改Hadoop配置文件(以下都是将原有的配置进行替换)
    cd $HADOOP_HOME
    mkdir namenode
    mkdir datanode
    cd etc/hadoop/
    vi core-site.xml

	
		fs.default.name
		hdfs://Namenode:9000
	
	
		hadoop.tmp.dir
		/home/hadoop/hadoop-2.6.0/tmp/hadoop-${user.name}
	

vi hdfs-site.xml


	
		dfs.replication
		2
	
	
		dfs.namenode.name.dir
		/home/hadoop/hadoop-2.6.0/namenode/name_1, /home/hadoop/hadoop-2.6.0/namenode/name_2
	
	
		dfs.datanode.data.dir
		/home/hadoop/hadoop-2.6.0/datanode/data_1, /home/hadoop/hadoop-2.6.0/datanode/data_2
	

vi mapred-site.xml


	
		mapred.job.tracker
		Namenode:9001
	

vi hadoop-env.sh

export JAVA_HOME=/home/jdk/jdk1.7.0_75

vi slaves
设置数据节点

Datanode1
Datanode2
  1. 设置3个节点间的无密码访问
    更改主机名称
    ssh 121.196.224.191
    vi /etc/hostname
Namenode

vi /etc/hosts

121.196.224.191	Namenode  
121.196.226.12	Datanode1
47.96.42.166	Datanode2

ssh 121.196.226.12
vi /etc/hostname

Datanode1

ssh 47.96.42.166
vi /etc/hostname

Datanode2

ssh Namenode
vi /etc/hosts
将Namenode改为私网ip

将Namenode节点配置复制到datanode上

scp /etc/hosts [email protected]:/etc/hosts
scp /etc/hosts [email protected]:/etc/hosts
scp ~/.bash_profile [email protected]:~/.bash_profile
scp ~/.bash_profile [email protected]:~/.bash_profile

进行密钥生成
ssh-keygen -t rsa //点击三次enter即可
ssh Datanode1
ssh-keygen -t rsa //点击三次enter即可
scp /root/.ssh/id_rsa.pub root@Namenode:/root/.ssh/id_rsa.pub.Datanode1
ssh Datanode2
ssh-keygen -t rsa //点击三次enter即可
scp /root/.ssh/id_rsa.pub root@Namenode:/root/.ssh/id_rsa.pub.Datanode2

密钥交互
ssh Namenode
cd /root/.ssh
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.Datanode1 >> authorized_keys
cat id_rsa.pub.Datanode2 >> authorized_keys
chmod 644 authorized_keys
scp ~/.ssh/authorized_keys root@Datanode1:/root/.ssh/authorized_keys
scp ~/.ssh/authorized_keys root@Datanode2:/root/.ssh/authorized_keys

测试连接
ssh Datanode1
ssh Datanode2
ssh Namenode

  1. 启动及测试hadoop
    把hadoop,jdk文件和配置从namenode复制到datanode中
scp -r /home/hadoop/ root@Datanode1:/home/hadoop
scp -r /home/hadoop/ root@Datanode2:/home/hadoop
scp -r /home/jdk/ root@Datanode1:/home/jdk
scp -r /home/jdk/ root@Datanode2:/home/jdk
cd $HADOOP_HOME
cd etc/hadoop
hdfs namenode -format   //初始化hadoop,不要多次初始化,可能会导致生成id不唯一
start-all.sh

查看HDFS文件系统状态
hdfs dfsadmin -report
jps

测试HDFS文件系统
hadoop fs -ls /
vi aaa.txt
hadoop fs -put aaa.txt /aaa.txt

恭喜我们到了这里,接下来让我们看下到这一步的比较难受的坑

  1. namenode没有启动,jps找不到namenode,运行hdfs dfsadmin -report报如下错误
    Retrying connect to server: hadoop/121.196.224.191:9000. Already tried 0 time(s);
    原因:完成到datanode节点配置复制后,没有将namenode中 /etc/hosts 文件中namenode的ip改为私网ip
    详细见这篇博客
  2. datanode未启动,查看datanode日志文件,发现报如下错误
    Retrying connect to server: Namenode/121.196.224.191:9000. Already tried 0 time(s);
    原因:没有通过安全组规则设置打开namenode的9000端口
  3. hadoop fs -put aaa.txt /aaa.txt 这步时,相应很长时间,报这种错误
    INFO hdfs.DFSClient: Excluding datanode 47.96.42.166:50010

原因:没有打开47.96.42.166 这个datanode2的50010端口,通过安全组规则设置将其打开即可。
4. 如果datanode此时未启动可用 hadoop-daemon.sh start datanode 启动

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5676177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存