Hadoop实战(2)_虚拟机搭建Hadoop的全分布模式

来源:互联网 发布:淘宝宝贝主图视频 编辑:程序博客网 时间:2024/06/04 23:47

系列目录:

Hadoop实战(1)_阿里云搭建Hadoop2.x的伪分布式环境

建立Linux虚拟机(全节点)

客户机操作系统:CentOS-6.5-x86_64。

网络连接:host-only。Connecet automaticcally:打勾。

hostname Address Netmask Gateway hadoopmaster 192.168.169.100 255.255.255.0 hadoopslave1 192.168.169.101 255.255.255.0 hadoopslave2 192.168.169.102 255.255.255.0

安装类型:Minimal

关闭防火墙和SELINUX(全节点)

# iptablesservice iptables statusservice iptables stop# 不随操作系统自动启动chkconfig iptables off# 永久起效,reboot重启后生效vi /etc/selinux/configSELINUX=disabled

合并CentOS 6.5的两个DVD作为本地yum源(master节点)

创建相关目录

mkdir -p /mnt/dvd1 /mnt/dvd2 /mnt/dvd /mnt/iso

说明:

/mnt/dvd1和/mnt/dvd2,用于挂载Centos6.5原有的两个镜像ISO文件。

/mnt/dvd,合并后的镜像文件存放目录。

/mnt/iso,制作好ISO镜像的存放目录。

挂载CentOS原来的两个镜像文件,首先, 复制第一张DVD(CentOS-6.5-x86_64-bin-DVD1)中的所有文件到/mnt/dvd目录下,然后,只拷贝第二张DVD中 Packages目录下的所有RPM文件到/mnt/dvd/Packages/目录下,由于第二张DVD(CentOS-6.5-x86_64-bin-DVD2)不能当做启动光盘,所以只需要RPM文件即可。

mount /dev/sr0 /mnt/dvd1df -hcp -av /mnt/dvd1/* /mnt/dvdumount /mnt/dvd1mount /dev/cdrom /mnt/dvd2cp -v /mnt/dvd2/Packages/*.rpm /mnt/dvd/Packages/

合并TRANS.TBL,将DVD2中TRANS.TBL的信息追加到DVD1中TRANS.TBL后面,并排序保存。

cat /mnt/dvd2/Packages/TRANS.TBL >> /mnt/dvd/Packages/TRANS.TBLmv /mnt/dvd/Packages/{TRANS.TBL,TRANS.TBL.BAK}sort /mnt/dvd/Packages/TRANS.TBL.BAK > /mnt/dvd/Packages/TRANS.TBLrm -rf /mnt/dvd/Packages/TRANS.TBL.BAK

备份原有yum配置文件

cd /etc/yum.repos.drename .repo .repo.bak *.repo

生成新的yum配置文件

cat > /etc/yum.repos.d/CentOS-Media.repo <<EOF>[c6-media]>name=CentOS-\$releasever - Media>baseurl=file:///mnt/dvd>gpgcheck=0>enabled=1>gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6>EOF

更新yum源

yum clean allyum upgrade

将/mnt/dvd/打包为iso

yum install genisoimagemkisofs -l -J -L -r -V "CentOS-6.5-x86_64" -o /mnt/iso/CentOS-6.5-x86_64-DVD.iso /mnt/dvd

CentOS搭建本地yum源(http方式)(master节点)

启动httpd服务

# 验证是否安装httpd服务rpm -qa|grep httpd# yum install -y httpdyum install -y httpd# 启动httpd服务service httpd start

安装yum源

# 在/var/www/html/下创建文件夹CentOS6.5mkdir -p /var/www/html/CentOS6.5# 将iso文件中的内容copy到CentOS6.5cp -av /mnt/dvd/* /var/www/html/CentOS6.5/

利用ISO镜像,yum源搭建OK。浏览器验证访问:http://192.168.169.100/CentOS6.5/。

使用yum源

# 备份原有的repo文件mkdir -p /etc/yum.repos.d/repo.bakcd /etc/yum.repos.d/cp *.repo *.repo.bak repo.bak/rm -rf *.repo *.repo.bak# 新建文件 vi CentOS6.5.repo[base]name=CentOS-$releasever - Basebaseurl=http://hadoopmaster:80/CentOS6.5/enabled=1gpgcheck=1gpgkey=http://hadoopmaster:80/CentOS6.5/RPM-GPG-KEY-CentOS-6# 更新yum源yum cleanyum repolist

yum源配置(全节点)

使用yum源

# 备份原有的repo文件mkdir -p /etc/yum.repos.d/repo.bakcd /etc/yum.repos.d/cp *.repo *.repo.bak repo.bak/rm -rf *.repo *.repo.bak# 新建文件 vi CentOS6.5.repo[base]name=CentOS-$releasever - Basebaseurl=http://hadoopmaster:80/CentOS6.5/enabled=1gpgcheck=1gpgkey=http://hadoopmaster:80/CentOS6.5/RPM-GPG-KEY-CentOS-6# 更新yum源yum cleanyum repolist

hosts文件修改(全节点)

vi /etc/hosts192.168.169.100 hadoopmaster192.168.169.101 hadoopslave1192.168.169.102 hadoopslave2

ssh免密码登录,以master节点为例(全节点)

yum install -y openssh-clientsssh-keygen -t rsassh-copy-id -i .ssh/id_rsa.pub root@hadoopmasterssh-copy-id -i .ssh/id_rsa.pub root@hadoopslave1ssh-copy-id -i .ssh/id_rsa.pub root@hadoopslave2

安装jdk(全节点)

mkdir -p /root/trainingcd /root/trainingtar -zxvf jdk-7u75-linux-i586.tar.gz

配置环境变量:

vi .bash_profileJAVA_HOME=/root/training/jdk1.7.0_75export JAVA_HOMEPATH=$JAVA_HOME/bin:$PATHexport PATH# 立即生效source .bash_profilewhich javajava -version

bug解决:64bit的操作系统,无法运行32bit的应用程序,需要安装32bit的glibc库。

-bash: /root/training/jdk1.7.0_75/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
yum install -y glibc*.i686rpm -qf /lib/ld-linux.so.2

全分布模式配置

参数文件 配置参数 参考值 备注 hadoop-env.sh JAVA_HOME /root/training/jdk1.7.0_75 Java的home目录 hdfs-site.xml dfs.replication 2 数据的冗余度 hdfs_site.xml dfs.permissions false core-site.xml fs.defaultFS hdfs://hadoopmaster:9000 namenode的IP地址和端口,9000是RPC通信的端口 core-site.xml hadoop.tmp.dir /root/training/hadoop-2.4.1/tmp 如不修改默认为/tmp,设置的路径必须事先存在 slaves DataNode的地址 hadoopslave1 hadoopslave2 mapred-site.xml mapreduce.framework.name yarn 指定MR运行在yarn上 yarn-site.xml yarn.resourcemanager.hostname hadoopmaster 指定YARN的老大(ResourceManager)的地址 yarn-site.xml yarn.nodemanager.aux-services mapreduce_shuffle reducer获取数据的方式

微信公众号「数据分析」,分享数据科学家的自我修养,既然遇见,不如一起成长。
数据分析