hadoop环境配置
前置:配置三台CentOS7的机器组成简单的集群
工具:VMware 11 、Xshell、Xftp
压缩包:hadoop-2.6.0-cdh5.14.2.tar.gz
jdk-8u141-linux-x64.tar.gz
zookeeper-3.4.5-cdh5.14.2.tar.gz
一、前置配置
1、IP配置
三台机器修改ip地址:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO="static"
IPADDR=192.168.49.130
NETMASK=255.255.255.0
GATEWAY=192.168.49.2
DNS1=8.8.8.8
准备三台linux机器,IP地址分别设置成为
第一台机器IP地址:192.168.49.130
第二台机器IP地址:192.168.49.140
第三台机器IP地址:192.168.49.150
注:49的信息需要根据“虚拟网络编辑器”中的信息进行相应的配置
2、关闭防火墙
三台机器在root用户下执行以下命令关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3、关闭selinux
三台机器在root用户下执行以下命令关闭selinux 三台机器执行以下命令修改SELINUX
,关闭selinux
vi /etc/selinux/config
SELINUX=disabled
4、更改主机名
三台机器分别更改主机名
第一台主机名更改为:master
第二台主机名更改为:slave1
第三台主机名更改为:slave2
第一台机器执行以下命令修改主机名
vi /etc/hostname
master
第二台机器执行以下命令修改主机名
vi /etc/hostname
slave1
第三台机器执行以下命令修改主机名
vi /etc/hostname
slave2
5、连接Xshell
其余两台机器如上述连接
6、更改主机名与IP地址映射
三台机器执行以下命令更改主机名与IP地址映射关系
vi /etc/hosts
192.168.49.130 master
192.168.49.140 slave1
192.168.49.150 slave2
7、同步时间
三台机器执行以下命令定时同步阿里云服务器时间,每隔一分钟同步时间
yum -y install ntpdate
crontab -e
*/1 * * * * /usr/sbin/ntpdate time1.aliyun.com
8、定义同一目录
定义三台linux服务器软件压缩包存放目录,以及解压后安装目录,三台机器执行以下命令,创建两个文 件夹,一个用于存放软件压缩包目录,一个用于存放解压后目录
# 软件压缩包存放目录
mkdir -p /bigdata/soft
# 软件解压后存放目录
mkdir -p /bigdata/install
二、安装JDK
上传压缩包到第一台服务器的/bigdata/soft下面,然后进行解压,配置环境变量即可,三台机器都依次安装 即可
cd /bigdata/soft/
tar -zxf jdk-8u141-linux-x64.tar.gz -C /bigdata/install/
修改环境变量
vi /etc/profile
#添加以下配置内容,配置jdk环境变量
export JAVA_HOME=/bigdata/install/jdk1.8.0_141
export PATH=:$JAVA_HOME/bin:$PATH
保存退出后执行
source /etc/profile
三、免密码登录
在三台机器执行以下命令生成公钥与私钥
1.在3 台机器分别执行下面命令
ssh-keygen -t rsa
随后,执行以下命令将公钥拷贝到master服务器上面去
2.在3台机器分别执行以下命令
ssh-copy-id master
3.master在root用户下,执行以下命令,将authorized_keys拷贝到slave1与slave2服务器
cd /root/.ssh
scp authorized_keys slave1:$PWD
scp authorized_keys slave2:$PWD
4.三台机器重启
init 6
四、安装zookeeper集群
注意事项:三台机器一定要保证时钟同步
1、下载zookeeper压缩包
网址:archive.cloudera.com/cdh5/cdh/5/
我们选择zookeeper-3.4.5-cdh5.14.2.tar.gz
下载完成之后,上传到我们的master的/bigdata/soft路径下准备进行安装
2、解压
master执行以下命令解压zookeeper的压缩包到master服务器的/bigdata/install路径下去,然后准备进行安装
cd /bigdata/soft
tar -zxvf zookeeper-3.4.5-cdh5.14.2.tar.gz -C /bigdata/install/
3、修改配置文件
进入第一台机器master修改配置文件
cd /bigdata/install/zookeeper-3.4.5-cdh5.14.2/conf
cp zoo_sample.cfg zoo.cfg
mkdir -p /bigdata/install/zookeeper-3.4.5-cdh5.14.2/zkdatas
vi zoo.cfg
注释掉之前的dataDir
添加如下
dataDir=/bigdata/install/zookeeper-3.4.5-cdh5.14.2/zkdatas
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
4、添加myid配置
在第一台机器的/bigdata/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/ 这个路径下创建一个文件,文件名为myid ,文件内容为1
echo 1 > /bigdata/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
5、安装包分发并修改myid的值
安装包分发到其他机器
第一台机器上面执行以下两个命令
scp -r /bigdata/install/zookeeper-3.4.5-cdh5.14.2/ slave1:/bigdata/install/
scp -r /bigdata/install/zookeeper-3.4.5-cdh5.14.2/ slave2:/bigdata/install/
第二台机器上修改myid的值为2
直接在第二台机器任意路径执行以下命令
echo 2 > /bigdata/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
第三台
echo 3 > /bigdata/install/zookeeper-3.4.5-cdh5.14.2/zkdatas/myid
6、三台机器启动zookeeper服务
三台机器启动zookeeper服务这个命令三台机器都要执行
/bigdata/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh start
/bigdata/install/zookeeper-3.4.5-cdh5.14.2/bin/zkServer.sh status
如果没有成功,可以通过zkServer.sh stop停止后,在重新start试试
五、hadoop集群的安装
安装环境服务部署规划
服务器IP | 192.168.49.130 | 192.168.49.140 | 192.168.49.150 |
---|---|---|---|
HDFS | NameNode | ||
HDFS | SecondaryNameNode | ||
HDFS | DataNode | DataNode | DataNode |
YARN | ResourceManager | ||
YARN | NodeManager | NodeManager | NodeManager |
1、上传压缩包并解压
将hadoop包上传到第一台服务器并解压 第一台机器执行以下命令
cd /bigdata/soft/
tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz -C /bigdata/install/
2、查看hadoop支持的压缩方式以及本地库
第一台机器执行以下命令
cd /bigdata/install/hadoop-2.6.0-cdh5.14.2
bin/hadoop checknative
结果如下:
hadoop: true /bigdata/install/hadoop-2.6.0-cdh5.14.2/lib/native/libhadoop.so.1.0.0
zlib: true /lib64/libz.so.1
snappy: true /lib64/libsnappy.so.1
lz4: true revision:10301
bzip2: true /lib64/libbz2.so.1
openssl: false Cannot load libcrypto.so (libcrypto.so: cannot open shared object file: No such file or directory)!
如果出现openssl为false,那么所有机器在线安装openssl即可,执行以下命令,虚拟机联网之后就可 以在线进行安装了
yum -y install openssl-devel
3、修改配置文件
1) 修改core-site.xml
第一台机器执行以下命令
cd /bigdata/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vi core-site.xml
用以下替换空的configuration标签
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/bigdata/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/tempDatas</value>
</property>
<!-- 缓冲区大小,实际工作中根据服务器性能动态调整 -->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!-- 开启hdfs的垃圾桶机制,删除掉的数据core可以从垃圾桶中回收,单位分钟 -->
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
</configuration>
2) 修改hdfs-site.xml
第一台机器执行以下命令
cd /bigdata/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vi hdfs-site.xml
用以下替换空的configuration标签
<configuration>
<!-- NameNode存储元数据信息的路径,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 -->
<!-- 集群动态上下线
<property>
<name>dfs.hosts</name>
<value>/bigdata/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/accept_host</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/bigdata/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/deny_host</value>
</property>
-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///bigdata/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/namenodeDatas</value>
</property>
<!-- 定义dataNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后多 个目录用,进行分割 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///bigdata/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas</value>
</property>
<property>
<name>dfs.namenode.edits.dir</name>
<value>file:///bigdata/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///bigdata/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/snn/name</value>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:///bigdata/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/snn/edits</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
</configuration>
3) 修改mared-site.xml
第一台机器执行以下命令
cd /bigdata/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
用以下替换空的configuration标签
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
4) 修改yarn-site.xml
第一台机器执行以下命令
cd /bigdata/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vi yarn-site.xml
用以下替换空的configuration标签
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
5) 修改slaves
第一台机器执行以下命令
cd /bigdata/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vi slaves
slave1
slave2
6) 修改hadoop-env.sh
第一台机器执行以下命令
第一台机器执行以下命令
cd /bigdata/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vi hadoop-env.sh
export JAVA_HOME=/bigdata/install/jdk1.8.0_141
4、创建文件存放目录
第一台机器执行以下命令
master机器上面创建以下目录
mkdir -p /bigdata/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/tempDatas
mkdir -p /bigdata/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/namenodeDatas
mkdir -p /bigdata/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas
mkdir -p /bigdata/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits
mkdir -p /bigdata/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/snn/name
mkdir -p /bigdata/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/snn/edits
5、安装包的分发
第一台机器执行以下命令
cd /bigdata/install/
scp -r hadoop-2.6.0-cdh5.14.2/ slave1:$PWD
scp -r hadoop-2.6.0-cdh5.14.2/ slave2:$PWD
6、配置hadoop的环境变量
三台机器都要进行配置hadoop的环境变量
三台机器执行以下命令
vi /etc/profile
export HADOOP_HOME=/bigdata/install/hadoop-2.6.0-cdh5.14.2
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置完成之后生效
source /etc/profile
7、集群启动
要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个集群。
注意:首次启动HDFS时,必须对其进行格式化操作。本质上是一些清理和准备工作,因为此时的
HDFS 在物理上还是不存在的。
在master上执行以下命令
hdfs namenode -format
如果配置了 etc/hadoop/slaves 和 ssh 免密登录,则可以使用程序脚本启动所有Hadoop 两个集群的相关进程,在主节点所设定的机器上执行。
启动集群
master节点上执行以下命令
start-all.sh
8、浏览器查看启动页面
hdfs集群访问地址
http://192.168.49.130:50070/dfshealth.html#tab-overview
yarn集群访问地址
http://192.168.49.130:8088/cluster
注意ip地址是之前配置的,不同的机器不一样
如果能够显示页面说明配置完成
在master上通过以下命令启动日志服务器
mr-jobhistory-daemon.sh start historyserver
有了日志服务器,以后在运行MR出错时,就可以调出错误信息了。
关闭指令如下:
mr-jobhistory-daemon.sh stop historyserver