最新免费网站.棋牌.手游.端游.商业源码下载

游戏源码
当前位置: 主页 > 架设教程 > 网站源码教程

分享搭建Hadoop平台的详细教程

时间:2022-09-20    来源:admin1    人气:

一、配置基础环境

1.一台虚拟机作为master主机,另外克隆两台slave1、slave2虚拟机,实现互通




(a)首先在master的虚拟机中用ifconfig查看ens某某,编辑/etc/sysconfig/network-scripts/ifcfg-ens32(观察ens32是否正确),修改IP地址:输入命令:vi /etc/sysconfig/network-scripts/ifcfg-ens32

进入后,为:TYPE=Ethernet

BOOTPROTO=static(可能需要修改static)

NAME=ens32

DEVICE=ens32

ONBOOT=yes(这可能需要修改yes)

IPADDR=192.168.174.200(IP根据自己而定,倒数第二位应与编辑中的虚拟网络编辑器其中的VMnet8IP倒数第二位一致)

NETMASK=255.255.255.0

GATEWAY=192.168.174.2

DNS1=8.8.8.8



注意:一定要记得重启网络

输入命令:systemctl restart network

后输入:ifconfig,进行查看



以上操作在虚拟机中进行

下面两项可以再Xshell下进行

(b) 接着在master输入命令:vi /etc/hostname ,进入后修改主机名

进入后,删去编辑器中内容,再输入一个master(主机的名字)



(c)接着在master中输入命令:vi /etc/hosts,进入后配置名字解析

进入后,在编辑器上方加入,搭建Hadoop的所有虚拟机的IP+主机名

例如:

192.168.174.200 master

192.168.174.201 slave1

192.168.174.202 slave2



(d)接着再在slave1的虚拟机中用ifconfig查看ens某某,编辑/etc/sysconfig/network-scripts/ifcfg-ens32(观察ens32是否正确),修改IP地址:输入命令:vi /etc/sysconfig/network-scripts/ifcfg-ens32

进入后,为:TYPE=Ethernet

BOOTPROTO=static(可能需要修改static)

NAME=ens32

DEVICE=ens32

ONBOOT=yes(这可能需要修改yes)

IPADDR=192.168.174.201(IP根据自己而定,倒数第二位应与编辑中的虚拟网络编辑器其中的VMnet8IP倒数第二位一致)

NETMASK=255.255.255.0

GATEWAY=192.168.174.2

DNS1=8.8.8.8



注意:一定要记得重启网络

输入命令:systemctl restart network

后输入:ifconfig,进行查看



以上操作在虚拟机中进行

下面两项可以再Xshell下进行

(e) 接着在slave1输入命令:vi /etc/hostname ,进入后修改主机名

进入后,删去编辑器中内容,再输入一个slave1(主机的名字)



(f)接着在slave1中输入命令:vi /etc/hosts,进入后配置名字解析

进入后,在编辑器上方加入,搭建Hadoop的所有虚拟机的IP+主机名

例如:

192.168.174.200 master

192.168.174.201 slave1

192.168.174.202 slave2



(g)接着再在slave2的虚拟机中用ifconfig查看ens某某,编辑/etc/sysconfig/network-scripts/ifcfg-ens32(观察ens32是否正确),修改IP地址:输入命令:vi /etc/sysconfig/network-scripts/ifcfg-ens32

进入后,为:TYPE=Ethernet

BOOTPROTO=static(可能需要修改static)

NAME=ens32

DEVICE=ens32

ONBOOT=yes(这可能需要修改yes)

IPADDR=192.168.174.202(IP根据自己而定,倒数第二位应与编辑中的虚拟网络编辑器其中的VMnet8IP倒数第二位一致)

NETMASK=255.255.255.0

GATEWAY=192.168.174.2

DNS1=8.8.8.8



注意:一定要记得重启网络

输入命令:systemctl restart network

后输入:ifconfig,进行查看



以上操作在虚拟机中进行

下面均可以再Xshell下进行

(h) 接着在slave2输入命令:vi /etc/hostname ,进入后修改主机名

进入后,删去编辑器中内容,再输入一个slave2(主机的名字)



(i)接着在slave2中输入命令:vi /etc/hosts,进入后配置名字解析

进入后,在编辑器上方加入,搭建Hadoop的所有虚拟机的IP+主机名

例如:

192.168.174.200 master

192.168.174.201 slave1

192.168.174.202 slave2



(g)如果还有,请重复上面的操作

(k)请检查几台虚拟机能够使用名字ping通,分别在几台虚拟机中输入:

ping master

ping slave1

ping slave2









***2.配置免秘钥登录

(a)在每台虚拟机上安装openssh-clients,并使用#ssh-keygen -t rsa生成密钥对

(由于有openssh-clients,所以直接输入命令: rpm -qa|grep ssh,检查是否有,若无,可以用命令:yum install -y openssh

yum install -y openssh-server

yum install -y openssh-clients

systemctl start sshd.services 进行启动和安装

注意:必须要先输入命令:cd ssh,进入ssh中

再输入命令:ssh-keygen -t rsa

(e)把三台虚拟机的秘钥先集中到一个虚拟机(master)上

在master中输入命令:cp id_rsa.pub authorized_keys

在slave1中输入命令:scp id_rsa.pub root@master:/root/ssh/slave1

在slave2中输入命令:scp id_rsa.pub root@master:/root/ssh/slave2

(f)再把集中到一台虚拟机(master)上的秘钥集中到authorized-keys文件中

在master中输入命令:cat slave1 >> authorized_keys

cat slave2 >> authoried_keys

(g)在集中虚拟机(master)下把集中秘钥的公共文件夹authorized_keys复制到其余的虚拟机中

输入命令为:scp authoried_keys root@slave1:/root/.ssh

scp authoried_keys root@slave2:/root/.ssh

(h)分别在建立的虚拟机上互相免秘钥登录,输入命令为:ssh master

ssh slave1

ssh slave2

3.安装jdk,配置环境变量

(a)在笔记本上有jdk的压缩包,用ftp文件传输,传输到master的root目录下

(b)在master的root目录下解压,输入命令:tar -zxvf jdk-8u181-linux-x64.tar.gz

(c)然后,在master下将jdk进行移动,输入命令:mv jdk1.8.0_181 /usr/local/jdk1.8

(b)后在master输入命令:ssh-keygen -t rsa

(c)也在slave1中输入命令:ssh-keygen -t rsa

(d)最后在slave2中输入命令:ssh-keygen -t rsa

(b),(c),(d)三步是让形成密钥对,若有多台,也在其他台中输入一样命令

(d)在master下进入jdk目录,输入命令:cd /usr/local/jdk1.8

(e)在master下编辑/etc/profile文件,设置环境变量,输入命令为:vi /etc/profile,进入后,在原有的底下,粘贴这些:export JAVA_HOME=/usr/local/jdk1.8 CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

export PATH=$PATH:${JAVA_HOME}/bin

(f)在master下执行脚本,输入命令为:source /etc/profile

(g)在master下检查java环境,输入命令为:java -version

二、安装hadoop集群

1.在master上安装hadoop

(a)建立hadoop工作目录/var/hadoop,输入命令为:mkdir /var/hadoop

(b)进入hadoop目录,输入命令为: cd /var/hadoop

(c)建立各级目录,输入命令为: mkdir tmp

mkdir var

mkdir /dfs/name

mkdir /dfs/data

(d)在官网上下载hadoop软件并用ftp上传到root文件夹下,输入命令为:tar -zxvf hadoop-2.7.7.tar.gz

mv hadoop-2.7.7 /usr/local/hadoop2.7.7

(e)编辑/usr/local/hadoop2.7.7/etc下的配置文件,输入命令为:cd /usr/local/hadoop2.7.7/etc/hadoop

ls(查看)

(f)编辑以下内容,输入命令为:vi hadoop-env.sh

进入后,修改如下:




输入命令为:vi yarn-env.sh

进入后,修改如下:



输入命令为:vi mapred-env.sh

进入后,修改如下:



输入命令为:vi core-site.xml

进入后,修改如下:

<configuration>

<property><!--hadoop临时文件的存放目录-->

<name>hadoop.tmp.dir</name>

<value>/var/hadoop/tmp</value>

</property>

<property><!--NameNode 的URI默认端口为8020-->

<name>fs.default.name</name>

<value>hdfs://master</value>

</property>

</configuration>

输入命令为:vi hdfs-site.xml

<configuration>

<property><!--namenode持久存储名字空间及事务日志的本地文件系统路径-->

<name>dfs.name.dir</name>

<value>/var/hadoop/dfs/name</value>

</property>

<property><!--DataNode存放块数据的本地文件系统路径-->

<name>dfs.data.dir</name>

<value>/var/hadoop/dfs/data</value>

</property>

<property><!--数据需要备份的数量,不能大于集群的机器数量,默认为3-->

<name>dfs.replication</name>

<value>2</value>

</property>

</configuration>

输入命令为:vi yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

<property><!--NodeManager上运行的附属服务,用于运行mapreduce-->

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property> <!--ResourceManager 对客户端暴露的地址-->

<name>yarn.resourcemanager.address</name>

<value>master:8032</value>

</property>

<property><!--ResourceManager 对ApplicationMaster暴露的地址-->

<name>yarn.resourcemanager.scheduler.address</name>

<value>master:8030</value>

</property>

<property><!--ResourceManager 对NodeManager暴露的地址-->

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>master:8031</value>

</property>

<property><!--ResourceManager 对管理员暴露的地址-->

<name>yarn.resourcemanager.admin.address</name>

<value>master:8033</value>

</property>

<property><!--ResourceManager 对外web暴露的地址,可在浏览器查看-->

<name>yarn.resourcemanager.webapp.address</name>

<value>master:8088</value>

</property>

</configuration>

输入命令为:cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml

进入后,修改命令为:

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

输入命令为: vi slaves

进入后,删除内容加上除了本机之外虚拟机名称,输入:slave1

slave2



2.在其余虚拟机上重复下列操作

(a)从master下拷贝jdk到slave1和slave2(即其他虚拟机)

在master下输入命令为:scp -r /usr/local/jdk1.8 root@slave1:/usr/local/jdk1.8

scp -r /usr/local/jdk1.8 rppt@slave2:/usr/local/jdk1.8

(b)从master下拷贝/etc/profile到slave1和slave2(即其他虚拟机)中

在master下输入命令为:scp /etc/profile root@slave1:/etc/profile

scp /etc/profile root@slave2:/etc/profile

(c)在其他虚拟机上启动/etc/profile文件

在slave1 下输入命令为:source /etc/profile

在slave2下输入命令为:source /etc/profile

(d)在其余虚拟机上检测java安装是否好了

在slave1下输入命令为:java -version

在slave2下输入命令为:java -version

(e)从master目录下拷贝工作目录到其余虚拟机

在slave1下输入命令为:scp -r /var/hadoop/ root@slave1:/var/hadoop

在slave2下输入命令为:scp -r /var/hadoop/ root@slave2:/var/hadoop

(f)从master拷贝hadoop到slave1和slave2

在slave1中输入命令为:scp -r /usr/local/hadoop2.7.7/ root@slave1:/usr/local/hadoop2.7.7

在slave2中输入命令为:scp -r /usr/local/hadoop2.7.7/ root@slave2:/usr/local/hadoop2.7.7

3.在master上执行hdfs初始化

(a)进入/usr/local/hadoop2.7.7/bin下,输入命令为:pwd(看进入的是否正确)

cd /usr/local/hadoop2.7.7/bin

(b)在该命令下,执行初始化命令,输入命令为:./hadoop namenode -format

(c)执行成功后,可以检验,进入/var/hadoop/dfs/name,多出一个current目录。输入命令为:cd /var/hadoop/dfs/name

pwd(看进入是否正确)

ls(查看)

三、启动、停止hadoop集群

(a)进入/usr/local/hadoop2.7.7/sbin执行命令,输入命令为:cd /usr/local/hadoop2.7.7/sbin

pwd(看进入目录是否正确)

./start-all.sh

(b)在虚拟机上用jps命令查看hadoop集群是否启动,在master中输入命令为:jps

在slave1中输入命令为:jps

在slave2中输入命令为:jps


(c)在主机上使用浏览器访问master的相关端口,在浏览器中输入命令为:192.168.174.200:50070(hdfs文件管理)

192.168.174.200:8088(ResourceManager)

192.168.174.201:8042(NodeManager)

(d)在master下停止hadoop集群,输入命令为:cd /usr/local/hadoop2.7.7/sbin

pwd

./stop-all.sh

四、使用hadoop集群运行Wordcount(重新开启hadoop集群,输入命令为:./start-all.sh)

(a)设置hadoop命令运行路径,输入命令为:export PATH=$PATH:/usr/local/hadoop2.7/bin

(b)使用hdfs命令上传文件到HDFS系统

查看根目录,输入命令为:hdfs dfs -ls /

在根目录建立input目录,输入命令为:hdfs dfs -mkdir /input

上传文件到input,输入命令为:hdfs dfs -put /etc/httpd/conf/httpd.conf /input

(c)运行Wordcount程序,输入命令为:cd /usr/local/hadoop2.7.7/share/hadoop/mapreduce

ls

hadoop jar hadoop-mapreduce-examples-2.7.7.jar wordcount /input/httpd.conf /output

(d)查看Wordcount程序输出结果,输入命令为:hdfs dfs -cat /output/part-r-00000


推荐文章

公众号