[
https://issues.apache.org/jira/browse/AMBARI-14430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Onischuk updated AMBARI-14430:
-------------------------------------
Attachment: AMBARI-14430.patch
> Get rid of wildcards in package names.
> --------------------------------------
>
> Key: AMBARI-14430
> URL: https://issues.apache.org/jira/browse/AMBARI-14430
> Project: Ambari
> Issue Type: Bug
> Reporter: Andrew Onischuk
> Assignee: Andrew Onischuk
> Fix For: 2.4.0
>
> Attachments: AMBARI-14430.patch
>
>
> **Problem**:
> Wildcards in packages bring and bunch of problems connected with RU and normal
> installs.
> a) If we install let's say hadoop_2_2_* and hadoop_2_2_0_1234-libhdfs get
> installed, but hadoop_2_2_0_1234 fails, we can no longer install master
> package.
> b) Packages like hive_2_2-*-atlas-plugin, if for some reason they get
> installed before hive_2_2_*, we get problems with inability to install. I've
> bumped into a couple of different situations like this. (storm_2_2* and
> storm_slider_2_2* etc. ; zookeeper-* and zookeeper-2_2*-server). That all 3
> are real bugs which we had to hack out
> c) We install a lot of packages which are not needed by default like hadoop-
> 2_2_...fuse, just by asking hadoop_2_2_*.
> d) Situtations like 47931 can happen in RU.
> e) The bug in RU where we add a service after install_packages was triggered.
> **Proposal:**
> 1\. Replace * by ${hdp_version} in metainfo.xml.
> E.g.:
>
>
> <osSpecific>
> <osFamily>redhat7,redhat6,suse11</osFamily>
> <packages>
> <package>
> <name>hbase_2_3_*</name>
> </package>
> <package>
> <name>phoenix_2_3_*</name>
> </package>
> </packages>
> </osSpecific>
>
> ->
>
>
> <osSpecific>
> <osFamily>redhat7,redhat6,suse11</osFamily>
> <packages>
> <package>
> <name>hbase_${hdp_version}</name>
> </package>
> <package>
> <name>hbase_${hdp_version}-regionserver</name>
> </package>
> <package>
> <name>phoenix_${hdp_version}</name>
> </package>
> </packages>
> </osSpecific>
>
> Note: this step will also let us not override packages in metainfo.xml with
> every HDP version to just change e.g. hbase_2_2_* to hbase_2_3_*.
> 2\. During INSTALL action (script.py) or during install packages
> (install_packages.py) get the version we are currently using from hdp-select.
> e.g. for centos:
>
>
> [root@andrew-1 ~]# yum info hdp-select | grep 'Version' | awk '{print $3}'
> 2.3.4.0
> [root@andrew-1 ~]# yum info hdp-select | grep 'Release' | awk '{print $3}'
> 3204 # a bit slow for every INSTALL task
>
> Another better aproach is to install hdp-select and than use rpm/dpkg, which
> is faster than yum/zypper/apt-get, considering we will do this on every
> INSTALL task this is important.
>
>
> [root@andrew-1 ~]# rpm -q --queryformat '%{version}-%{release}'
> hdp-select | sed -e 's/\.el[0-9]//g' # faster approach
> 2.3.4.0-3204
>
>
>
> u1201:~ # dpkg -s hdp-select | grep 'Version' | awk '{print $2}'
> 2.3.4.0-3475
>
> Vs other approaches:
> I think it's the only possible approach to get the version here, sending
> version which is specified by user during creating of a version. Seems to be a
> bad idea as the user can specify wrong version. Also we will need to use this
> during fresh install, where we don't have it specified at all.
> 3\. Replace ${hdp_version} with the version we got in step 2.
> I also discussed this with dlysnichenko this seems to be feasible in terms of
> RU/EU.
> The overall idea was discussed in 47931
> cc smohanty
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)