前期准备
搭建虚拟机,修改虚拟机网关,关闭移除防火墙。
在根目录下新建software文件夹,将jdk和hadoop相关文件夹拖进文件夹
解压jdk到opt文件夹,配置jdk环境变量
虚拟机及jdk安装配置过程大家可以到博主前面的博客去找
修改主机名
方法一:vi /etc/hostname
方法二:hostnamectl set-hostname hadoop01(配置后立即生效)
修改主机列表:
vi /etc/hostname
配置免密登录
ssh-keygen -t rsa -P ""
将私钥复制到公钥
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys (>>为追加,若覆盖则用>)
添加互信
ssh-copy-id -i .ssh/id_rsa.pub -p22 root@192.168.56.110(或主机名)
免密登录验证
ssh -p 22 root@192.168.56.110
Hadoop配置
解压hadoop压缩文件到opt目录下
进入目录/opt/hadoop/etc/hadoop/
tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz -C /opt
配置hadoop-env.sh
将export JAVA_HOME的值改为java的路径
vi hadoop-env.sh
配置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.56.110:9000</value> //主机ip
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value> //hadoop临时文件存放目录,此处放在hadoop根目录下
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop01:50090</value> //主机名
</property>
</configuration>
配置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value> //主机名
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</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>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<!-- 日志聚集功能使用 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
配置slaves
将主机名配置在slaves中
配置hadoop环境变量
shift+G到环境变量最后,插入以下内容
export HADOOP_HOME=/opt/hadoop //hadoop安装路径
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"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
格式化HDFS
start-all.sh //启动hadoop
mr-jobhistory-daemon.sh start historyserver //启动hadoop历史服务
mr-jobhistory-daemon.sh stop historyserver //关闭hadoop历史服务
jps查看hadoop进程
stop-all.sh //关闭hadoop
登录网页查看Hadoop
192.168.56.110:50070 //HDFS页面
192.168.56.110:8088 //YARN管理页面
192.168.56.110:19888 //hadoop历史服务界面
Hadoop集群搭建
复制虚拟机
修改虚拟机ip
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
修改每台虚拟机主机名
hostnamectl set-hostname 主机名
修改主机列表
将集群内的所有主机的ip和对应的主机名添加到主机列表
vi /etc/hosts
设置免密私钥
将每台虚拟机重新设置免密登录
ssh-keygen -t rsa -P ""
复制私钥到公钥
将每台虚拟机的私钥复制到公钥
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
为集群内的所有机器添加互信(本机也要添加)
ssh-copy-id -i .ssh/id_rsa.pub -p22 root@192.168.56.110(或主机名)
验证集群内的虚拟机之间是否能免密登录
ssh -p 22 root@192.168.56.110
配置hdfs-site.xml(每台虚拟机都要配置)
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value> //将数值改为集群虚拟机数量的值
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop01:50090</value>
</property>
</configuration>
配置slaves(每台虚拟机都要配置)
将集群内所有的虚拟机名加入slaves中
格式化HDFS
hadoop namenode -format
启动hadoop
start-all.sh //启动hadoop
mr-jobhistory-daemon.sh start historyserver //启动hadoop历史服务
补充
若启动后查看进程jps,若缺少节点,就删除hadoop根目录下创建的tmp文件夹
每次格式化时此处选择y,否则就会缺少节点