1、安装虚拟机
虚拟机:VMware-workstation 11.0.0
操作系统:CentOS-6.5 64位
2、安装Xmanager
版本:Xmanager-v5.0.0,完成安装后,使用Xshell连接linux虚拟机,连接成功。
往虚拟机里拉文件比较方便,但是当虚拟机网络连接改为桥接模式后变不能使用这个了。
3、创建用户组和用户
创建用户组:groupadd hadoop
添加用户:useradd hadoop -g hadoop
4、安装jdk
a)安装包:jdk-7u21-linux-i586.tar.gz(不推荐使用rpm格式)
b)解压到/opt文件目录:tar -zxvf jdk-7u21-linux-i586.tar.gz -C /opt
c)改名为java:mv jdk1.7.0_21 java
d)配置环境变量:vi /etc/profile,添加如下内容
export JAVA_HOME=/opt/java
exprot PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
e)使配置文件立即生效:source /etc/profile
f)设置所有者为hadoop:chown -R hadoop:hadoop java/
5、安装Hadoop
a)安装包:hadoop-2.6.3.tar.gz
b)解压到/opt,改名为hadoop
c)设置环境变量:vi /etc/profile,添加如下内容
export HADOOP_HOME=/opt/hadoop export PATH=$HADOOP_HOME/bin:$PATH
d)使配置文件立即生效:source /etc/profile
e)设置所有者为hadoop:chown -R hadoop:hadoop hadoop/
f)在hadoop目录下新建三个文件目录:mkdir name/ ; mkdir data/ ; mkdir tmp/
6、修改地址解析文件/etc/hosts
命令:vi /etc/hosts,添加如下内容
192.168.253.131 master 192.168.253.132 data1 192.168.253.133 data2
7、修改hadoop配置文件
切换到hadoop用户,修改hadoop/etc/hadoop(老版本是hadoop/conf)下的配置文件:
a)hadoop-env.sh和yarn-env.sh
修改:
export JAVA_HOME=/opt/java
b)core-site.xml 在<configuration> </configuration>标签中添加如下内容:
<property> <name>hadoop.tmp.dir</name> <value>file:/opt/hadoop/tmp</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <property> <name>hadoop.proxyuser.u0.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.u0.groups</name> <value>*</value> </property>
c)hdfs-site.xml 在<configuration></configuration>标签中添加如下内容:
<property> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/hadoop/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/hadoop/data</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property>
d)默认只有mared-site.xml.template,复制并命名:cp mared-site.xml.template mared-site.xml
在<configuration></configuration>标签中添加如下内容:
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property>
e)yarn-site.xml
在<configuration></configuration>标签中添加如下内容:
<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>master:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8035</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property>
f)配置slaves文件-->>增加slave节点
vi slaves data1 data2
8、克隆
完整克隆出两个虚拟机,改hostname:vi /etc/hostname,分别为master、data1、data2
9、配置虚拟机网络
虚拟机安装后默认的是NAT模式,自动获取ip,本机能上网,虚拟机就能上网。Haoop集群部署,最好是把三个虚拟机设为桥接模式,就需要注意把三个ip设在同一个网段。
由于克隆后的系统,虚拟机只是修改了虚拟机的名字MAC等,并在/etc/udev/rules.d/70-persistent-net.rules文件中增加了一行名为eth1的设备名,
1)vi /etc/udev/rules.d/70-persistent-net.rules 文件
删除掉 关于 eth0 的信息,修改 第二条 eth1 的网卡的名字为 eth0。
2)vi /etc/udev/rules.d/70-persistent-net.rules和/etc/sysconfig/network-scripts/ifcfg-eth0
中的MAC地址要与虚拟机网卡的MAC地址相对应。
3)vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改UUID和IPADDR
到此:在master上ping data1和data2,能ping通,网络就配置好了
10、SSH无密码登录
1)产生密钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
2)导入authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
3)试验看是否安装成功
#查看是否有sshd进程 ps -e | grep ssh
#尝试登录本地 ssh localhost
4)密钥共享
#如下:hadoop是我的用户名
#进入master的.ssh目录
scp authorized_keys hadoop@data1:~/.ssh/authorized_keys_master
#进入data1的.ssh目录
cat authorized_keys_master >> authorized_keys
scp authorized_keys hadoop@data2:~/.ssh/authorized_keys_master
#进入data2的.ssh目录
cat authorized_keys_master >> authorized_keys
#此时的authorized_keys已经包含了三个虚拟机的密钥,复制给master和data1
scp authorized_keys hadoop@master:~/.ssh/authorized_keys
scp authorized_keys hadoop@data1:~/.ssh/authorized_keys
5)无密码登录测试
ssh data1
ssh data2
...
11、配置Hadoop环境变量
export JAVA_HOME=/opt/java export HADOOP_HOME=/opt/hadoop export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin: $HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
前面已经配置过jdk的环境变量,只需再加上hadoop的就行
12、启动hadoop
hadoop namenode -format
start-all.sh
查看进程:jps
出现错误
-bash: /opt/java/bin/jps: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
yum install glibc.i686
下载失败的话,使用如下方法
配置yum本地 安装缺少包(适合OEL)
mount /dev/cdrom1 /mnt
cd /etc/yum.repos.d 把里面CentOS开头的(默认的网络下载相关文件)备份到aa(文件夹)
vi /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///mnt/
enabled=1
gpgcheck=0
yum install glibc.i686
作者的话:该文档只是自己尝试搭建hadoop做的一个笔记,有不清楚或者不对的地方还望见谅,如果发现不对的地方,望指明,共同学习,共同进步。