CentOS7-64bit 编译 Hadoop-2.7.4,并伪分布式安装
来源:互联网 发布:如何把分开的数据整合 编辑:程序博客网 时间:2024/06/01 20:13
1.安装环境说明
- 本机操作系统macOS Sierra 10.12.6
- 采用的虚拟机VirtualBox 5.1.28
- 虚拟机镜像CentOS 7 64bit
2.为什么要编译
因为我们从官方下载的Hadoop安装压缩包(hadoop-2.7.4.tar.gz)是32位系统下的,如果我们将它部署在64位的系统上运行就会报错,所以我们最好在自己的64位系统上自己重新编译Hadoop源码(hadoop-2.7.4-src.tar.gz)(也可以从网上下载他人编译好的Hadoop64位安装包)。
3.编译前的准备
3.1删除预安装的openjdk(如果有)
3.1.1查看是否安装了openjdk
[root@localhost ~]# java -versionopenjdk version "1.8.0_65"OpenJDK Runtime Environment (build 1.8.0_65-b17)OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)
3.1.2查看openjdk源
[root@localhost ~]# rpm -qa | grep javajava-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64tzdata-java-2015g-1.el7.noarchpython-javapackages-3.4.1-11.el7.noarchjavapackages-tools-3.4.1-11.el7.noarchjava-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
3.1.3依次删除OPENJDK
[root@localhost ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64[root@localhost ~]# rpm -e --nodeps tzdata-java-2015g-1.el7.noarch[root@localhost ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64[root@localhost ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64[root@localhost ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
3.2关闭防火墙
3.2.1查看防火墙的状态
[root@localhost ~]# systemctl status firewalld.service● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2017-10-19 14:45:46 CST; 22min ago Main PID: 607 (firewalld) CGroup: /system.slice/firewalld.service └─607 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopidOct 19 14:45:44 localhost.localdomain systemd[1]: Starting firewalld - dynami...Oct 19 14:45:46 localhost.localdomain systemd[1]: Started firewalld - dynamic...Hint: Some lines were ellipsized, use -l to show in full.
3.2.2关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
3.2.2禁止防火墙开机自启
[root@localhost ~]# systemctl disable firewalld.service Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
3.3编译环境搭建
3.3.1上传所需要的软件安装压缩包
示例:Mac在终端使用scp命令上传本地hadoop目录下的所有软件包到虚拟机的/opt/目录下
3.3.2解压所有的软件到/opt目录下
使用命令tar -zxvf 软件包位置 -C 解压到的路径
,例如:
[root@localhost opt]# tar -zxvf /opt/apache-ant-1.9.4-bin.tar.gz -C /opt/
3.3.3安装java、ant和findbugs
1.配置环境变量,修改配置文件[root@localhost opt]# vi /etc/profile
,在末尾添加
export JAVA_HOME=/opt/jdk1.7.0_80 export ANT_HOME=/opt/apache-ant-1.9.4 export FINDBUGS_HOME=/opt/findbugs-1.3.9export PATH=$PATH:$FINDBUGS_HOME/bin:$ANT_HOME/bin:$JAVA_HOME/bin
2.使配置文件生效[root@localhost opt]# source /etc/profile
3.验证是否安装成功
[root@localhost opt]# java -versionjava version "1.7.0_80"Java(TM) SE Runtime Environment (build 1.7.0_80-b15)Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)[root@localhost opt]# ant -versionApache Ant(TM) version 1.9.4 compiled on April 29 2014[root@localhost opt]# findbugs -version1.3.9
3.3.4安装protobuf
1.安装一些其他需要依赖的软件(虚拟机需要联网)
[root@localhost ~]# yum -y install maven svn ncurses-devel gcc* lzo-devel zlib-devel autoconf automake libtool cmake openssl-devel
2.安装protobuf,最后一条命令输入后需要耐心等待
[root@localhost ~]# cd /opt/protobuf-2.5.0 [root@localhost protobuf-2.5.0]# ./configure[root@localhost protobuf-2.5.0]#make && make install
3.验证是否安装成功
[root@localhost protobuf-2.5.0]# protoc --versionlibprotoc 2.5.0
4.编译hadoop源码
1.进入hadoop源码的根目录,执行编译命令(编译过程需联网)
[root@localhost ~]# cd /opt/hadoop-2.7.4-src[root@localhost hadoop-2.7.4-src]# mvn clean package -Pdist -DskipTests -Dtar
2.编译过程时间很长,需耐心等待
3.编译成功如下图所示
5.安装hadoop
1.复制编译生成的Hadoop文件至/opt/目录下
[root@localhost ~]# cp -r /opt/hadoop-2.7.4-src/hadoop-dist/target/hadoop-2.7.4 /opt/hadoop-2.7.4
编译生成目录截图
2.配置环境变量
[root@localhost opt]# vi /etc/profile在末尾添加 export HADOOP_HOME=/opt/hadoop-2.7.4 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin[root@localhost opt]# source /etc/profile
3.修改主机名为hadoop,会在后面修改hadoop的配置文件中用到
[root@localhost ~]# hostnamectl set-hostname hadoop[root@localhost ~]# hostnamectl status Static hostname: hadoop Icon name: computer-vm Chassis: vm Machine ID: ca98320ca97f4fbebdb7d5a4bd32c052 Boot ID: 6953000caef747c6a65be85f40921f0e Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-327.el7.x86_64 Architecture: x86-64
4.查看当前IP地址
[root@localhost ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:6e:65:f5 brd ff:ff:ff:ff:ff:ff inet 192.168.43.216/24 brd 192.168.43.255 scope global dynamic enp0s3 valid_lft 3524sec preferred_lft 3524sec inet6 fe80::a00:27ff:fe6e:65f5/64 scope link valid_lft forever preferred_lft forever
5.设置hosts本地解析,添加主机名和当前ip进行映射关系
[root@localhost ~]# vi /etc/hosts在末尾添加#当前IP地址 主机名192.168.43.216 hadoop
6.配置hadoop,伪分布式需要修改5个配置文件
(1)进入配置文件目录[root@localhost ~]# cd /opt/hadoop-2.7.4/etc/hadoop(2)修改第一个配置文件:hadoop-env.sh [root@localhost hadoop]# vi hadoop-env.sh找到‘export JAVA_HOME=’,修改为:export JAVA_HOME=/opt/jdk1.7.0_80(3)修改第二个配置文件:core-site.xml [root@localhost hadoop]# vi core-site.xml<configuration> <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop-2.7.4/tmp</value> </property></configuration>(4)修改第三个配置文件:hdfs-site.xml[root@localhost hadoop]# vi hdfs-site.xml<configuration> <!-- 指定HDFS副本的数量 --> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> (5)修改第四个配置文件:mapred-site.xml [root@localhost hadoop]# mv mapred-site.xml.template mapred-site.xml[root@localhost hadoop]# vi mapred-site.xml<configuration> <!-- 指定mr运行在yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>(6)修改第五个配置文件:yarn-site.xml[root@localhost hadoop]# vi yarn-site.xml<configuration> <!-- 指定YARN的老大(ResourceManager)的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop</value> </property> <!-- reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property><configuration>
6.运行hadoop
1.首次运行需要格式化namenode(是对namenode进行初始化
[root@localhost ~]# hdfs namenode -format (或 hadoop namenode -format)
2.启动hadoop
先启动HDFS[root@localhost ~]# start-dfs.sh再启动YARN[root@localhost ~]# start-yarn.sh
3.验证是否启动成功
[root@localhost ~]# jps12880 SecondaryNameNode13025 ResourceManager12725 DataNode13305 NodeManager13353 Jps12607 NameNode
4.使用浏览器查看HDFS管理界面和MR管理界面
http://虚拟机IP地址:50070 (HDFS管理界面)
http://虚拟机IP地址:8088 (MR管理界面)
7.总结
7.1创建虚拟机的一些注意事项
- 创建的虚拟机的内存大小和虚拟硬盘大小不要设置的太小,否则会引起一些不必要的麻烦。比如,如果虚拟机内存太小,则在后面编译Hadoop的mavn项目的时候,就有可能产生内存溢出而编译失败的情况。(我创建的时候分配了2G的内存和20G的虚拟硬盘)
- 虚拟机网络设置,由于安装编译的过程需要联网,所以我是用了桥接的方式,并且没有设置静态IP,所以搭建成功后每次运行hadoop前,都需要先查看当前的IP地址,然后修改主机名和IP地址的映射关系,才能正常运行。
7.2编译其他版本的hadoop
大致的编译过程基本上是一致的,只不过用到的相关依赖软件的版本号,需要从hadoop源码包的根目录中的BUILDING.txt文件中查看。下图是部分内容截图:
7.3配置ssh免登陆(可选)
按上述方式搭建好hadoop后,每次运行除了要修改修改主机名和IP地址的映射关系外(通过设置静态IP解决),在每次执行start-dfs.sh和start-yarn.sh脚本的时候,都要输入Linux的登入密码。我们可以通过配置ssh免登陆的方式,来避免每次都要输入密码。
配置方式:
1.生成ssh公钥和私钥,执行下面的命令并连续按下回车三次[root@localhost ~]# ssh-keygen -t rsa2.将公钥拷贝到要免密登陆的目标机器上(localhost 本机)[root@localhost ~]# ssh-copy-id localhost
7.4设置静态ip(可选)
- 通过
ip a
命令查看网卡名称,默认情况下会有两个一个lo回环网卡,而另一个就是我们所需要修改的网卡 - 修改网卡的配置文件方式
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-网卡名修改或添加下面的内容BOOTPROTO="static"ONBOOT="yes"IPADDR="设置一个静态ip"NETMASK="255.255.255.0"
7.5推荐使用远程连接的方式来操作
- Windows推荐使用secureCRT,进行操作和上传文件
- MacOS推荐使用终端,使用ssh命令进行连接执行命令,使用scp命令上传和下载文件,eg:
远程连接linux虚拟机$ ssh root@192.168.43.216上传本地文件到linux虚拟机$ scp /Users/michealyan/hadoop/* root@172.17.129.78:/opt/
7.6其他说明
1.所用的到相关软件下载地址:飞机
2.参考链接:
CentOS7-64bit 编译 Hadoop-2.5.0,并分布式安装
https://my.oschina.net/u/1428349/blog/31364
Hadoop编译安装2.7.3(CentOS7)
https://www.2cto.com/net/201612/567546.html
3.仅供参考,欢迎指正
- CentOS7-64bit 编译 Hadoop-2.7.4,并伪分布式安装
- centos7 安装伪分布式Hadoop
- Hadoop伪分布式安装(Centos7)
- CentOS-64bit编译Hadoop-2.5.源代码,并进行分布式安装
- centos7下安装编译并搭建hadoop2.6.0单节点伪分布式集群
- centos7配置hadoop伪分布式
- Hadoop:Centos6.5(64bit)Hadoop2.5.1伪分布式安装记录
- Centos7 + Hadoop 3.0 伪分布式环境安装部署
- centos7 安装hadoop:伪分布式配置、全分布模式配置
- Hadoop 伪分布式安装
- hadoop 伪分布式安装
- Hadoop 伪分布式安装
- HADOOP伪分布式安装
- hadoop伪分布式安装
- Hadoop伪分布式安装
- Hadoop伪分布式安装
- hadoop伪分布式安装
- hadoop伪分布式安装
- C语言———指针
- Myeclipse自动生成返回值对象的快捷键
- Animation动画(二)---- Frame 帧动画
- Failed to sync Gradle project'xxxx' error:Re-downlod....
- hdu 5475(线段树(锻炼思维))
- CentOS7-64bit 编译 Hadoop-2.7.4,并伪分布式安装
- linux 下利用grep查找字符串
- java基础小结(附String的使用方法)
- mongodb 导出 sql
- 3477: [Usaco2014 Mar]Sabotage
- 关于典型的存储引擎及其代表(mysql、redis/memcached、leveldb/rocksdb/hbase系)
- Yarn资源调度策略
- PullToRefresh,,,,,,上拉刷新,下拉加载
- css使用padding属性不影响盒子大小