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 -formathdfs 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集群搭建