Hadoop学习——Hadoop集群搭建笔记

生而有涯而学无涯


最近使用VMWare搭建了一个虚拟的Hadoop集群环境,搭建的过程中参考了很多网上大神的资料,在这里记录下本人实践的全过程,用于以后的查询参考使用,参考的资料会在文末贴出对应的链接。


集群配置详情

hostname ip address os(Centos7mini)
master 192.168.224.100 Centos7(mini)
slave1 192.168.224.201 Centos7(mini)
slave2 192.168.224.202 Centos7(mini)

其中,master为name node和job tracker结点,slaveN为data node和task tracker

集群机器安装步骤

1.配置虚拟网络
在这里主要是配置虚拟集群的网段及网关。

这里写图片描述
2.创建虚拟机
网上关于安装虚拟机的教程有很多,按照教程安装即可。我在安装的过程中选择内存1G,1个处理器,20G磁盘,NAT网络方式,使用root登录,没有创建其他用户。
3.配置网络
3.1关闭SELINUX:

vi /etc/selinux/config
SELINUX=disabled
:wq

3.2关闭防火墙:CentOS默认使用firewall作为防火墙。

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态

3.3修改IP地址为静态地址

vi /etc/sysconfig/network-scripts/ifcfg-ens33(ens33--是虚拟机上的网卡名称)

我的master机器上的配置如下,需要注意的是,HWADDR是网卡的MAC地址,DEVICE是网卡的名字,可以使用命令ip addr查看具体信息。
这里写图片描述
3.4修改主机名称
vi /etc/sysconfig/network
这里写图片描述
3.5修改master机器上hosts映射
vi /etc/hosts
这里写图片描述
最后最重要的:service network restart
4.安装Xshell访问虚拟机
注意:目前已经把虚拟机的网络设置成了静态ip,除非再配置实现静态IP上网,否则是不能使用该配置的开发机访问网络的,因为后续还要在虚拟机上安装java,hadoop。不能访问网络也不能安装vim(Centos上默认安装的是Vi) ,也不能安装linux和windows互传文件的命令lrzsz。
在安装完Xshell后配置虚拟机的IP和用户名以及密码,就可以通过Xshell连接虚拟机。如果要实现windows和linux传输文件,Xshell中需要安装软件xftp。
这里写图片描述
传输文件的时候点击图片中的按钮,就可以拖动文件实现文件在windows和linux之间的传输了。

集群开发环境安装步骤

1.JDK环境安装
具体安装参考网络上的教程。
修改环境变量:

vi ~/.bash_profile 最后添加
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
:wq

保存退出后,执行source ~/.bash_profile使配置生效
2.HADOOP环境安装
本人选择安装的Hadoop版本为hadoop-2.6.5.tar.gz。
2.1 添加环境变量
vi /usr/hadoop-2.6.5/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_144

然后添加环境变量vi ~/.bash_profile

export JAVA_HOME=/usr/java/jdk1.8.0_144
export HADOOP_HOME=/usr/hadoop-2.6.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

执行source ~/.bash_profile使配置生效
2.2 Hadoop配置,配置文件目录:/usr/hadoop-2.6.5/etc/hadoop
core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
  </property>
  <property>
    <name>Hadoop.tmp.dir</name>
    <value>/tmp/hadoop-root</value>
  </property>
</configuration>

hdfs-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
</configuration>

mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>master:9001</value>
  </property>
</configuration>

slaves

slave1
slave2

3.复制虚拟机
使用VMWare中clone功能,复制出另外两台虚拟机,分别命名为slave1和slave2。因为clone出的虚拟机的网卡MAC地址已经改变,所以要分别在复制出的两台虚拟机中执行以下操作:

rm -f /etc/udev/rules.d/70-presistent-net.rules
reboot
vi /etc/sysconfig/network-scripts/ifcfg-ens33,将其中的HWADDR修改为新虚拟机的MAC地址,将静态IP改为设置的IP地址
:wq

4.设置SSH
开启三台虚拟机,登录到master中,执行如下的命令:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh slave1 "mkdir ~/.ssh"
scp ~/.ssh/id_dsa.pub slave1:~/.ssh/authorized_keys
ssh slave2 "mkdir ~/.ssh"
scp ~/.ssh/id_dsa.pub slave2:~/.ssh/authorized_keys

中间需要输入用户的密码
然后分别执行下列命令,不用输入密码就表示成功了。

ssh localhost
ssh slave1
ssh slave2

5.启动Hadoop
执行HDFS格式化命令:hadoop namenode-format
在master虚拟机中:/usr/hadoop-2.6.5/sbin目录,执行./start-all.sh
然后在宿主机中打开浏览器,指向192.168.224.100:50070,就可以查看HDFS的信息。
6.在HDFS中建文件夹
(我搭建的Hadoop集群上HDFS默认的文件更目录是 /)
新建文件夹:hdfs dfs -mkdir /hdfs_in(“/”后边的文件目录名称根据自己需要定义)
查看HDFS的文件目录:hdfs dfs -ls /
拷贝本地文件到HDFS文件系统:hdfs dfs -copyFromLocal 本地文件目录 HDFS文件目录
eg:hdfs dfs -copyFromLocal /usr/local/hadoop/data /hdfs_in
7.在Hadoop上运行使用python实现的mapreduce任务
bin/hadoop jar ./share/hadoop/tools/lib/hadoop-streaming-2.6.5.jar -mapper /usr/local/hadoop/mapper.py -reducer /usr/local/hadoop/reducer.py -input /hdfs_in/data -output /hdfs_out

参考:http://blog.csdn.net/dyllove98/article/details/9228673

猜你喜欢

转载自blog.csdn.net/lxd_0111/article/details/78503194