在多台阿里云服务器上部署Hadoop分布式系统及WordCount实验

一、实现master与slave之间无密码连接
分别在master及slave上生成rsa密钥:

mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -t -rsa

一路回车(选择默认设置),此时,ssh文件夹中生成了id_rsa.pub和id_rsa两个,然后使用scp命令将公钥(id_rsa.pub)分别拷到对方机器中

scp id_rsa.pub h1@对方机器IP:~/.ssh/authorized_keys

并设置权限:

chmod 700 authoized_keys
chomd 777 ~/.ssh

使用cat命令实现无密码访问自身(localhost)cat id_rsa.pub >> authorized_keys
二:关闭防火墙

sudo ufw disable

三:添加防火墙规则
因阿里云服务器原只支持22、80和443端口,所以需要到控制台中添加防火墙规则,使其支持9000端口等(选择全部TCP+UDP)。
四:安装JDK
到官网下载JDK tar包,本次实验下载的JDK1.8.0版本,在h1用户下新建/usr/java文件夹,并将下载的压缩包解压到java文件夹中:tar -zvxf jdk-8u191-linux-x64.tar.gz然后打开etc/profile 进行环境变量配置:

export JAVA_HOME=/usr/java/jdk1.8.0_191
export JRE_HOME=/usr/java/jdk1.8.0_191/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

保存退出,使用source 命令或者重启sudo shutdown -r now使配置生效。可以使用which java测试java是否配置成功。
五:修改hostname及hosts
修改/etc/hostname,master机器上改为master,slave1机器上改为slave1。
修改/etc/hosts,/etc/hosts中原来的内容全部删除,然后加入namenode和datanode的IP以及名字;master中的hosts中的masterIP为master本机内网IP,其他slave节点IP为外网IP;相同的,slave中的hosts中的本机IP必为本机内网IP,其他节点为外网IP。
六:安装Hadoop
到官网下载Hadoop压缩包,本次下载的版本为2.9.1,在h1用户下新建文件夹/hadoop,并将下载好的压缩包解压缩到hadoop文件夹中tar -zvxf hadoop-2.9.1.tar.gz。
在hadoop目录下新建hdfs文件夹,并在hdfs文件夹中新建name、data、tmp三个文件夹。
进入hadoop目录下的hadoop/etc/hadoop文件夹中对hadoop配置文件进行配置。
1.使用vim打开core-site.xml文件进行如下配置:

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/h1/hadoop/hadoop-2.9.1/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>

2.使用vim打开hadoop-env.sh文件,将JAVA_HOME配置为本机JAVA_HOME路径。
3.使用vim打开yarn-env.sh文件,将JAVA_HOME配置为本机JAVA_HOME路径。
4.使用vim打开hdfs-site.xml文件,进行如下配置:

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/h1/hadoop/hadoop-2.9.1/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/h1/hadoop/hadoop-2.9.1/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

5.cp mapred-site.xml.template mapred-site.xml 复制其文件并命名为mapre-site.xml,使用vim打开进行配置:

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

6.使用vim打开yarn-site.xml文件进行配置:

<configuration>
<property>
<name>yarn.resourcemanager.sddress</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>master:8032</value>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master:8030</value>
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:8031</value>
  </property>
</configuration>

7.配置slaves文件,将其中的localhost改为slave1。
8.打开/etc/profile进行hadoop环境变量配置:


export HADOOP_HOME=/home/h1/hadoop/hadoop-2.9.1
export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

9.使用scp hadoop-2.9.1 h1@slaveIP:/home/h1/hadoop/命令将master上的hadoop配置文件拷到slave1上,并修改slave1上的/etc/profile文件,然后使用sudo shutdown -r now命令使两机重启。
10.在master机器上执行命令:hdfs namenode -format进行初始化
11.在master机器上执行start-all.sh启动hadoop,使用jps命令可以查看到相应进程。
12.在浏览器中输入http://masterIP:50070可以查看web UI。
在这里插入图片描述
七、Wordcount测试
1.在h1用户目录下新建hadoop_data文件夹。
2.在hadoop_data文件夹内新建file1.txt及file2.txt文件,并向其中写入要进行实验的文本:

扫描二维码关注公众号,回复: 10462515 查看本文章

Verse 1:
You should believe in me, and everything i choose to do
You should believe that i’ll alaways come back to you
Life is discovering the love that we create
Life is a mystery we need to embrace
In every way
(We need to let go)
You’ll see all our dreams will follow
In every way
(We need to let go)
Chorus:
People rise together when they believe in tomorrow
Change today to forever, as life keeps moving
People rise together when they believe in tomottow
Change today to forever, as life keeps moving
Verse 2:
Open your mind and see, we have everything we need
Dream a reality, fulfill its destiny
In every way
(We need to let go)
You’ll see all our dream will follow
In every way
~
3.建立input文件夹3.hdfs dfs -mkdir /input将file1.txt及file2.txt文件上传到input文件夹中:hdfs dfs -put /home/h1/hadoop_data/*.txt /input/
4..hadoop jar /home/h1/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar wordcount /input /output执行测试程序,并将结果输入到/output文件夹中
5.hadoop fs -cat /output/part-r-00000查看结果。
实验结果输出:
(We 6
1: 2
2: 2
Change 4
Chorus: 2
Dream 2
In 8
Life 4
Open 2
People 4
Verse 4
You 4
You’ll 4
a 4
alaways 2
all 4
and 4
as 4
back 2
believe 8
choose 2
come 2
create 2
destiny 2
discovering 2
do 2
dream 2
dreams 2
embrace 2
every 8
everything 4
follow 4
forever, 4
fulfill 2
go) 6
have 2
i 2
i’ll 2
in 6
is 4
its 2
keeps 4
let 6
life 4
love 2
me, 2
mind 2
moving 4
mystery 2
need 10
our 4
reality, 2
rise 4
see 4
see, 2
should 4
that 4
the 2
they 4
to 16
today 4
together 4
tomorrow 2
tomottow 2
way 8
we 8
when 4
will 4
you 2
your 2

发布了14 篇原创文章 · 获赞 36 · 访问量 8236

猜你喜欢

转载自blog.csdn.net/weixin_42047699/article/details/89157347
今日推荐