软件版本
- jdk-8u172-linux-x64.rpm
- scala-2.12.5.tgz
- zookeeper.tar.gz
- hadoop-2.7.6.tar.gz
- spark-2.2.1-bin-hadoop2.7.tgz
- hbase-1.2.6-bin.tar.gz
- apache-phoenix-4.13.1-HBase-1.2-bin.tar.gz
服务器规划
主机名 | 用户名 | IP | 安装的软件 | 运行的进程 |
---|---|---|---|---|
hadoop101 | hadoop | 101 | jdk、hadoop、spark、hbase、phoenix、zookeeper | DataNode、NodeManager、JournalNode、spark、HRegionServer、phoneix、QuorumPeerMain |
hadoop102 | hadoop | 102 | jdk、hadoop、spark、hbase、phoenix、zookeeper | DataNode、NodeManager、JournalNode、spark、HRegionServer、phoneix、QuorumPeerMain |
hadoop103 | hadoop | 103 | jdk、hadoop、spark、hbase、phoenix、zookeeper | DataNode、NodeManager、JournalNode、spark、HRegionServer、phoneix、QuorumPeerMain |
manager202 | hadoop | 202 | jdk、hadoop、spark、hbase、phoenix | NameNode(active)、 DFSZKFailoverController(zkfc)、HMaster、ResourceManager、mysql |
manager203 | hadoop | 203 | jdk、hadoop、spark、hbase、phoenix | NameNode(standby)、DFSZKFailoverController(zkfc)、HMaster、ResourceManager、mysql |
环境配置
1. 安装JDK、Scala
# jdk
rpm -ivh ./soft/jdk-8u172-linux-x64.rpm
# scala
mkdir /usr/scala
tar -xzvf /usr/local/soft/scala-2.12.5.tgz -C /usr/scala/
2. 设置主机名
# 修改各个主机对应的hostname,以manager202举例
hostname manager202
# 修改network
vi /etc/sysconfig/network
# 输入
HOSTNAME=manager202
3. 配置hosts
vi /etc/hosts
xxx.101 hadoop101
xxx.102 hadoop102
xxx.103 hadoop103
xxx.202 manager202
xxx.203 manager203
4. 建立hadoop用户并设置工作目录及权限
# 添加用户组、用户、修改密码
groupadd hadoop
useradd -g hadoop hadoop
passwd hadoop
# 创建hadoop的工作目录并赋权
mkdir /hadoop
chown -R hadoop.hadoop /hadoop
5. 为hadoop用户配置SSH免密码登录
# 切换到hadoop用户 su hadoop # 使用命令生成密钥,各服务器都需要执行 # 中间出现询问时,需要敲入一个回车 ssh-keygen -t rsa -P '' # 在manager202创建密钥整合文件 touch /home/hadoop/.ssh/authorized_keys
# 将所有服务器中生成的密钥放入该文件中并传输给其他各机器 # 各机器拷贝原有密钥传输到manager202,以下用hadoop101举例 cd /home/hadoop/.ssh
cp id_rsa.pub authorized_keys_hadoop101
scp authorized_keys_hadoop101 hadoop@manager202:/home/hadoop/.ssh
cat authorized_keys_hadoop101 >> authorized_keys # 将所有服务器的密钥放入authorized_keys后,在manager202上将该文件分发到其他机器 scp authorized_keys hadoop@hadoop101:/home/hadoop/.ssh # 对密钥文件授权 chmod 400 authorized_keys # 测试是否成功 ssh hadoop101 # 可以清理传入到manager202中的authorized_keys_xxxxxx文件
6. 环境变量
hadoop所专有的环境变量可以放到用户目录 ~/.bashrc 中,防止引用混乱以及远程ssh调用不到
java等通用变量可以放到系统的/etc/profile中
su hadoop
cd ~
vi .bashrc
# 因为定义好了目录及软件版本,此处统一给出全部的环境变量配置
#java
export JAVA_HOME=/usr/java/jdk1.8.0_172-amd64
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#Hadoop
export HADOOP_HOME=/hadoop/hadoop-2.7.6
export CLASSPATH=.:$HADOOP_HOME/lib:$CLASSPATH
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_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
#scala
export SCALA_HOME=/usr/scala/scala-2.12.5
#spark
export SPARK_HOME=/hadoop/spark-2.2.1-bin-hadoop2.7
#zk
export ZK_HOME=/hadoop/zookeeper
#hbase
export HBASE_HOME=/hadoop/hbase-1.2.6
#phoenix
export PHOENIX_HOME=/hadoop/phoenix-4.13.1-HBase-1.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin:$SPARK_HOME/bin:$ZK_HOME/bin:$HBASE_HOME/bin:$PHOENIX_HOME/bin
# 使环境变量生效
source .bashrc