- 三台虚拟机安装linux(CenOS 6.5)
- 关闭防火墙、iptables(在root权限下,运行chkconfig iptables off永久关闭防火墙,然后运行service iptables status查看防火墙运行状态)
- 由于在局域网环境进行实验,因此虚拟机的网络适配器选择桥接模式(虚拟机-网络适配器-桥接模式)。
- 同时选择网络适配器设置(虚拟机-网络适配器-网络适配器设置),选择“连接网络适配器”
- 静态ip设置:局域网可以自行给每台主机设置静态ip,在网络里选择ipv4为手动模式,进行ip配置。(我分别设置为192.168.0.1/2/3)
export JAVA_BIN=/usr/java/bin export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME JAVA_BIN PATH CLASSPATHexport JAVA_LIBRARY_PATH=/home/renjie/hadoop/lib/native
#set Hadoop hadoop环境变量
export HADOOP_HOME=/home/renjie/hadoopexport PATH=$PATH:HADOOP_HOME/bin立即生效:source /etc/profile
B.在hadoop目录下,分别建立tmp、dfs、dfs/name、dfs/data文件夹
C.配置hadoop环境文件
修改hadoop/etc/hadoop/hadoop-env.sh,取消export JAVA_HOME=/usr/java的注释,并且配置java的绝对路径
修改hadoop/etc/hadoop/yarn-env.sh,同样将java路径配置为绝对路径
D.修改hadoop/etc/hadoop/core-site.xml
<configuration>
<property><name>fs.defaultFS</name><value>hdfs://192.168.0.1:9000</value></property><property><name>hadoop.tmp.dir</name><value>/home/renjie/hadoop/tmp</value></property></configuration>E.修改hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property><name>dfs.nameservices</name><value>Node1</value></property><property><name>dfs.ha.namenodes.Node1</name><value>Node1</value></property><property><name>dfs.datanode.data.dir</name><value>file:/home/renjie/hadoop/dfs/data</value></property><property><name>dfs.namenode.secondary.http-address</name><value>Node1:9001</value></property><property><name>dfs.webhdfs.enabled</name><value>true</value></property><property>
<name>dfs.replication</name><value>2</value></property></configuration>
F.修改hadoop/etc/hadoop/mapred-site.xml
<configuration>
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><property><name>yarn.resourcemanager.address</name><value>192.168.0.1:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>192.168.0.1:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>192.168.0.1:8031</value></property><property><name>yarn.resourcemanager.admin.address</name><value>192.168.0.1:8033</value></property><property><name>yarn.resourcemanager.webapp.address</name><value>192.168.0.1:8088</value></property><property><name>yarn.nodemanager.resource.memory-mb</name><value>768</value></property></configuration>
G.修改hadoop/etc/hadoop/slaves
其中注销掉localhost,添加
Node2
Node3
五、分发hadoop
将配置好的hadoop分发到其他节点。
在用户主目录下,scp -r hadoop username@192.168.0.2:/home/username //将当前目录下的hadoop文件夹传到192.168.0.2的username用户文件夹下。剩下节点也这样操作
六、初始化
进入hadoop目录。运行bin/hadoop namenode -format 若最后出现success,则成功初始化
七、运行hadoop
在master上,进入hadoop/sbin,运行./start-all.sh,运行hadoop
这个时候如果hadoop没有配置好的话,可能会进行报错。这一步运行后,提示中不能出现任何错误。我做的时候运行这一步,出现了
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 这种情况是没有找到本地库。解决方案:http://dl.bintray.com/sequenceiq/sequenceiq-bin/。在这个网站下载对应的版本包。下载后解压,将里面的文件覆盖到hadoop/lib/native/就行。 最后成功运行后,输入jps。出现此时运行的程序,若出现
10914 Jps
9112 ResourceManager8862 NameNode则master成功
在slave上,运行jps,若出现
2326 DataNode
3423 Jps则slave成功。
至此,hadoop成功运行。接下来可以运行example了