ubuntu系统 安装hadoop,zookeeper等集群
从17年开始安装集群,第一次照着安装文档安装了无数遍,然后因为虚拟机太卡,在自己的ubuntu上系统上又摸索着安装,第三次是误删了系统内核,又重安系统,重安装大数据的相关软件,又给朋友安装过,但是没有哪一次我是从头到尾一直顺利的,总会有各种问题,权限问题,密钥问题,远程问题,防火墙问题等等。以前因为忙着没时间记录,现在因为要自己搭集群,只能在自己电脑上弄三个虚拟机,没办法,又要重新安装hadoop那些东西,于是想着以后换新电脑肯定还要继续安装…所以把自己安装的过程,遇到的问题的解决办法都记录下来,省着下次遇到了还要重新查百度…
我这里弄了三个虚拟机,但是其实可以先只安装一个虚拟机,然后把所有要安装的东西全都安装完,然后使用一个虚拟机克隆功能,就把所有的东西复制了下来,省去很多麻烦。
将jdk版本tar包解压后放在自己指定的路径,然后添加home环境变量。
添加环境变量有的人在profile中,有的在.bashrc中,我习惯用.bashrc比较方便不知道有啥不一样。
#add jdk path
`
export JAVA_HOME=/home/hduser/apps/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
`
这里要安装的是全分布式的hadoop和zookeeper
(我的安装都是参考网络上的博文)
安装hadoop分布式前面的步骤我借鉴文章如下:
https://blog.csdn.net/Dream19881003/article/details/7076079
(注意其中有个password命令是不对的,应该改成passwd命令)
还有要解决我开启三个虚拟机,ip地址总是改变的问题。每次开启虚拟机ifconfig你会发现ip地址和上次的都是不一样的,不解决的话会非常麻烦。
解决办法如下:
https://blog.csdn.net/Dream19881003/article/details/7076079
还有安装过程中只配置好一个系统中的就好,然后利用scp命令传到另一个系统中。
1.hadoop-env.sh中添加JAVA_HOME
2.core-site.xml添加如下
`
hadoop.tmp.dir
file:/home/hduser/apps/hadoop/tmp
fs.defaultFS
hdfs://localhost:9000
ha.zookeeper.quorum
master:2281,node1:2282,node2:2283
`
3.hdfs-site.xml添加如下:
dfs.namenode.name.dir
file:/home/hduser/apps/hadoop/tmp/dfs/name
true
dfs.namenodehandler.count
100
dfs.journalnode.edits.dir
file:/home/hduser/hadoop/journal
dfs.datanode.data.dir
file:/home/hduser/apps/hadoop/tmp/dfs/data
true
dfs.replication
2
true
dfs.permissions
false
4.mapred.xml配置:
mapred.job.tracker
master:9001
mapreduce.framwork.name
yarn
5.yarn-site.xml配置:
yarn.resourcemanager.hostname
master
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.webapp.address
master:8088
6.slaves配置:
node1
node2
注意1.scp命令多余的空格千万不要打否则一定会报错,我因为这个错误忙活大半天,总习惯多打空格
注意2.三个集群的节点用户组,用户,用户目录要一样,否则hadoop会format失败,这个知识有限我也不知道为啥呢。
注意3.ssh安装之后要修改.ssh文件夹的权限,要不然会出错->700
目前我只会简单的hadoop配置,有的博文提到配置更多的hdfs-site.xml,里面内容更多,但是很多我也不懂,所以就默认没写。
注意4.ssh远程主机最好写明主机名用户名,只写主机名就容易失败。我的三个主机hostname分别是master,node1,node2。创建的用户组是hadoop,其中的用户名是hduser。所以ssh master的时候最好写ssh hduser@master,前者错,后者是正确的。
7.继续补充问题:格式化节点多次以后,出现了ipc错误,网上也查了一些解决办法,简述一下。
命令:hadoop namenode -format ,格式化节点之后,注意datanode上的数据没了,我试过一次,自己实验的可以总格式化,但是如果真是实际应用,这恐怕是很可笑的吧…就像一碰见什么错误就重装系统似的,很low.
hadoop dfsadmin -report是查看datanode的节点使用情况,我之前就出现了used NanN%这样的情况,其他也是0,说明datanode未使用上。检查自己的hdfs-site.xml,core-site.xml,把hadoop下tmp下log文件都删除,把namenode机器上的data和name文件夹也清空,关闭集群后再格式化,然后再开启:start-dfs.sh、start-yarn.sh、jps
重点:如果重新格式化依旧显示使用0,或者datanode访问namenode节点9000端口失败,注意在配置defaultDfs的时候不要写localhost:9000,要写hosts下映射的主机名,要不然其他机器容易误会…我的三个集群的话,master作为namenode,node1,node2作为datanode,所以默认dfs访问地址为master:9000.
主机/etc/hosts中第一行默认的是127.0.0.1 localhost,第二行是127.0.1.1 XXX,要把127.0.1.1那个环回地址去掉,要不然节点也会误会的,没办法集群的脑子就是一根筋。
说起来安装zookeeper集群也有点麻烦
简单描述一下吧,也是参照网络上博文的随便找找就有的
解压到指定文件夹,然后配置conf内的zoo.cfg和log4j.properties文件
注意1.自己本机的server端口的主机地址要写0.0.0.0:2888:3888,要不然会有错误
就我的集群而言master中server.1=0.0.0.0:2888:3888,
node1中server.2=0.0.0.0:2888:3888
node2中server.3=0.0.0.0:2888:3888
其他server正常写主机名称配端口号
注意2.如果过程中出现错误要查看log日志,要zkServer.sh restart之后才能看见out.log日志中的错误(不知道为啥但是就是这样,如果没找到log最好restart一下)
我自己配的是三个集群,所以有三个id,上文中的server.1,srever.2,server.3对应三个集群中data.dir路径下的myid文件中内容
注意:zoo.cfg配置的data路径下一定要有myid文件,写好id号
现在就能想起来的这么多,以后如果还有其他错误再继续补充,趁着记忆新鲜,先记录一下
scala.tar.gz解压到指定文件夹后,配个环境变量就ok,然后scala -version查看一下就好了
查看version使用pyspark,出现一个spark的图形就OK
查看是否成功,进入网页:localhost:8080
注意,tomcat文件夹要有读写权限,直接给chmod -r 777就得了
首先先sudo apt-get update一下,如果这个遇到什么问题,…百度一下吧很好解决的
第二步sudo apt-get install mysql-server
安装过程中会提示输入密码mysql的密码强度三个等级,low(0)、middle(1)、high(2)。low好像是八个数字就可以,自己就设个简单点的,记住了。
第三步设置installation自己设去吧,也可以不设它默认的密码强度好像是2
kafka基于scala编写,所以安装之前要安装scala,其中也是有对应版本的,最好对应一下。
kafka集群中的配置还挺多的包括:server.properties 、consumer.properties、producer.properties、zookeeper.properties
每个集群的port都不要重复,我的分别是master:9092,node1:9093,node2:9094,broker.id分别是0,1,2
以上zookeeper.connect配置对应每个集群的zookeeper的主机名和端口号
参考文章:
https://blog.csdn.net/qq_38586378/article/details/81352358
后面我还要安装flume,还没用上,先这样吧,这博客时间间隔从去年11月到今年2月,我再不发出去就要长毛了