本文为笔者安装配置过程中详细记录的笔记1.下载hadoophadoop-2.7.1.tar.gzhadoop-2.7.1-src.tar.gz 64位linux需要重新编译本地库2.准备环境Centos6.4 64位,3台hadoop0 192.168.1.151 namenodehadoop1 192.168.1.152 datanode1Hadoop2 192.168.1.153 datanode21)安装虚拟机:vmware WorkStation 10,创建三台虚拟机,创建时,直接建立用户ha,密码111111.同时为root密码。
网卡使用桥接方式。
安装盘、2). 配置IP.创建完成后,设置IP,可以直接进入桌面,在如下菜单下配置IP,配置好后,PING确认好用。
3)更改三台机器主机名切换到root用户,更改主机名。
[ha@hadoop0 ~]$ su - rootPassword:[root@hadoop0 ~]# hostname hadoop0[root@hadoop0 ~]# vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=hadoop0以上两步后重启服务器。
三台机器都需要修改。
4)创建hadoop用户由于在创建虚拟机时,已自动创建,可以省略。
否则用命令创建。
5)修改hosts文件[root@hadoop0 ~]# vi /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.1.151 hadoop0192.168.1.152 hadoop1192.168.1.153 hadoop2此步骤需要三台机器都修改。
3.建立三台机器间,无密码SSH登录。
1)三台机器生成密钥,使用hadoop用户操作[root@hadoop0 ~]# su – ha[ha@hadoop0 ~]$ ssh -keygen -t rsa所有选项直接回车,完成。
以上步骤三台机器上都做。
2)在namenode机器上,导入公钥到本机认证文件[ha@hadoop0 ~]$ cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys3)将hadoop1和hadoop2打开/home/ha/.ssh/ id_rsa.pub文件中的内容都拷贝到hadoop0的/home/ha /.ssh/authorized_keys文件中。
如下:4)将namenode上的/home/ha /.ssh/authorized_keys文件拷贝到hadoop1和hadoop2的/home/ha/.ssh文件夹下。
同时在三台机器上将authorized_keys授予600权限。
[**************]$chmod600authorized_keys5)验证任意两台机器是否可以无密码登录,如下状态说明成功,第一次访问时需要输入密码。
此后即不再需要。
[ha@hadoop0 ~]$ ssh hadoop1Last login: Tue Aug 11 00:58:10 2015 from hadoop24.安装JDK1.71)下载JDK(32或64位),解压[ha@hadoop0 tools]$ tar -zxvf jdk-7u67-linux-x64.tar.gz2)设置环境变量(修改/etx/profile文件),export JAVA_HOME=/usr/jdk1.7.0_67export CLASSPATH=:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexport PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin3)使环境变量生效,然后验证JDK是否安装成功。
[ha@hadoop1 ~]$ source /etc/profile[ha@hadoop1 ~]$ java -versionjava version "1.7.0_67"Java(TM) SE Runtime Environment (build 1.7.0_67-b01)Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)5.关闭防火墙[root@hadoop0 ~]# chkconfig iptables off //关闭开机启动[root@hadoop0 ~]# service iptables stop //停止防火墙关闭selinux[root@hadoop0 ~]# vi /etc/selinux/configSELINUX=disable6.编译hadoop本地库,如果是64位linux,需要通过hadoop源代码重新编译本地库。
32位的不用编译。
1.)编译相关包下载下载重新编译需要的软件包apache-ant-1.9.6-bin.tar.gzfindbugs-3.0.1.tar.gzprotobuf-2.5.0.tar.gzapache-maven-3.3.3-bin.tar.gz下载hadoop2.7.1 的源码包hadoop-2.7.1-src.tar.gz2)安装相关包[root@hadoop0 ~]# tar -zxvf hadoop-2.7.1-src.tar.gz[root@hadoop0 ~]# tar -zxvf apache-maven-3.3.3-bin.tar.gz -C /opt/[root@hadoop0 ~]# tar -zxvf apache-ant-1.9.6-bin.tar.gz -C /opt/[root@hadoop0 ~]# tar -zxvf findbugs-3.0.1.tar.gz -C /opt/[root@hadoop0 ~]# tar -zxvf protobuf-2.5.0.tar.gz3)修改/etc/profile[root@hadoop0 ~]# vi /etc/profileexport MAVEN_HOME=/home/ha/maven-3.3.3export ANT_HOME=/home/ha/ant-1.9.6export FINDBUGS_HOME=/home/ha/findbugs-3.0.1export PATH=$PATH:$FINDBUGS_HOME/bin:$MAVEN_HOME/bin:$ANT_HOME/bin[root@hadoop0 ~]# source /etc/profile4) 安装PROTOBUF[root@hadoop0 ~]# cd protobuf-2.5.0[root@hadoop0 ~]# ./configure[root@hadoop0 ~]# make[root@hadoop0 ~]# make check[root@hadoop0 ~]# make install5)验证各软件是否安装成功。
[root@hadoop0 ~]# mvn –v[root@hadoop0 ~]# ant –version[root@hadoop0 ~]# findbugs –version[root@hadoop0 ~]# protoc –version6)安装依赖包[root@hadoop0 ~]# yum -y install svn ncurses-devel gcc*[root@hadoop0 ~]# yum -y lzo-devel zlib-devel autoconf automake libtool cmake openssl-devel7)编译hadoop[**********************.1-src]#cd/home/ha/hadoop-2.7.1-src[**********************.1-src]#mvncleaninstall–DskipTests[**********************.1-src]#mvnpackage-Pdist,native-DskipTests–Dtar执行过程中,会从互联网下载许多东西,由于网络原因,可能会失败,多执行几次就会成功。
编译成功后,会出现/home/ha/hadoop-2.7.1-src/hadoop-dist/target/hadoop-2.7.1/lib/native文件夹。
7.安装hadoop1)解压hadoop[ha@hadoop0 ~]$ tar –zxvf hadoop-2.7.1.tar.gz并将上一步编译好的native的内容替换/home/ha/hadoop-2.7.1/lib/native内容2)修改/home/ha/hadoop-2.7.1/etc/hadoop下配置文件。
hadoop-env.sh hdfs-site.xml core-site.xml mapred-site.xml slaves yarn-env.sh yarn-site.xml 略,详见配置文件.需要建立/home/ha/tmp,/home/ha/dfs/name,/home/ha/dfs/data三个文件夹。
在core-site.xml中配置<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop0:9000</value></property><property><name>io.file.buffer.size</name><value>131072</value></property><property><name>hadoop.tmp.dir</name><value>file:/home/ha/tmp</value><description>Abase for other temporary directories.</description></property></configuration>在hdfs-site.xml中配置<configuration><property><name>node.secondary.http-address</name><value>hadoop0:9001</value></property><property><name>.dir</name><value>file:/home/ha/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/home/ha/dfs/data</value></property><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.webhdfs.enabled</name><value>true</value></property></configuration>配置mapred-site.xml文件<configuration><property><name></name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>hadoop0:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop0:19888</value></property></configuration>配置slaveshadoop1hadoop2配置yarn-site.xml<configuration><!-- Site specific YARN configuration properties --><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>hadoop0:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>hadoop0:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>hadoop0:8031</value></property><property><name>yarn.resourcemanager.admin.address</name><value>hadoop0:8033</value></property><property><name>yarn.resourcemanager.webapp.address</name><value>hadoop0:8088</value></property></configuration>确保hadoop-env.sh和yarn-env.sh中的JAVA_HOME是正确的。