1个主节点:centos100(192.168.65.128),
2个(从)子节点:centos101(192.168.65.129),centos102(192.168.65.130)
vi /etc/sysconfig/network
添加内容:
NETWORKING=yes
HOSTNAME=centos100
vi /etc/sysconfig/network
添加内容:
NETWORKING=yes
HOSTNAME=centos101
vi /etc/sysconfig/network
添加内容:
NETWORKING=yes
HOSTNAME=centos102
打开主节点的hosts文件,要将文件的前两行注释掉 (注释当前主机的信息)并在文件中添加所有hadoop集群的主机信息。
vi /etc/hosts
192.168.65.128 centos100
192.168.65.129 centos101
192.168.65.130 centos102
保存之后,将主节点的hosts分别拷贝到其他两个子节点
scp /etc/hosts [email protected]:/etc/
scp /etc/hosts [email protected]:/etc/
然后分别执行(重启服务器也可以不执行下面的语句): /bin/hostsname hostsname
例如:master上执行 /bin/hostsname master,使之生效。
在每个节点上分别执行:
ssh-keygen -t rsa
一直按回车直到生成结束
执行结束之后每个节点上的/root/.ssh/目录下生成了两个文件 id_rsa 和 id_rsa.pub
其中前者为私钥,后者为公钥
在主节点上执行:
cp id_rsa.pub authorized_keys
将两个子节点的公钥拷贝到主节点上,分别在两个子节点上执行:
scp /root/.ssh/id_rsa.pub root@centos128:/root/.ssh/id_rsa_centos101.pub
scp /root/.ssh/id_rsa.pub root@centos128:/root/.ssh/id_rsa_centos102.pub
然后在主节点上,将拷贝过来的两个公钥合并到authorized_keys文件中去
主节点上执行:
cat id_rsa_centos101.pub>> authorized_keys
cat id_rsa_centos102.pub>> authorized_keys
最后测试是否配置成功
在centos100上分别执行
ssh centos101
ssh centos102
能正确跳转到两台子节点的操作界面即可,同样在每个子节点通过相同的方式登录主节点和其他子节点也能无密码正常登录就表示配置成功。
这里的配置方式可以有多种操作步骤,最终目的是每个节点上的/root/.ssh/authorized_keys文件中都包含所有的节点生成的公钥内容。
主节点上用scp命令将authorized_keys文件拷贝到子节点的相应位置
scp authorized_keys root@centos101:/root/.ssh/
scp authorized_keys root@centos102:/root/.ssh/
查看系统已经装的jdk:
rpm -qa|grep jdk
卸载jdk:
rpm -e --nodeps copy-jdk-configs-3.3-2.el7.noarch
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
cd /
cd /opt/
mkdir java
cd java
rz
(安装在同一位置/opt/java/jdk1.8.0_73)
下载JDK
解压JDK : tar -zxvf jdk-8u73-linux-x64.gz
配置环境变量, 编辑profile文件:
vi /etc/profile
在profile文件末尾添加以下代码:
export JAVA_HOME=/opt/java/jdk1.8.0_73
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
保存后,使刚才编辑的文件生效:
source /etc/profile
测试是否安装成功:java –version
在master主机上安装hadoop
安装位置自定,例如安装在/usr/tools目录下面
下载hadoop包,放在/usr/tools目录下,解压hadoop
tar -zxvf hadoop-3.0.0tar.gz
在usr下面生成hadoop-3.0.0目录
配置环境变量:
vi /etc/profile
在末尾添加:
export HADOOP_HOME=/usr/tools/hadoop-3.0.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存后使新编辑的profile生效:
source /etc/profile
需要配置的文件的位置为/hadoop-3.0.0/etc/hadoop,需要修改的有以下几个
hadoop-env.sh
yarn-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves
其中
hadoop-env.sh和yarn-env.sh里面都要添加jdk的环境变量:
hadoop-env.sh中
# The java implementation to use.
export JAVA_HOME=/opt/java/jdk1.8.0_73
(红色为新添加的内容,其他的代码是文件中原有的)
# The jsvc implementation to use. Jsvc is required to run secure datanodes
# that bind to privileged ports to provide authentication of data transfer
# protocol. Jsvc is not required if SASL is configured for authentication of
# data transfer protocol using non-privileged ports.
#export JSVC_HOME=${JSVC_HOME}
yarn-env.sh中(Hadoop3.X版本无需配置这个)
# User for YARN daemons
export HADOOP_YARN_USER=${HADOOP_YARN_USER:-yarn}
# resolve links - $0 may be a softlink
export YARN_CONF_DIR="${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}"
# some Java parameters
export JAVA_HOME=/opt/java/jdk1.8.0_73
(红色为新添加的内容,其他的代码是文件中原有的)
core-site.xml中
hdfs-site.xml中
mapred-site.xml中先cp mapred-site.xml.template mapred-site.xml
yarn-site.xml中
slaves中
centos100
centos101
centos102
主节点上执行:
scp -r /usr/tools/hadoop-3.0.0 root@centos101:/usr/tools
scp -r /usr/tools/hadoop-3.0.0 root@centos102:/usr/tools
拷贝profile到子节点
主节点上执行:
scp /etc/profile root@centos101:/etc/
scp /etc/profile root@centos102:/etc/
在两个子节点上分别使新的profile生效:
source /etc/profile
主节点上进入hadoop-2.7.3目录
然后执行:
./bin/hadoop namenode -format
新版本用下面的语句不用hadoop命令了
./bin/hdfs namenode -format
提示:successfully formatted表示格式化成功
主节点上在hadoop-3.0.0目录下执行:
./sbin/start-all.sh
start-all.sh
主节点上jps进程有:6个
DataNode
Jps
SecondaryNameNode
NameNode
ResourceManager
NodeManager
每个子节点上的jps进程有:3个
Jps
DataNode
NodeManager
如果这样表示hadoop集群配置成功
在/hadoop/sbin路径下:
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root