hadoop2.2安装教程

本文详细介绍如何配置多台虚拟机搭建Hadoop集群,包括虚拟机网络配置、Hadoop及相关软件安装、环境变量设置、核心配置文件调整等步骤。

三.Hadoop安装

1. 配置多台虚拟机来搭建一个Hadoop集群。

a) 一台作为 namenode 节点

b) 其他作为 datanode 节点

c)  虚拟机使用 仅主机模式连入网络。

三种连入网络方式说明:

i. 桥接模式:

1. 会直接分配一个物理地址,与主机是同一等级的。

ii. NAT模式:

1. 共享主机的IP地址,

iii. 仅主机模式

桥接模式和仅主机模式的主动分配的,NAT模式的IP是自动分配的。

d) Windows网络连接中打开VMnet1来配置虚拟机的IPv4,然后登陆虚拟机,进行IP配置。注意勾选自动连接,否则登陆时需要手动连接才能分配IP,使用 ifconfig命令查看配置情况。

i. 远程登陆工具:putty,XShell,PieTTY,一般常用XShell。

ii. 文件传输工具,WinSCP,可以进行windows与linux两个操作系统下文件的互传。

2. Hadoop相关文件的配置

a) 使用WinSCP文件将 hadoop-2.2.0-x64.tar.gz和jdk-8u92-linux-x64.tar.gz 两个文件传入linux系统中(一个java ,一个Hadoop的),放置在/usr/local中

 

b) 使用 tar –zvxf jdk-8u92-linux-x64.tar.gz进行解压缩,之后可以将名字更改的简单些。

 

 

使用 tar –zvxf jdk-8u92-linux-x64.tar.gz进行解压缩,使用 mv 指令将 解压后的文件移动到 /home/hadoop/下,并进行更名操作。

 

c) 目录规划

i. 创建程序存储目录/home/hadoop/hodoop2.2,用来存储Hadoop程序文件

ii. 创建数据存储目录/home/hadoop/hodoop2.2/hdfs,用来存储集群数据

iii. 创建目录/home/hadoop/hodoop2.2/hdfs/name,用来存储文件系统元数据

iv. 创建目录/home/hadoop/hodoop2.2/hdfs/data,用来存储真正的数据

v. 创建日志目录/home/hadoop/hodoop2.2/logs,用来存储日志信息

vi. 创建临时目录/home/hadoop/hodoop2.2/tmp,用来存储临时生成的文件

例:mkdir –p /home/hadoop/hodoop2.2

d) 导入JDK环境变量

i. 执行 cd /etc命令后执行 vi profile ,对profile进行编辑

ii. 在末尾插入:

export JAVA_HOME=/usr/local/jdk1.8

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

export PATH=.:$JAVA_HOME/bin:$PATH

使用 :wq退出后执行 source profile 使其配置立即生效

执行 java-version 查看是否安装成功

 

e) 导入 Hadoop环境变量

i. 更改profile 文件

export JAVA_HOME=/usr/local/jdk1.8

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

export HADOOP_HOME=/home/hadoop/hadoop2.2

export PATH=.:$HADOOP_HOME/sbin:HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH

export HADOOP_LOG_DIR=/home/hadoop/hadoop2.2/logs

export YARN_LOG_DIR=$HADOOP_LOG_DIR

使用 :wq退出后执行 source profile 使其配置立即生效

执行 hadoop 查看是否安装成功

 

注:在不同的路径下执行hadoop时,有的可能会显示 command not found,此时重启机器再测试。

3. 修改 Hadoop2.2配置文件

a) /home/hadoop/hadoop2.2下的 hadoop-env.sh、yarn-enc.sh、mapred-env.sh 修改JAVA_HOME值(export JAVA_HOME=/usr/local/jdk1.8/)

b) 配置/home/hadoop/hadoop2.2/etc/slaves,这个文件里保存所有slave节点(只存datanode)

c) 配置 /home/hadoop/hadoop2.2/etc/hadoop/core-site.xml 添加一下代码到文中。

 

<configuration>
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://yufan:9000/</value>
      <description>设定namenode的主机名及端口</description>
   </property>
 
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop2.2/tmp</value>
<description> 存储临时文件的目录</description>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
</configuration>

d) 配置 /home/hadoop/hadoop2.2/etc/hadoop/hdfs-site.xml 添加一下代码到文中。

<configuration>
<property>
<name>dfs.namenode.http-address</name>
<value>yufan:50070</value>
<description>NameNode地址和端口</description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>yufan1:50090</value>
<description>SecondNameNode地址和端口</description>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
<description>设定HDFS存储文件的副本个数,默认为3</description>
</property>
 
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoop/hadoop2.2/hdfs/name</value>
<description>用来持续存储命名空间和交换日志的本地系统路径</description>
</property>
 
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/hadoop/hadoop2.2/hdfs/data</value>
<description> DataNode 在本地存储块文件的目录列表</description>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///home/hadoop/hadoop2.2/hdfs/namesecondary</value>
<description>设置secondarynamenode存储临时镜像本地文件系统路径,如果这是一个用逗号隔开的文件列表,则镜像将会冗余复制到所在目录
</description>
</property>
 
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
<description>是否允许网页浏览HDFS文件</description>
</property>
 
<property>
<name>dfs.stream-buffer-size</name>
<value>131072</value>
<description>默认是4KB,作为Hadoop缓冲区,用于Hadoop读HDFS的文件和写HDFS的文件,还有map的输出都用到了这个缓冲区容量,对于现在的硬件,可以设置为128(131072),甚至是1MB(太大了map和reduce任务可能会内存溢出)
</description>
</property>
</configuration>


e) 配置 /home/hadoop/hadoop2.2/etc/hadoop/ mapred-site.xml.template 添加一下代码到文中。

 

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
 
<property>
<name>mapreduce.jobhistory.address</name>
<value>yufan:10020</value>
</property>
 
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>yufan:19888</value>
</property>
</configuration>


f) 配置 /home/hadoop/hadoop2.2/etc/hadoop/yarn-site.xml 添加一下代码到文中。

<configuration>
 
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>yufan</value>
</property>
 
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
 
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
 
<property>
<name>yarn.resourcemanager.address</name>
<value>yufan:8032</value>
</property>
 
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>yufan:8030</value>
</property>
 
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>yufan:8031</value>
</property>
 
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>yufan:8033</value>
</property>
 
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>yufan:8088</value>
</property>
 
</configuration>




4. 修改CentOS主机名

a) 执行 命令 hostname yufan (只适应于当前状态)

b) 执行命令 vi /etc/sysconfig/network,修改HOSTNAME=yufan

 

 

5. 绑定hostname与 IP

a) 执行命令: vi /etc/hosts,增加内容如下(不要动现有的东西

 

6. 关闭防火墙

a) 执行命令 service iptables stop

b) 验证防火墙关闭 service iptables status

 

c) 上述命令执行完,但重启后还会继续开启防火墙,所以要设置关闭防火墙的自动运行

d) 执行命令:chkconfig iptables off

e) 验证命令 chkconfig –list|grep iptables

 

7. 节点之间的免密码通信

a) 赋值虚拟机节点。(克隆)

 

 

b) scp 实现不同虚拟机之间文件的互传

i. scp  fromAdd  toAdd 及把fromAdd 文件复制到toAdd中

 

首次传输时需要输入密码

 

c) 配置SSH免密码登录

i. 生成公钥:执行 ssh-keygen –-t rsa  –-P ‘’ –-f ~/.ssh/id_rsa  

注意P 为大写 执行完后将生成id_rsa.pub和id_rsa两个文件,前者是公钥,后者是私钥。

ii. 远程主机将用户的公钥保存在登录的用户主目录的$HOME/.ssh/authorized_keys文件中,执行

cd  ~/.ssh/

ls

cat id__rsa.pub >>authorized_keys   生成authorized_keys

chmod 600 authorized_keys 设置权限

ssh localhost ssh登录本机,验证无密码登录是否成功

exit 退出ssh登录

iii. 复制公钥到其中一个节点。使一个节点下的authorized_keys文件拥有整个集群的所有公钥

ssh-copy-id –I ~/.ssh/id_rsa.pub yufan2

(需要输入yufan2的密码)

iv.  yufan2的authorized_keys文件是否拥有整个集群的所有公钥,不符合按照上述要求添加

v. 远程复制authorized_keys文件

scp /root/.ssh/authorized_keys yufan: /root/.ssh/authorized_keys;

scp /root/.ssh/authorized_keys yufan1: /root/.ssh/authorized_keys

vi. 这样节点间的免密码登录就完成了

8. Hadoop的启动和测试

a) 格式化文件系统

i. hadoop namenode –format

出现 “Exiting with status 0”表示格式化成功,返回“Exiting with status 1”表示格式化失败,此时需要好好看下错误提示

b) 启动HDFS

i. start-dfs.sh 开启Hadoop HDFS服务。

 

若未正常开启,请仔细检查配置文件是否出错。

ii. 使用jps在各节点上验证

namnode:

datanode(SecondaryNameNode):

datanode:

注:若存在节点无法正常启动,此时将该节点此前创建的配置文件全部删除后再重新创建,之后进行格式化,重新开启hdfs后再进行测试。

iii. 启动Yarn

1. 在主节点namenode上启动start-yarn.sh

2. 使用jps 测试

iv. 管理JobHistory Server,通过 Web控制台查看集群计算的任务的信息,执行以下命令:mr-jobhistory-daemon.sh start historyserver

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值