设为首页 收藏本站
查看: 1534|回复: 4

[经验分享] Hadoop运维记录系列(七)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-10-30 09:02:18 | 显示全部楼层 |阅读模式
这段时间一直在搞Hadoop集群迁移,最近Hadoop也没出什么大问题,就没更新运维系列。这次的运维系列也跟Hadoop自己的故障无关,主要是自动化运维。





不过我确实犯了一个严重的错误,在迁移新集群的时候,为了安装部署方便,我把hbase打成了rpm包的方式进行部署。在编写spec文件的时候,一个变量少写了一对花括号,结果把操作系统的文件给删掉了。而我恰恰是在新集群的生产环境下去编译rpm,后果就是那台服务器崩溃了。这是我这么多年第一次间接的执行了一下rm -rf /,尽管新集群还没开始正式上线跑,没造成任何影响,但是这个实在是太丢人了。以后坚决要在虚拟机里打rpm。




这次的运维记录系列主要是记录一下在Hadoop运维下,如何把Hadoop及周边生态软件打包成rpm和deb的方式,这个方式同样也可以用在其他软件的部署上。阅读这次的记录系列,你需要掌握以下技能:基本的rpm操作命令,hadoop生态系统的基本环境变量设置和源码知识。




以打包Hive为例,为啥不以打包hbase,因为hbase打包太过复杂,不仅需要修改官方的spec文件,还要修改hbase自身的源码。上来就说hbase打包rpm估计绝大多数人看不懂,而hive官方不提供spec文件,可以自己编写,hive本身的工作结构比较简单,也不需要修改源码,所以打包起来的spec文件也不复杂,复杂的以后慢慢记录。这个spec脚本是我自己写的,反正能用就行了。



Summary: Hive 0.10.0, Apache Hive, Rpm by Xianglei, include mysql jdbc connector and fixed hive-exec.jar for get_json_object judgement of quotation and double qoutation

Name: hive

Version: 0.10.0

Release: 1

License: Apache License 2.0

Group: System

Source: hive-0.10.0.tar.gz

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root

Url: http://www.phphiveadmin.net

Packager: Xianglei

BuildArchitectures: noarch

Requires: jdk >= 1.6, hadoop

%define bin_dir /usr/bin

%define lib_dir /usr/lib

%define conf_dir /etc/hive

%define scripts_dir /usr/share/scripts

%description

Apache Hive phpHiveAdmin release

%prep

%setup -q -n %{name}-%{version}

%build

%install

%__rm -rf $RPM_BUILD_ROOT

%__mkdir -p $RPM_BUILD_ROOT/%{bin_dir}/

%__mkdir -p $RPM_BUILD_ROOT/%{lib_dir}/

%__mkdir -p $RPM_BUILD_ROOT/%{conf_dir}/

%__mkdir -p $RPM_BUILD_ROOT/%{scripts_dir}/

%__cp -rf bin/* $RPM_BUILD_ROOT/%{bin_dir}/

%__cp -f HivePlugin.jar $RPM_BUILD_ROOT/%{lib_dir}/

%__cp -rf lib/* $RPM_BUILD_ROOT/%{lib_dir}/

%__cp -rf conf/* $RPM_BUILD_ROOT/%{conf_dir}/

%__cp -rf scripts/* $RPM_BUILD_ROOT/%{scripts_dir}/

useradd -g hadoop hive

%files

%defattr(-,root,root)

%config(noreplace) %{conf_dir}/hive-site.xml

%config(noreplace) %{conf_dir}/hive-env.sh

%{bin_dir}/*

%{lib_dir}/*

%{conf_dir}/*

%{scripts_dir}/*

%clean

%__rm -rf $RPM_BUILD_ROOT





大概说一下,逐行解释太累了。

第一行是发行版的汇总说明,Hive-0.10.0,apache版本,鄙人打的包,在里面包含了mysql的jdbc驱动和修改后的hive-exec.jar,因为0.10.0版本严格了gen_json_object的语法,禁用了单引号的json格式,而我们好多数据里都是单引号的json,所以我让同事修改了这部分的java源码,自动适应单引号和双引号,重新打包成jar。

名称:Hive

版本:0.10.0

发行版本:1

Requires: jdk >= 1.6, hadoop

这段是定义你的软件依赖于其他什么软件,操作系统中必须同时存在jdk >= 1.6的版本和hadoop才可以安装这个hive,否则rpm -ivh的时候会出现faild dependence...什么玩意,当然,这些也都是需要用rpm安装的,官方都提供了。

然后是定义rpm安装完以后,hive相应的路径都在什么位置下,以及他们在spec文件中对应的变量。


bin_dir是spec中的变量,/usr/bin是rpm安装完以后,hive的bin文件夹路径。




%setup 是将hive源包就是上面指定的hive-0.10.0.tar.gz解压缩到rpmbuild/BUILD文件夹下。对于centos5来说。这个路径是/usr/src/redhat/BUILD,对于centos6来说,就是你当前工作目录的rpmbuild/BUILD。

%build对我们没用,hive已经是编译好的了,%build和%configure主要是针对从源码编译。

%install是具体的安装操作,都是些linux基本操作

最后是设置属性和清理BUILDROOT文件夹。

rpm的打包,网上有很多详细讲解的文章,这里就不详细说了。用rpmbuild即可,而对于debian和ubuntu这类系统,rpm可以直接转换成deb。




这个主要的思路是为了省事,我不想去逐台执行tar zxf xxxxx.tar.gz,然后再把配置文件逐台拷贝,直接一台配置好了,打包rpm,去每个服务器执行rpm -ivh xxxx.rpm,然后直接启动就好了。




在hbase打包的过程中,除了要修改官方提供的hbase.spec,还需要修改hbase本身的部分脚本源码,比如在spec中,指定了在安装完成后,需要执行一个sbin/update-hbase-env.sh,但这个脚本里面有些路径是写死的,有问题,要根据实际情况进行调整。比如我是用rpm安装的hadoop,HADOOP_HOME在/usr下。而脚本中寻找HADOOP_JAR是在$HADOOP_HOME/*.jar,这样肯定是找不到的。就需要修改update-hbase-env.sh中的HADOOP_JAR到$HADOOP_HOME/share/hadoop/*.jar,对zookeeper也是这样处理,这些是需要注意的。还有hbase命令,hbase-daemon.sh这些命令,也需要自己去修改脚本,以适应rpm打包后的路径要求。




不过需要了解的是,hadoop生态系统中,除了hadoop的hbase,其他软件都不提供spec文件,都得自己编写。而hadoop和hbase的spec,也不是完全好使,还得修改不少内容和源码才能用的起来。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-10080-1-1.html 上篇帖子: Hadoop运维记录系列(六) 下篇帖子: Hadoop运维记录系列(八) 记录

尚未签到

发表于 2013-11-16 02:46:05 | 显示全部楼层
爱——不是想出来的,爱——是做出来的!!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-3 14:12:28 | 显示全部楼层
你是我最爱的男人、却赐给我最深的伤痕

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-15 17:04:59 | 显示全部楼层
乀涐明白了这个世界是没有真爱 .只有谎言

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-24 18:56:38 | 显示全部楼层
写了太多悲伤的字眼,都忘了幸福怎么描绘了

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表