hadoop-2.7.5 完全分布式集群搭建
(1)Centos 64bit操作系统
三台Centos操作系统,node1作为主节点,node2,node3为从节点
(2)配置三台机器的/etc/hosts
在三台机器的/etc/hosts中加入一下ip及hostname
加入之后的hosts文件如下,
注:(此处可以修改,也可以不修改)永久修改主机的hostname,修改后记得重启
node1, vim /etc/sysconfig/network
node2, vim /etc/sysconfig/network
node3, vim /etc/sysconfig/network
以上可以永久修改三台机器的hostname。
(3)配置三台SSH免密登陆(root用户)
在node1,node2,node3上执行命令
ssh-keygen -t rsa -P ""
在/root/.ssh/下,得到id_rsa,id_rsa.pub文件
在执行命令
cat id_rsa.pub >> authorized_keys
生成authorized_keys 文件
此时,三台机器上都有各自的authorized_keys文件。
把node1,node2的authorized_keys文件 追加 到node3的authorized_keys文件,然后node3上的authorized_keys文件拷贝到node1,node2的/root/.ssh/文件夹下,即可。
注意:有的说,此处未做验证,如有问题可以修改一下权限
(1)/root/.ssh 需要给700权限。(chmod 700 /root/.ssh)
(2)/root/.ssh/authorized_keys 给600 权限。(chmod 600 /root/.ssh/authorized_keys)
至此,SSH免密登陆配置OK!
(4)配置JDK
三台node1,node2,node3同样配置。
此处用的JDK是jdk-8u11-linux-x64.tar.gz
tar zxf jdk-8u11-linux-x64.tar
解压得到
/usr/local/jdk_1.8.0_11
使用软连接命令方便路径
ln -s /usr/local/jdk_1.8.0_11 /usr/local/jdk
配置/etc/profile 文件,vim /etc/profile
在文件后追加:
JAVA_HOME=/usr/local/jdk
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:#JAVA_HOME/lib/rt.jar
export JAVA_HOME PATH CLASSPATH
保存profile后,退出。
执行命令,配置立刻生效。
source /etc/profile
使配置立即生效。
(5)配置hadoop环境。
以下操作,先在node1上进行配置,之后将配置好的hadoop 文件加及内容拷贝到node2,node3上即可。
上传hadoop包,hadoop-2.7.5.tar.gz ,放置于/opt目录下,
解压hadoop-2.7.5.tar.gz命令
tar zxf hadoop-2.7.5.tar
得到 hadoop-2.7.5文件夹
软连接方便配置
cd /opt
ln -s hadoop-2.7.5 hadoop
(5.1)修改/etc/profile,追加内容(该步在node2,node3 也需要做环境变量配置)
export HADOOP_HOME=/opt/hadoop/
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_ROOT_LOGGER=INFO,console
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
(5.2)修改/opt/hadoop/etc/hadoop/hadoop-env.sh
改为实际的JDK地址。
export JAVA_HOME=/usr/local/jdk
(5.3)修改/opt/hadoop/etc/hadoop/slaves
此处为2个从节点,node2,node3
node2
node3
(5.4)修改/opt/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>
(5.5) 修改/opt/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node3:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop/hdfs/data</value>
</property>
(5.6) 修改/opt/hadoop/etc/hadoop/mapred-site.xml
如果没有mapred-site.xml ,
可以执行命令,复制一个mapred-site.xml
cp mapred-site.xml.template mapred-site.xml.template
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>node1:50030</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:19888</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>node1:9001</value>
</property>
</configuration>
(5.7)修改/opt/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>node1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>node1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>node1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>node1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>node1:8088</value>
</property>
</configuration>
至此,node1上的hadoop配置完成,将/opt/hadoop-2.7.5全部拷贝到node2,node3
scp -r /opt/hadoop-2.7.5 node2:/opt/
scp -r /opt/hadoop-2.7.5 node3:/opt
(5.8)集群格式化
分别在node1,node2,node3 执行
hadoop namenode -format
如果没有报错,则格式完成。
(5.9)启动集群
在node1上,启动hadoop集群。
cd /opt/hadoop/sbin
./start-all.sh
使用jps查询运行的任务。
node1:
node2:
node3:
访问node1主节点,(记得关闭防火墙)
http://192.168.0.211:50070
http://192.168.0.211:8088