赞
踩
这里比较推荐你使用VMware作为虚拟机的管理器。
首先在其中一台虚拟机配置好:(我的ubuntu安装后的user为ace)
安装java。
创建java目录
mkdir /usr/java
//下面修改权限组,我这里是ace,你的要根据你的user定
chown -R ace@ace /usr/java
然后将java的安装包解压至此
安装java然后配置环境变量,将java包解压到一个路径,比如/usr/java,然后修改环境变量/etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_181
export JRE_HOME=/usr/java/jdk1.8.0_181/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
然后
source /etc/profile
安装hadoop
创建hadoop目录
mkdir /usr/hadoop
//下面修改权限组,我这里是ace,你的要根据你的user定
chown -R ace@ace /usr/hadoop
然后将hadoop的安装包解压至此
安装hadoop然后配置环境变量,将hadoop解压到一个路径,比如/usr/hadoop,然后修改环境变量/etc/profile
## Hadoop Home
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
然后
source /etc/profile
由于我们是要有集群环境的,所以一台虚拟机是不行的,所以要克隆两台,并修改一些配置
在vmware上边栏菜单中:虚拟机=》管理=》克隆
在这里插入图片描述
然后启动克隆的虚拟机
修改hostname
vi /etc/hostname
修改为与原ubuntu不一样的主机名,这里我修改为了xiatom-2和xiatom-3(原先的为xiatom-1)
修改hosts
vi /etc/hosts
修改为如下内容,其中ip地址可以使用ifconfig在终端查询,要求ip与主机名对应
192.168.222.131 xiatom-1
192.168.222.132 xiatom-2
192.168.222.133 xiatom-3
这里要注意,将dhcp关闭,使用静态ip地址否则ip地址变化会导致hosts映射错误
在每个主机分别ping一下其他主机,可以ping通则ok。
如xiatom-1
ping xiatom-2
ping xiatom-3
首先是进群结构规划
xiatom-1 | xiatom-2 | xiatom-3 | |
---|---|---|---|
HDFS | NameNode、DataNode | DataNode | 2NameNode、DataNode |
YARN | NodeManager | ResourceManager、NodeManager | NodeManager |
在配置之前一定要指定每个节点的ip地址固定,也就是关闭dhcp自己分配ip,否则根据host可能查不到正确的节点。并且在hosts文件中不能有127.0.0.1的映射
下面所有配置都要对所有节点配置
首先进入
cd /usr/hadoop/hadoop-2.7.2/etc/hadoop
core-stie.xml
<configuration> <!-- 指定HDFS中NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://xiatom-1:9000</value> </property> <!-- 指定Hadoop运行时产生临时文件 --> <property> <name>hadoop.tmp.dir</name> <value>/usr/hadoop/hadoop-2.7.2/data/tmp</value> </property> </configuration>
hdfs-site.xml
<configuration>
<!-- 指定Hadoop second-namenode -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>xiatom-3:50090</value>
</property>
</configuration>
yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <!-- Reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>xiatom-2</value> </property> </configuration>
mapred-site.xml
将模板复制一份
cp mapred-site.xml.template mapred-site.xml
修改mapred-site.xml
<configuration>
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
拷贝到其他节点:(前提是可以ping通)
rsync -rvl /usr/hadoop/hadoop-2.7.2/etc/hadoop ace@xiatom-2:/usr/hadoop/hadoop-2.7.2/etc/hadoop
这里可以看到是ace用户
进入$HADOOP_HOME/etc/hadoop,修改如下三个文件
将其中的JAVA_HOME改为绝对路径,如果不更改的话可以直接使用这些脚本(因为JAVA_HOME以及加入到环境变量了)
但是当使用其他脚本调用此脚本的时候JAVA_HOME是识别不到的,所以需要我们修改为绝对路径
$HADOOP_HOME/etc/hadoop:
修改slave(当执行hadoop脚本时所有slave中的节点都会执行)
将所有节点写入slave:
xiatom-1
xiatom-2
xiatom-3
下面这几个命令最好在root和普通用户模式下都使用
ssh-keygen -t rsa
//然后三个回车
ssh-copy-id xiatom-2
ssh-copy-id xiatom-3
这样就可以免密登陆其他节点,并且可以群起hadoop
启动前,注意如果是第一次启动那么要把所有节点的data/ logs/删去,然后格式化namenode。
进入namenode所在节点(xiatom-1)
cd $HADOOP_HOME/sbin
start-dfs.sh
进入resource-manager所在节点 (xiatom-2)
cd $HADOOP_HOME/sbin
start-yarn.sh
然后可以使用jps
查看是否启动成功,如下图(其中jobhistoryServer是我自己又加的,所以没配的话是没有)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。