如何完整搭建linux hadoop完全分布式集群-基于linux操作系统(内含完整安装包)
**今天被朋友问到关于linux的hadoop搭建,由于不了解大数据相关知识,便搜索相关资料整理了一下,并完成个人的hadoop环境搭建.步骤较为繁琐,需进行一些必要的前期准备.
**一.前期相关配置
1.1下载并安装hadoop安装包,
在这里我使用的是2.8.2版本,如使用其他版本可自行官网下载.**(链接:(https://pan.baidu.com/s/1c9hPtoZBJ8LO2hbtuXUaCQ
提取码:5050 )
复制这段内容后打开百度网盘手机App,操作更方便哦)
**1.2 配置JDK 在这里我使用的是jdk-8u144链接:(https://pan.baidu.com/s/1kUjuPvBz5YV8g9gxgBEYmg
提取码:5050 )
复制这段内容后打开百度网盘手机App,操作更方便哦
1.3 上传到linux的 /opt/software
如果文件夹不存在,需切换root账号使用命令 mkdir -p /opt/
software 新建文件夹,然后使用rz命令上传jdk到 /opt/software 目录下.
(如果没有安装rz,使用命令 yum -y install lrzsz安装);
1.4 解压 jdk
进入 /opt/software目录下 ,命令解压 :tar -zxvf jdk-8u144-linux-x64.gz
1.5 复制解压文件到 /usr/local/jdk
cp -p jdk-8u144-linux-x64.gz /usr/local/jdk
1.6 配置jdk环境
修改profile系统配置命令: vi /etc/profile 进入配置文件,在末尾done之前添加如下内容:
保存后重新编译配置文件-命令:source /etc/profile
1.7 测试jdk是否安装成功
java -version
再次分别运行命令:java和javac
如果有信息输出,说明已安装成功,如未安装成功,建议从官网更换jdk版本并重复1.4及以后步骤;
2.
2.1克隆虚拟机克隆两个linux虚拟机,点击虚拟机>管理>克隆,分别命名为master,node1以及node2;
2.2 修改hosts文件
查到主机ip后,打开/etc/hosts文件,在顶部添加三台虚拟机的主机名和他的ip地址。其他的都不需要动。
从上到下分别为主机ip以及三个虚拟机ip,在三台主机上都修改好后,就可以实现三台主机可以互相ping通了
3. SSH免密连接
3.1首先确定机器上是否安装了ssh服务
上图是安装了ssh的状态,如果没装,可以这样将ssh服务安装上:
3.2安装了ssh后就需要对ssh进行配置了,首先在master主机上生成一对公钥和密钥
3.4使用ssh localhost就可以登录到自己的主机中了,在从节点也配置好了,就可以连接到其他主机了。可以使用exit退出登录。
3.5 要想主节点能够免密登录到从节点,还需要做如下配置:
将master主机上的id_rsa.pub复制到node1和node2上,并重命名为node1_rsa.pub和node2_rsa.pub。
将密钥加入到认证:
3.6 node1加入认证**
按照相同的方式,在node2上也把密钥加入认证。这样,在master主机上就能够免密连接到node1和node2了。
二.Hadoop安装及部署
以下操作只针对master主机服务器,其他主机服务器类似。
1.1上传hadoop包至 /opt/software目录
1.2 解压和拷贝hadoop至 /usr/local/hadoop,命令如下:
cd /opt/software
tar -zxvf hadoop-2.8.2.tar.gz
cp -r hadoop-2.8.2 /usr/local/hadoop
1.3 系统文件profile配置
配置系统环境变量
添加如下内容
vi /etc/profile
#hadoop
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
退出保存,重启配置
source /etc/profile
1.4 hadoop-env.sh文件配置
cd /usr/local/hadoop/etc/hadoop
vi hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/local/jdk
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native/"
退出保存
1.5 新增namenode和datanode存放,临时目录tmp
cd /usr/local/hadoop
mkdir -p dfs/data
mkdir -p dfs/name
mkdir -p tmp
新建目录
1.6修改hdfs-site.xml文件
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/dfs/data</value>
</property>
</configuration>
1.7修改core-site.xml文件
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
1.8 修改mapred-site.xml文件
目录默认只有mapred-site.xml.template文件,复制生成mapred-site.xml文件
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
1.9 修改yarn-site.xml文件
vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
1.10 修改slaves 文件,vim命令进入
在这里配置你的从节点名称:
2.1检查配置是否生效
使用hadoop version命令来检查上面的配置是否生效:
至此完成了所有的hadoop配置。
2.2格式化namenode并启动集群
看到successful就代表格式化namenode成功了。
2.3格式化成功
启动集群:
2.4 使用jps命令来查看master上的服务:
会看到服务有SecondaryNameNode、 NameNode、ResourceManager、Jps这四个。
2.5 查看Hadoop的运行服务
在从节点上使用jps命令,有三个服务:NodeManager、Jps、DataNode
2.6 从节点上的服务进程
还可以在web上使用浏览器来查看和管理集群,http://master:50070
2.7在web上查看集群
也可以查看各个从节点的情况:
2.8 查看从节点状态
启动成功后可以登陆web客户端查看yarn:http://master:8088: