centos cdh(centos现在哪个版本最流行)
大家好,感谢邀请,今天来为大家分享一下centos cdh的问题,以及和centos现在哪个版本最流行的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
如何用cloudera manager接管已有hadoop的cdh版本集群
本文介绍如何搭建cloudera manager去接入已有hadoop组件(cdh),搜索国内资料并无整体介绍,没有任何参考文章可以借鉴;通过大数据qq交流群当中某老师提供的国外某篇cloudera cto的文章得到解决思路,经实验调试可以实现此功能。
下面进入本文主题。
一、下载必备文件:
1.cloudera manager:
大部分公司内大数据集群环境都无公网访问权限,针对当前集群系统环境和想要接入的cm版本找到对应版本离线包,对于redhat、centos系统来说el6就是redhat6、centos6系统,之后找到想要安装的cm版本,本文搭建过程采用cloudera-manager-el6-cm5.9.0_x86_64.tar.gz
2.cdh安装包:
本搭建过程采用CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel、CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1,parcel文件为cdh压缩包,执行安装过程会进行解压并且上传到各节点;sha1文件内为压缩包的校验码
3.mysql的jdbc驱动jar包:
4.mysql5.6:
本搭建过程采用mysql5.6社区版源码包mysql-5.6.35.tar.gz
二、cloudera manager安装:
1.server端安装配置mysql5.6:
解压mysql安装包后执行
1 yuminstallcmakencurses-*-y
其余看编译输出,缺少什么包就再yum安装什么
进入mysql解压目录,执行
12 cmake-DCMAKE_INSTALL_PREFIX=/export/mysql5.6make&&makeinstall
如果没有报错继续执行
顺利执行过后将/etc/my.cnf删除或移走,在mysql安装目录当中简单编写my.cnf并启动,具体配置请根据自身环境进行设置,本文不对此内容赘述
2.解压cloudera-manager-el6-cm5.9.0_x86_64.tar.gz到安装目录:
默认cloudera和cm-5.9.0目录放置在/opt下,如果想放在其他目录须留意对应配置
3.导入数据,执行完成后会有cm库:
1/export/tmp/opt/cm-5.9.0/share/cmf/schema/scm_prepare_database.shmysqlcm-hlocalhost-uroot--scm-host127.0.0.1scmscmscm
4.登录mysql,进行必要的修改配置:
12 setglobalbinlog_format='ROW';grantallon*.*to'scm'@'%'identifiedby'scm';
否则默认binlog格式为statement,cm会启动报错
对scm进行所有主机的授权
5.cloudera manager server端配置:
创建用户
1 useradd--system--home=/opt/cm-5.9.0/run/cloudera-scm-server/--no-create-home--shell=/bin/false--comment"clouderaSCMuser"cloudera-scm
在之前的cloudera目录下创建parcel-repo目录,将CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel和CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1放在此目录下,重命名sha1文件为sha,否则cm找不到sha文件无法进行校验,会重新去公网上下载压缩包
1 mvCDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha
6.mysql jar包放入lib库:
将解压mysql-connector-java-5.1.40.tar.gz得到的文件放在/opt/cm-5.9.0/share/cmf/lib下
7.配置db连接信息:
1 vim/opt/cm-5.9.0/etc/cloudera-scm-server/db.properties
host由于mysql就装在本机所以写127地址即可,库名、用户名、密码遵循上面创建用户和授权的内容进行填写
8.配置cm启动脚本的java环境:
123 vim/opt/cm-5.9.0/etc/init.d/cloudera-scm-agentvim/opt/cm-5.9.0/etc/init.d/cloudera-scm-serverexportJAVA_HOME=/usr/java/jdk1.7.0_51
9.agent配置:
1 vim/export/tmp/opt/cm-5.9.0/etc/cloudera-scm-agent/config.ini
server_host配置server端的ip或者主机名
server_port和port没有修改,使用默认的即可
listening_ip可以不做修改
之后将/opt/cm-5.9.0此目录拷贝到其他agent节点的对应目录
注:须确保/opt/cm-5.9.0/lib/cloudera-scm-agent下的uuid文件删掉,否则会出现cm web中主机显示冲突的情况
10.启动服务:
server端执行
1/opt/cm-5.9.0/etc/init.d/cloudera-scm-serverstart
agent端执行
1/opt/cm-5.9.0/etc/init.d/cloudera-scm-agentstart
server端启动端口7180 7182
agent端启动端口9000
三、web配置:
1.添加cloudera management service:
浏览器访问server端地址的7180端口,用户名密码默认admin admin
登录后不按照提示进行安装,直接点击左上方主页,然后选择右边添加管理服务
填入管理员登录mysql的连接信息即可
审核更改页不用做任何更改
之后等待安装完成,安装过后会发现集群监控已经有数据,点选所有主机,检查所有主机检查各节点状态
回到主页,点击cluster1右侧的添加服务
2.添加hdfs服务:
选择hdfs继续,根据原有集群情况进行主机选择
审核更改部分可以根据现有集群配置进行填写,左侧会有对应参数名
需要注意的是,datanode数据目录不管原来所有者是谁必须要修改为hdfs,否则无法通过cm启动,并且原有集群对应进程要先停掉
点击继续后不要等待进程进行,直接返回主页,会发现hdfs集群角色已经添加
进入hdfs配置journalnode目录dfs.journalnode.edits.dir
之后启动集群,观察监控数据
注:其余hadoop组件接入原则也是停掉原有进程,修改对应目录属主为组件名称的用户,比如hdfs,yarn,同时修改cm上对应的关键配置。此种做法对程序环境改造很大,很多标准必须遵循cloudera manager的规则,而且有丢失hdfs元数据风险。
四、后记:
此次搭建cm集群遇到一些问题,比如添加hdfs角色后无法启动namenode,报错java.io.IOException: There appears to be a gap in the edit log. We expected txid 1, but got txid 16,可能数据不连续,通过hadoop namenode-recover命令进行修复后可以启动,此命令不敢保证在生产环境执行没有问题;又或者datanode无法启动,遇到以下报错Operation not permitted
之后发现原集群的对应目录所有者为hadoop,而根据其他角色启动进程的所有者hdfs来进行权限修改后datanode可以启动
基于CentOS6.4环境编译Spark-2.1.0源码
基于 CentOS6.4环境编译 Spark-2.1.0源码
本文探讨在实际开发实践中,有时直接使用 Spark官方提供的安装包可能无法满足特定需求。为深入理解 Spark并更灵活地使用其功能,学习根据源码进行编译显得尤为重要。
在进行 Spark源码编译前,确保系统已安装 Java 7,并选择合适的版本,例如 JDK 1.7.0_51。将所有软件安装在用户根目录下的 app文件夹内。接下来,安装 Maven 3.3.9,下载并根据官方指南进行安装。
接着,前往 Spark官网下载 Spark-2.1.0源码包。解压后,将根据官方文档中的介绍使用 dev目录下的 make-distribution.sh脚本来编译源码。在编译过程中,可自定义参数以适应特定环境,如指定的 Hadoop版本、运行环境(如 YARN)以及支持的工具(如 Hive)。
编译完成后,会在 Spark源码根目录生成一个包含所需配置的安装包,例如 spark-2.1.0-bin-2.6.0-cdh5.7.0.tgz。此包即为编译结果,可用于安装 Spark。
理解编译生成安装包的命名逻辑,对于优化 Spark配置至关重要。在 make-distribution.sh脚本的末尾,可以看到用于生成安装包名的代码块,其依据 Spark版本和编译时指定的参数进行命名。
在编译过程中,可能遇到依赖包下载时间过长的问题,这通常由于网络不稳定导致。此时,可尝试中断编译进程,稍后重新运行命令,或开启虚拟专用网络(VPN)以优化网络环境,从而加速编译过程。
遵循以上步骤,结合对官方文档的深入理解,可实现对 Spark源码的高效编译和优化。此过程不仅有助于提高对 Spark的掌握程度,还能针对特定需求定制 Spark配置,提高开发效率。
Centos修改swappiness
swappines是Linux的一个内核参数,控制系统在进行swap时,内存使用相对权重。
那么系统在进行swap时,系统做了什么?
在Linux系统中,当物理内存不足时,系统会拿出预先设定好的部分硬盘空间当swap分区使用,从而解决内存容量不足的情况。
当某进程向系统请求内存发现不足时,系统会把内存中暂时不用的数据交换出去,放在swap分区中,这个过程称为 swap out。
当某进程又需要这些数据且系统发现还有空闲物理内存时,又会把swap分区中的数据交换回物理内存中,这个过程称为 swap in。
当然,swap大小是有上限的,一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。
可以理解为系统在硬盘上设置swap分区,当内存不足了,把这部分硬盘当作内存来用。
swappiness参数值可设置范围在0到100之间。
此参数值越低,就会让Linux系统尽量少用swap分区,多用内存;参数值越高就是反过来,使内核更多的去使用swap空间。
CentOS系统此参数的默认值是30,表示当内存使用超过70%,系统开始使用swap分区。
这里CDH推荐swappiness为10,表示当内存使用率超过90%,系统开始使用swap分区。
或
临时修改,当前系统的swappiness为10,但重启后,系统的swappiness继续恢复默认值。
此方法为永久修改swappiness分区的办法。