大数据已是当今这个时代很是很是热的一个技术方向,全部的行业都在利用大数据提高业务,包括不少的实体行业,制造企业,都但愿利用现有的数据、亦或是能够爬取的数据。挖掘出更多的商业价值。曾经个人驾校教练就和我说过一个场景,能不能利用大数据和人工智能的技术手段,来分析当地有比较大意向想要学车,考驾照,买车的人。而后把驾校的招生信息或者广告直接经过必定的渠道(短信、邮件、电话、某某贴吧、论坛、app等等方式),推送给意向准客户。咱们都知道任何的技术项目,研发就是为了提高业务下降成本,特别是传统的研发,下降成本就是最最核心的目的。由于前期的:市场调研、业务产品规划、战略部署等更多的是拓展市场以及竞争对手的分析。有点扯远了。回到大数据,首先得有一个好的框架工具,那就是今天要介绍的Hadoop。同时要基于Hadoop来作大数据开发,就必须把环境给搭建起来。html
VMware的安装就不说了,很简单下一步、下一步就行了。 下载地址:www.vmware.com/products/wo… VMware 14的版本,我用的是windows版本。java
CentOS使用6.5的版本node
CentOS 镜像选择 web
硬盘大小配置 apache
自定义硬件配置vim
等待完成安装windows
NAT网络配置bash
接下来配置虚拟机的网络,点击编辑---选择“虚拟网络编辑器”服务器
ip:192.168.241.0、 子网掩码:255.255.255.0、 网关:192.168.241.2网络
这些后面配置的时候都须要用到,先作一个记录
终端输入命令:
进入cd /etc/sysconfig/network-scripts
vim ifcfg-eth0
将ip、子网掩码、网关等信息输入并保存
输入/etc/init.d/network restart,重启网络服务。
ping www.baidu.com, 以下图表示能够访问网络。
直接操做VM虚拟机着实麻烦,使用SecureCRT命令行神器,链接虚拟机,能够很方便的操做。 安装好SecureCRT后,打开Session Manager-->New Session-->降master的机子的ip作为host输入,用户名是你配置的。链接的时候会要求输入密码,单机save password,方便之后链接无需再次输入密码。
很简单,先挂起master主节点虚拟机,而后找到虚拟机本地磁盘的路径文件夹,复制两个文件夹并重命名以下图:
一样的,在SecureCRT中,新建两个从节点的session机器。步骤和3master的同样。
jdk我用的是 1.8版本,这个能够去oracle官方下载。首先要将Windows下的文件拷贝到CentOS中,须要有一个共享文件夹。 选择电脑小图标设置,在选项的共享文件夹,启用文件共享并添加共享文件。
经过 cp拷贝命令将jdk1.8的压缩包拷贝到/usr/local/src/java目录下,首先建立java目录:
mkdir /usr/local/src/java
cp jdk* /usr/local/src/java
拷贝完成后,进入/usr/local/src/java经过tar -zxvf jdk*命令解压jdk的压缩包。
编辑配置jdk环境变量
vim ~/.bashrc
export JAVA_HOME=/usr/local/src/java/jdk1.8.0_181
export CLASSPATH=:$CLASSPATH:$JAVA_HOME/lib
export PATH=:$PATH:$JAVA_HOME/bin
source ~/.bashrc更新环境变量文件(这个文件表示当前用户组的环境变量)
配置从节点jdk及其环境变量
把解压的jdk文件拷贝到另外两个从节点:
在/usr/local/src/hadoop/hadoop-2.6.1目录下新建tmp文件夹、dfs/name、dfs/data等文件夹。
修改配置文件:
vim hadoop-env.sh
export JAVA_HOME=/usr/local/src/java/jdk1.8.0_152
vim yarn-env.sh
export JAVA_HOME=/usr/local/src/java/jdk1.8.0_152
vim slaves
slave1
slave2
vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.241.10:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/src/hadoop/hadoop-2.6.1/tmp</value>
</property>
</configuration>
复制代码
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/src/hadoop/hadoop-2.6.1/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/src/hadoop/hadoop-2.6.1/dfs/data</value>
</property>
<property>
<name>dfs.repliction</name>
<value>3</value>
</property>
</configuration>
复制代码
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
复制代码
vim yarn-site.xml
<configuration>
<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>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8035</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
复制代码
将hadoop加入环境变量
vim ~/.bashrc
export HADOOP_HOME=/usr/local/src/hadoop/hadoop-2.6.1
export PATH=$PATH:$HADOOP_HOME/bin
source ~/.bashrc 更新环境变量
将三台机器的网络配置到各自的/etc/hosts文件中。
192.168.241.10 master
192.168.241.11 slave1
192.168.241.12 slave2
同时将三台机器的域名:master、slave一、slave2配置到网络文件中
vim /etc/sysconfig/network
HOSTNAME=master
HOSTNAME=slave1
HOSTNAME=slave2
并使用hostname和bash命令而后上面域名生效,以下图:
关闭全部机器节点的防火墙,避免启动hadoop出现没必要要的错误,难以排查问题
/etc/init.d/iptables stop
setenforce 0
创建机器节点间的互信免密登陆
ssh-keygen
cd ~/.ssh (进入隐藏的ssh目录)
将id_rsa.pub公钥文件中的加密字符串拷贝到authorized_keys文件中。
将其它节点机器的ssh的id_rsa.pub公钥文件中的加密字符串拷贝到authorized_keys文件中。这里个人集群有三台节点机器,那就authorized_keys文件中有三个加密字符串,以下图:
验证是否经过ssh互信免费登陆成功
ssh slave1
启动集群,初始格式化Namenode
hadoop namenode -format
./start-all.sh
检查集群进程是否都起来
jps命令
master
![]()
slave1
![]()
slave2
![]()
这样表示hadoop分布式集群环境搭建成功!!!