赞
踩
目录
http://链接: https://pan.baidu.com/s/14icx_oFkSvFiT5Asxlcw7A?pwd=j6ed 提取码: j6ed
1、这里以Centos7为例,准备好Centos7的光驱,和hadoop和jdk的压缩包,hadoop和jdk的压缩包已经放在百度网盘了,有需要可自行提取。
2、创建三台虚拟机,这里我们创建第一台虚拟机hadoop01.bgd01,接下来以图片为例。
这里将虚拟机命名为hadoop01.bgd01,存放目录可以自行选择。
这里选择桥接
到这一步,已经初步完成了虚拟机的创建,接下来是配置镜像。
这里选择事先放好的Centos7镜像存放的目录,然后可以开始启动虚拟机了。
启动虚拟机,选择第一个,按回车键确认。
点击键盘,这里选择英语(美国)并将其设为第一位。
点击软件选择,选择基本网页服务器,然后选择MariaDB数据库客户端、Web服务器程序引擎、系统管理工具这三个,然后保存。
然后点击安装位置,点击并不做其他配置保存即可。
这里陪配置主机名,点击应用。
接着点击配置,为虚拟机设置IP地址、子网掩码、网关等,在之前先查询本机IP地址,window系统按住win+r键输入cmd,或者直接打开命令提示符,输入ipconfig即可查询IP地址,linux系统输入ifconfig即可查询IP地址,注意这里为虚拟机配置IP地址要在同一网段下,比如作者的电脑的IP地址是192.168.8.117,那么为虚拟机配置的IP地址可以为192,168.8.121,也就说前面三个必须一样。
网络连接配置可以参照作者的来配置。
然后点击开始安装,不设置用户,只创建人root密码。
到这一步,第一台虚拟机已经安装完成,接着以同样的方式再安装两台虚拟机。为了便于后续管理,作者建议三台虚拟机名字分别为,hadoop01、hadoop02、hadoop03。
在三台虚拟机上分别输入以下指令。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
按照下面这个进行修改。
BOOTPROTO=static #使用静态IP地址
接着实行以下指令,关闭防火墙。
- 执行如下命令关闭防火墙:
- systemctl stop firewalld
-
- 执行如下命令关闭防火墙开机启动:
- systemctl disable firewalld
- 执行命令成功后,会出现如下2行信息。
- Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
- Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
在hadoop.bgd01的etc目录下hosts文件添加IP地址和主机名映射表。
- vi /etc/hosts
-
- 127.0.0.1 localhost localhost.hugs localhost4 localhost4.localdomain4
- ::1 localhost localhost.hugs localhost6 localhost6.localdomain6
- 192.168.16.121 hadoop01.bgd01
- 192.168.16.122 hadoop02.bgd01
- 192.168.16.123 hadoop03.bgd01
接下来配置ssh免密登录,
- 在hadoop01.bgd01上,进入root用户主目录 /root,执行如下命令,生成 .ssh 目录和密匙对及免密登录授权文件:
-
- 执行如下命令,生成密匙对:
- ssh-keygen -t rsa
-
- 下面是生成密匙对的过程:
- Generating public/private rsa key pair. #提示生成 公/私 密匙对
- Enter file in which to save the key (/root/.ssh/id_rsa): #提示保存私匙的目录路径及文件名,按回车
- Created directory '/root/.ssh'. #在“/root”下创建了“.ssh”目录
- Enter passphrase (empty for no passphrase): #提示输入密码短语,如果不需要,按回车
- Enter same passphrase again: #提示再次输入相同密码短语,如果不需要,按回车
- Your identification has been saved in /root/.ssh/id_rsa. #生成了密匙文件id_rsa
- Your public key has been saved in /root/.ssh/id_rsa.pub. #生成了公匙文件id_rsa.pub
-
- 分别在hadoop02.bgd01、hadoop03.bgd01上执行相同的操作,生成密钥。
-
-
- 将公钥合并到hadoop01.bgd01上的authorized_keys文件中。
- 分别在hadoop01.bgd01、hadoop02.bgd01、hadoop03.bgd01上执行如下命令:
- ssh-copy-id hadoop01.bgd01
- 出现如下提示时,按#提示操作:
- Are you sure you want to continue connecting (yes/no)? #输入"yes"
- root@hadoop01.hugs's password: #输入hadoop01.bgd01的root账号密码
- 这样就完成了对公匙的合并。hadoop01.bgd01的“/root/.ssh”目录下会产生公匙授权文件 authorized_keys。其实该步操作是将三台主机上id_rsa.pub中的内容合并添加到authorized_keys中。
- 实现hadoop01、hadoop02、hadoop03之间的相互免密码登录。
- 在hadoop01上执行如下命令,将hadoop01上的公匙授权文件 authorized_keys 同步分发给hadoop02到hadoop03 :
- scp /root/.ssh/authorized_keys hadoop02.bgd01:/root/.ssh/
- 执行该命令时,会提示输入hadoop02.bgd01的root登录密码,输入相应密码即可。
- scp /root/.ssh/authorized_keys hadoop03.bgd01:/root/.ssh/
- 执行该命令时,会提示输入hadoop03.bgd01的root登录密码,输入相应密码即可。
- 以后三台主机之间,相互登录其它主机就不需要输入密码了。登录命令如下:
- ssh 主机名称
这里配置完以后可以使用远程登录软件,远程连接三台虚拟机,远程连接工具已经放在百度网盘需要可自行下载。
- 在hadoop01.bgd01上创建以下文件
- 在根目录“/”下创建3个目录
- /export/data/ :存放数据类文件
- /export/servers/ :存放服务类文件
- /export/software/ :存放安装包文件
-
- mkdir -p /export/software /export/servers /export/data
1、配置jdk
-
-
- 预备工作-在主机hadoop01上安装上传文件工具rz软件
- yum install lrzsz -y
-
- 进入/export/sofewate目录下输入rz上传jdk
- cd /export/software
-
- rz
-
- 解压jdk到/export/servers目录下
- tar -zvxf jdk-8u333-linux-x64.tar.gz -C /export/servers/
-
- 进入到/export/servers目录下对jdk进行重命名。
- cd /export/servers
-
- mv jdk1.8.0_333/ jdk
-
- 配置环境变量
- vi /etc/profile
-
- export JAVA_HOME=/export/servers/jdk
- export PATH=$JAVA_HOME/bin:$PATH
- export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-
- 保存后退出。然后执行 "source /etc/profile"指令使配置文件生效。
-
- 使用如下命令验证JDK安装是否成功,如果成功,会出现版本等信息。
- java -version
-
-
2、配置hadoop
- 进入/export/software/目录下对hadoop进行解压
- cd /export/software/
-
- tar -zxvf hadoop-2.10.1.tar.gz -C /export/servers/
-
- 在/etc/profile文件中, 配置 Hadoop 系统环境变量
- 执行如下命令:
- vi /etc/profile
-
- 添加如下2行:
- export HADOOP_HOME=/export/servers/hadoop-2.10.1
- export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
-
- 保存后退出。
- 执行如下命令,使配置文件生效:
- source /etc/profile
-
- 使用如下命令验证hadoop安装是否成功,如果成功,会出现版本等信息。
- hadoop version
-
-
接下对hadoop集群的文件进行修改
- cd /export/servers/hadoop-2.10.1/etc/hadoop/
-
- 修改 hadoop-env.sh 文件
- vi hadoop-env.sh
-
- export JAVA_HOME=/export/servers/jdk
- 修改 core-site.xml 文件
-
- <configuration>
- <!-- 设置Hadoop的文件系统,由URI指定 -->
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://hadoop01.bgd01:9000</value>
- </property>
-
- <!-- 配置Hadoop的临时目录,默认 /tmp/hadoop-$(user.name) -->
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/export/servers/hadoop-2.10.1/tmp</value>
- </property>
- </configuration>
- 修改 hdfs-site.xml 文件
-
- <configuration>
- <!-- 指定HDFS的副本数量 -->
- <property>
- <name>dfs.replication</name>
- <value>3</value>
- </property>
-
- <!-- 设置第二namenode所在主机的IP和端口 -->
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>hadoop02.bgd01:50090</value>
- </property>
- </configuration>
- 修改 mapred-site.xml 文件
- 先将mapred-site.xml.template 复制到 mapred-site.xml
- cp mapred-site.xml.template mapred-site.xml
-
- vi mapred-site.xml
-
- <configuration>
- <!-- 指定MapReduce运行时框架,这里指定在YARN上,默认是local -->
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- </configuration>
- 修改 yarn-site.xml 文件
- (根据该节点上可用的物理内存总量调整yarn.nodemanager.resource.memory-mb的值,文件中是2048M,默认是8192M;如果节点内存不够8GB,则需要调整,否则NodeManager进程无法启动或者启动后自动结束)
-
- <configuration>
- <!-- 指定YARN集群的管理者(ResourceManager)的地址 -->
- <property>
- <name>yarn.resourcemanager.hostname</name>
- <value>hadoop01.bgd01</value>
- </property>
-
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- </configuration>
- 修改 slaves 文件
-
- hadoop01.bgd01
- hadoop02.bgd01
- hadoop03.bgd01
-
- 注:上述配置中,hadoop01.bgd01、hadoop02.bgd01、hadoop03.bgd01是主机名称,每个人根据自己的情况进行修改。
- 将集群主节点的配置文件和/export整个目录分发到其它节点
- 完成Hadoop集群主节点hadoop01的配置后,还需要将系统环境配置文件、JKD安装目录和Hadoop安装目录分发到子节点hadoop02和hadoop03上。具体指令如下:
-
- 将/export整个目录分发到其它节点"/"目录下:
- scp -r /export hadoop02.bgd01:/
- scp -r /export hadoop03.bgd01:/
-
- 将配置文件/etc/profile分发到其它节点:
- scp /etc/profile hadoop02.bgd01:/etc/profile
- scp /etc/profile hadoop03.bgd01:/etc/profile
-
- 执行完上述命令后,还需在hadoop02、hadoop03上分别执行"source /etc/profile"指令立即刷新配置文件。
Hadoop集群测试
- 格式化HDFS文件系统
- hdfs namenode -format
- 执行格式化指令后必须出现 successfulluy formatted 才表示格式化成功。
-
- 在Hadoop01上启动所有HDFS服务进程
- start-dfs.sh
-
- 在Hadoop01上启动所有YARN服务进程
- start-yarn.sh
-
- 开启所有服务
- start-all.sh
-
- 查看服务进程
- 集群启动后,如果正常,执行命令:
- JPS
- 查看进程。
-
- hadoop01上可以查看到如下进程:
- ResourceManager
- NodeManager
- JPS
- DataNode
- NameNode
-
- hadoop02上可以查看到如下进程:
- NodeManager
- JPS
- DataNode
- SecondaryNameNode
-
- hadoop03上可以查看到如下进程:
- NodeManager
- JPS
- DataNode
-
- 通过UI查看Hadoop运行状态
- 在浏览器中查看和管理集群。
- Hadoop状态查看
- http://hadoop01.bgd01:50070/dfshealth.html
-
- HDFS状态查看
- http://hadoop01.bgd01:50070/explorer.html
-
- YARN状态查看
- http://hadoop01.hugs:8088/cluster
-
- 关闭Hadoop集群
- 在Hadoop01上关闭所有YARN服务进程
- stop-yarn.sh
-
- 在Hadoop01上关闭所有HDFS服务进程
- stop-dfs.sh
-
- 关闭所有服务
- stop-all.sh
- 在 /export/data下创建文件 word.txt,内容如下:
- hello itcast
- hello itheima
- hello hadoop
-
- vi /export/data/word.txt
-
- 在HDFS上创建目录
- hadoop fs -mkdir -p /wordcount/input #-p参数表示递归创建,与Linux的mkdir命令一致
-
- 上传文件word.txt
- hadoop fs -put word.txt /wordcount/input/
-
- 查看 HDFS 上 /wordcount/input/ 目录下的内容
- hadoop fs -ls /wordcount/input/
-
- 进行词频统计
- cd /export/servers/hadoop-2.10.1/share/hadoop/mapreduce
- hadoop jar hadoop-mapreduce-examples-2.10.1.jar wordcount /wordcount/input /wordcount/output
-
- 打开HDFS的UI界面,查看HDFS中词频统计结果
- /wordcount/output/part-r-00000 中是统计结果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。