centos7大数据集群搭建
转载地址https://www.jianshu.com/p/ddb868bd97cd
centos7大数据集群搭建
前置条件
刚开始我hadoop是cdh版,后期由于学的太多,软件版本混杂,又转了Apache版,但是cdh及收购的CM也是一大优势。为了方便我这里写的是Apache版的。
设置主机名。
有起码三台虚拟机,且各本机名和ip地址明确,写在vim /etc/hosts,每台机都配,localhost这个本地主机名大家可以配,可以不配,建议不配,一一对应即可
192.168.43.53 node1
192.168.43.122 node2
192.168.43.211 node3
更改本机主机名配置文件,可以先查,输入hostname看结果,但没设置过得肯定没有)
查:hostname
改:vi /etc/sysconfig/network
增:
NETWORKING=true
HOSTNAME=admin
此时大部分机器再查hostname都改掉了,如果有没变化的,请再改一个文件:vim /etc/hostname
将里面的主机名改为自己想要的。然后reboot
或者重启即可。
JDK8已安装,输入java -version
查看jdk版本,显示jdk1.8版本。
ssh服务已开启
yum install ssh
设置免密登录。
这里是用root用户操作的,如果是普通用户,请su root
并设置ssh免密登录,不设置后面开启的时候会提示五六次输入密码ssh-keygen -t rsa
#根据提示来,看不到yes/no就回车,直至出现一个框框cd ~/.ssh
#.ssh文件夹
这里一定要注意,有些设置出错可能导致免密无效。
无效原因一:root和普通用户都设置了免密,都在ssh文件里生成了文件,其实我们(学习者)只需要在root/.ssh目录下生成即可。
无效原因二:.ssh文件目录权限默认700,authorized_keys文件权限默认600,请不让进行改动。
无效原因三:秘钥重复,一般刚接触反复试验,authorized_keys里的秘钥会出现很多重复和无效的,建议删了重头再来,免得后期出错。
在/root/.ssh目录下,执行这条语句:ssh-copy-id -i id_rsa.pub root@node2
。
其中id_rsa.pub是前面生成的文件,root是用户,node2是目标机器的ip,执行完,会提示你试一试,此时ssh node2
无需密码,也可以给本机弄一个。要是你想要其他机器ssh本机不需要密码,去其他机器重复上面的操作。
hadoop集群搭建
其实也是跟着hadoop官网配置的,有兴趣的去官网准确一点,看我的踩到坑了有个对比而已。
将压缩包放置想设的集群老大中,等下配置完成通过scp指令配置其余三台
在官网下载hadoop-2.10.0.tar.gz压缩包,放至/opt/app目录下
将压缩包进行解压缩tar -zxvf hadoop-2.10.0.tar.gz
将hadoop重命名mv hadoop-2.10.0.tar.gz hadoop-2.10.0
修改hadoop配置文件,进入hadoop配置文件目录。cd /opt/app/hadoop-2.10.0/etc/hadoop
没有相应配置文件的,会有xxx.xml.properties这样的参考配置,可以直接复制。cp xxx.xml.properties xxx.xml
修改core-site.xml,命令:vi core-site.xml
添加如下代码
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>65536</value>
</property>
<!-- hdfs lzo压缩配置-->
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.BZip2Codec</value>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
</configuration>
修改hdfs-site.xml,命令:vi hdfs-site.xml,需要新建data文件夹存放节点信息,且dfs.hosts文件写了三台机的主机名。
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/app/hadoop-2.10.0/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/app/hadoop-2.10.0/data/datanode</value>
</property>
<property>
<name>dfs.hosts</name>
<value>/opt/app/hadoop-2.10.0/etc/hadoop/dfs.hosts</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
</property>
</configuration>
修改mapred-site.xml,添加如下代码没有这份文件从mapred-site.xml.template复制一份
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置 MapReduce JobHistory Server 地址 ,默认端口10020 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<!-- 配置 MapReduce JobHistory Server web ui 地址, 默认端口19888 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
<!--hdfs lzo压缩配置 -->
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
<property>
<name>mapred.map.output.compression.codec</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
<property>
<name>mapred.child.env</name>
<value>LD_LIBRARY_PATH=/opt/app/hadoop-2.10.0/lzo/lib</value>
</property>
</configuration>
修改yarn-site.xml,命令为:vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<!-- 这里是官网建议有的,但是后面我跑MapReduce容易卡住,怀疑是这儿配置问题,就注释掉了-->
<!--
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>8182</value>
<discription>每个任务最多可用内存,默认8182MB</discription>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>64</value>
<discription>每个任务最小可用内存</discription>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>3</value> ###物理内存和虚拟内存比率
</property>
-->
<!-- oozie任务历史服务 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs/</value>
</property>
</configuration>
修改hbase-site.xml,命令vi hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://node1:8020/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,node3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/app/zookeeper-3.5.5/data</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
修改slaves,命令为:vi slaves,内容为集群内的主机名
node1
node2
node3
修改hadoop-env.sh文件,添加字段说明jdk路径,lzo是一种压缩格式,不要的注释掉。export JAVA_HOME=/opt/app/jdk1.8
# hadoop环境
export HADOOP_HOME=/opt/app/hadoop-2.10.0
# lzo配置
export LD_LIBRARY_PATH=/opt/app/hadoop-2.10.0/lzo/lib
更改本机配置文件,添加hadoop环境变量,每台机都需要配vi /etc/profile
添加
HADOOP_HOME=/usr/local/app/hadoop
PATH=$HADOOP_HOME/bin:$PATH
更新配置文件source /etc/profile
至此,集群老大配置完成,将hadoop文件分发至各小弟,-r迭代传输@后面跟小弟主机名
scp -r /opt/app/hadoop-2.10.0 root@node2:/opt/app
scp -r /opt/app/hadoop-2.10.0 root@node3:/opt/app
更新节点信息,上一步执行不完整会造成不识别hdfs命令
特别注意,在节点操作上,如果在老大上启动过hadoop,它的节点配置文件会复制到小弟们上,需要删除,删除hdfs-site.xml下面目录的子文件,另外小弟们的/etc/hosts/也需要配置老大的ip,不然无法识别那个老大的主机名是啥,都删除个遍后再启动老大的hadoop。hdfs namenode -format
hdfs datanode -format
至此,hadoop集群搭建完成,下面开始测试启动hadoop集群
启动老大的hadoop,进入sbin目录
./start-all.sh
1,输入指令jps
查看jps进程
NameNode
Jps
SecondaryNameNode
DataNode
老大有NameNode和DataNode
小弟的DataNode和nodemananger应存在(且小弟不用开启hadoop)
2,进入浏览器,进入http://node1:50070
,Summary的LiveNode存活数为你的主机个数即成功
hive集群搭建
zookeeper集群搭建
kafka集群搭建
spark集群搭建