1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 使用三台阿里云服务器搭建Hadoop集群(云计算实验踩坑集锦)

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

时间:2019-12-25 12:52:44

相关推荐

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

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

1.准备环节

准备三台阿里云服务器

端口设置(后面会有坑)

Namenode

通过安全组手动开放9000端口

在控制台查看Namenode的私网ip

Datanode1和Datanode2

通过安全组开放50010端口

2.配置环境

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

配置Namenode环境

下载并解压所需包

ssh 121.196.224.191 //连接Namenode节点mkdir /home/hadoopcd /home/hadoop/wget /cloudcomputing/download/hadoop.tar.gztar -zxvf hadoop.tar.gzmkdir /home/jdkcd /home/jdk/wget /cloudcomputing/download/jdk.tar.gztar -zxvf jdk.tar.gz

设置bash profile

vi ~/.bash_profile

将原有的配置替换为下面代码

#export PATHexport JAVA_HOME=/home/jdk/jdk1.7.0_75export JAVA_JRE=/home/jdk/jdk1.7.0_75/jreexport HADOOP_HOME=/home/hadoop/hadoop-2.6.0# pathexport PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATHexport PATH=$JAVA_HOME/bin:$PATH

source ~/.bash_profile //保存配置

修改Hadoop配置文件(以下都是将原有的配置进行替换)

cd $HADOOP_HOME

mkdir namenode

mkdir datanode

cd etc/hadoop/

vi core-site.xml

<configuration><property><name>fs.default.name</name><value>hdfs://Namenode:9000</value></property><property><name>hadoop.tmp.dir</name><value>/home/hadoop/hadoop-2.6.0/tmp/hadoop-${user.name}</value></property></configuration>

vi hdfs-site.xml

<configuration><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.namenode.name.dir</name><value>/home/hadoop/hadoop-2.6.0/namenode/name_1, /home/hadoop/hadoop-2.6.0/namenode/name_2</value></property><property><name>dfs.datanode.data.dir</name><value>/home/hadoop/hadoop-2.6.0/datanode/data_1, /home/hadoop/hadoop-2.6.0/datanode/data_2</value></property></configuration>

vi mapred-site.xml

<configuration><property><name>mapred.job.tracker</name><value>Namenode:9001</value></property></configuration>

vi hadoop-env.sh

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

vi slaves

设置数据节点

Datanode1Datanode2

设置3个节点间的无密码访问

更改主机名称

ssh 121.196.224.191

vi /etc/hostname

Namenode

vi /etc/hosts

121.196.224.191Namenode 121.196.226.12Datanode147.96.42.166Datanode2

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 root@121.196.226.12:/etc/hostsscp /etc/hosts root@47.96.42.166:/etc/hostsscp ~/.bash_profile root@121.196.226.12:~/.bash_profilescp ~/.bash_profile root@47.96.42.166:~/.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

启动及测试hadoop

把hadoop,jdk文件和配置从namenode复制到datanode中

scp -r /home/hadoop/ root@Datanode1:/home/hadoopscp -r /home/hadoop/ root@Datanode2:/home/hadoopscp -r /home/jdk/ root@Datanode1:/home/jdkscp -r /home/jdk/ root@Datanode2:/home/jdk

cd $HADOOP_HOMEcd etc/hadoophdfs 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

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

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

详细见这篇博客datanode未启动,查看datanode日志文件,发现报如下错误

Retrying connect to server: Namenode/121.196.224.191:9000. Already tried 0 time(s);

原因:没有通过安全组规则设置打开namenode的9000端口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 启动

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。