Linux操作系统下安装Hadoop以及集群搭建
准备工作:
VMware新建虚拟机(虚拟机时间需要与主机同步)在根目录下新建software目录,把jdk、hadoop、hadoop-native、hive、hbase、zookeeper、mysql和java连接数据库jar包导入software目录下 将jdk、hadoop、hive、hbase、zookeeper解压到opt目录下hadoop-native解压到hadoop/etc/bin和hadoop/etc/bin/native目录下
配置环境变量(集群环境变量一次配置完成):
vi /etc/profile 按shift+g、o 插入以下代码:
export JAVA_HOME
=/opt
/jdk8
export JRE_HOME
=/opt
/jdk8
/jre
export CLASSPATH
=.:$JAVA_HOME
/lib
/dt
.jar
:$JAVA_HOME
/lib
/tools
.jar
export PATH
=/usr
/local
/sbin
:/usr
/local
/bin
:/usr
/sbin
:/usr
/bin
:/root
/bin
export HADOOP_HOME
=/opt
/hadoop
export HBASE_HOME
=/opt
/hbase
export HIVE_HOME
=/opt
/hive
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
:$JAVA_HOME
/bin
:$JRE_HOME
/bin
:$HADOOP_HOME
/sbin
:$HADOOP_HOME
/bin
:$HBASE_HOME
/bin
:$HIVE_HOME
/bin
source /etc/profile 刷新并执行环境变量测试环境变量是否配置成功
java -version、hadoop version、hive version、hbase version 修改主机名 vi /etc/hostname
#主机名
hadoop101
修改主机列表 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.128.101(或主机名)免密登录验证: ssh -p 22 root@192.168.128.101(或主机名)
配置Hadoop
进入hadoop/etc/hadoop目录下配置hadoop-env.sh vi hadoop-env.sh JAVA_HOME后的路径修改为虚拟机的java路径 配置core-site.xml vi core-site.xml
<configuration>
<property>
<name>fs
.defaultFS
</name
>
<value>hdfs
://192.168.128.101:9000</value
>
</property
>
<property>
<name>hadoop
.tmp
.dir
</name
>
<value>/opt
/hadoop
/tmp
</value
>
</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 vi 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 vi 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 vi 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 vi slaves
hadoop101
hadoop102
hadoop103
格式化HDFS hadoop namenode -format (检查是否有报错,根据报错信息查改配置文件)启动Hadoop start-all.sh (配置完hadoop环境变量才可以无视目录启动,否则进入hadoop的bin目录下启动)
启动完成后输入jps检查节点
登录网页50070端口查看是否能够正常连接 8088端口查看yarn管理页面 19888端口查看hadoop历史服务页面 检查无误后关闭hadoop stop-all.sh
搭建Hadoop集群
将搭建好单机Hadoop的虚拟机复制两个
VMware复制虚拟机时要重新生成MAC地址否则会网卡冲突无法连接网络 修改两个新建虚拟机的IP和主机名
vi /etc/sysconfig/network-scripts/ifcfg-ens33hostnamectl set-hostname 主机名 修改集群所有虚拟机的主机列表
vi /etc/hosts将所有主机名加入主机列表 将集群内所有虚拟机设置为免密登录
ssh-keygen -t rsa -P "" 将集群内所有虚拟机私钥复制到公钥
cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys 为集群内所有虚拟机添加互信
ssh-copy-id -i /root/.ssh/id_rsa.pub -p22 root@192.168.128.xxx(或主机名) 检验集群内虚拟机是否互相之间能免密登录
ssh -p 22 root@192.168.128.xxx 将集群内所有虚拟机切换到/opt/hadoop/etc/hadoop目录下配置hdfs-site.xml(每台虚拟机都要配置)
vi hdfs-site.xml
<configuration>
<property>
<name>dfs
.replication
</name
>
<value>3</value
>
</property
>
<property>
<name>dfs
.namenode
.secondary
.http
-address
</name
>
<value>hadoop02
:50090</value
>
</property
>
</configuration
>
配置slaves(每台虚拟机都需要配置)
vi slaves将所有虚拟机名加入slaves中 格式化HDFS
删除集群内所有虚拟机/opt/hadoop/tmp目录:rm -rf /opt/hadoop/tmp格式化HDFS:hadoop namenode -format 在集群主节点虚拟机上启动hadoop集群
start-all.sh检查节点数量若缺少节点,就停止集群,并删除所有虚拟机上/opt/Hadoop/tmp文件夹,再重新格式化HDFS,再启动hadoop集群
以上,Hadoop及Hadoop集群搭建完成