西南交通建设集团网站,建立自己的WordPress主题,帝国做的网站怎么上传图片,深圳网站制作公司新闻Cloudera Manager Server和Agent都启动以后#xff0c;就可以进行CDH5的安装配置了。 准备文件 从 http://archive.cloudera.com/cdh5/parcels/中下载CDH5.14.0的相关文件 把CDH5需要的安装文件放到主节点上#xff0c;新建目录为/opt/cloudera/parcel-repo把我们之前下载的…Cloudera Manager Server和Agent都启动以后就可以进行CDH5的安装配置了。 准备文件 从 http://archive.cloudera.com/cdh5/parcels/中下载CDH5.14.0的相关文件 把CDH5需要的安装文件放到主节点上新建目录为 /opt/cloudera/parcel-repo 把我们之前下载的三个文件放到这个目录下 CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1 manifest.json 需要注意的是 CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1需要重命名成CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha 安装过程一路执行下去没有任何错误只是到下图这一步中启动Hive和Oozie时会报错 原因就是mysql连接驱动没有放到Hive和Oozie的相应目录中。下文有详解这里不再重复。 其他都是一路绿灯通过安装过程相当顺畅。 安装parcel 访问CM的主页 http://192.168.43.101:7180/cmf/login 用户名和密码均为admin。 登录之后同意条款。 右下角点击继续。 选择版本然后右下角继续。 点击继续各个Agent节点正常启动后可以在当前管理的主机列表中看到对应的节点。选择要安装的节点点继续。 接下来出现以下包名说明本地Parcel包配置无误直接点继续就可以了。 如果此处发现不到parcel包就重启所有节点的agent服务和master的server服务然后重新尝试。并且确认CDH版本小于或者等于CM的版本 本地通过Parcel安装过程与本地通过Package安装过程完全一致不同的是两者的本地源的配置。 区别如下 Package本地源软件包是.rpm格式的数量通常较多下载的时候比较麻烦。通过”createrepo .”的命令创建源并要放到存放源文件主机的web服务器的根目录下详见创建本地yum软件源为本地Package安装Cloudera Manager、Cloudera Hadoop及Impala做准备 Parcel本地源软件包是以.parcel结尾相当于压缩包格式的一个系统版本对应一个下载的时候方便。如centos 6.x使用的CDH版本为CDH-X.X.X-1.cdhX.X.X.p0.22-el6.parcel而centos 5.x使用的CDH版本为CDH-X.X.X-1.cdhX.X.X.p0.22-el5.parcel。 这些文件放好之后CM会获取这个包并出现在主机-包裹的页面。出现的快慢跟你设置的包的刷新频率有关默认是1小时。也可以重启CM服务和agent服务识别。 可以在管理页面的属性标签下的包裹种类里修改。 等待parcel安装 正常情况下 内网网速速好的话 10分钟左右激活完毕最多不超过30分钟 如果卡住了 建议看看日志 安装过程中有什么问题 可以用 /opt/cm-5.14.0/etc/init.d/cloudera-scm-agent status/opt/cm-5.14.0/etc/init.d/cloudera-scm-server status 查看服务器客户端状态 也可以通过 /var/log/cloudera-scm-server/cloudera-scm-server.log /var/log/cloudera-scm-agent/cloudera-scm-agent.log 查看日志 如果上面的路径找不到则在 日志文件夹/opt/cm-5.14.0/log查看日志里面包含server和agent的log,使用命令如下: tail -f /opt/cm-5.14.0/log/cloudera-scm-server/cloudera-scm-server.log tail -f /opt/cm-5.14.0/log/cloudera-scm-agent/cloudera-scm-agent.log 例如我这里NTP因为没有外网所以会报错不过有些错误不影响的话不需要管。 成功激活后继续右下角点击继续 主机检查 会进入自动检查主机耗时2分钟左右然后给出报告包括需要修改的部分和组件的版本 解决警告 这里有2个警告需要解决一下至于版本里的不可用不适用不需要管。 警告一 Cloudera 建议将 /proc/sys/vm/swappiness 设置为最大值 10。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf以在重启后保存该设置。您可以继续进行安装但 Cloudera Manager 可能会报告您的主机由于交换而运行状况不良。以下主机将受到影响 解决方法 每台受影响的主机运行 echo 10 /proc/sys/vm/swappiness 即可解决。 警告二已启用透明大页面压缩可能会导致重大性能问题。请运行“echo never /sys/kernel/mm/transparent_hugepage/defrag”以禁用此设置然后将同一命令添加到 /etc/rc.local 等初始脚本中以便在系统重启时予以设置。以下主机将受到影响 解决方法 每台受影响的主机运行命令 echo never /sys/kernel/mm/transparent_hugepage/defrag 并且 vim /etc/rc.local 加入echo never /sys/kernel/mm/transparent_hugepage/defrag这条命令。 然后点击重新运行进行重新检查 全部绿勾了然后点击右下角的完成。 选择安装哪些组件服务--这里根据需求选择即可。 选择组件服务 右下角点击继续然后配置角色。一般情况下保持默认就可以了Cloudera Manager会根据机器的配置自动进行配置如果需要特殊调整自行进行设置就可以了。 我这里使用默认配置所以直接点击继续就可以了。 配置数据库 然后配置数据库 这里需要输入自己的mysql的对应数据库名称和用户名以及密码。 我们之前在mysql中新建的数据名分布对应填入 然后点击测试连接。 hive root 123456 oozie root 123456 hue root 123456 如果测试连接全部是Successful,则点击右下角的继续。 可能遇到的问题---hue--unable to verify 查看日志后发现原因是 Error loading MySQLdb module: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory 这个是因为cm的服务端是用java编写的cm的客户端是python编写的这里测试连接时是用python去连接数据库。但是CentOS系统本身会缺少一些python连接数据库需要的关联库。 解决方法 在mysql的安装目录找到系统缺少的这个包关联到系统即可。 根据最后提示应该是找不着一个交libmysqlclient_r.so.16的文件于是到mysql安装目录里找到这个文件并且做一个软连接到/usr/lib 如果是按照我们之前的离线安装mysql步骤安装的话 默认的mysql安装目录是/var/lib/mysql/ ln -s /var/lib/mysql/lib/libmysqlclient_r.so.16 /usr/lib64/libmysqlclient_r.so.16 但是/var/lib/mysql/ 目录下没有找到lib目录 使用 find / -name libmysqlclient_r.so.16 whereis libmysqlclient_r.so.16 也找不到libmysqlclient_r.so.16。 我们在之前解压mysql文件的目录里发现了除了 MySQL-client-5.6.34-1.linux_glibc2.5.x86_64.rpmMySQL-server-5.6.34-1.linux_glibc2.5.x86_64.rpm 这两个安装文件之外另外的rpm包。 我们把其他几个关联rpm包也安装一下。 rpm -ivh MySQL-shared-5.6.34-1.linux_glibc2.5.x86_64.rpmrpm -ivh MySQL-devel-5.6.34-1.linux_glibc2.5.x86_64.rpmrpm -ivh MySQL-shared-compat-5.6.34-1.linux_glibc2.5.x86_64.rpmrpm -ivh MySQL-embedded-5.6.34-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-test-5.6.34-1.linux_glibc2.5.x86_64.rpm 安装完成后再查找 whereis libmysqlclient_r.so.16 发现已经有了libmysqlclient_r.so.16而且已经在/usr/lib64路径下了。 再次点击测试连接成功。 审核更改 审核更改中列出相关目录和配置如果有需要的话就修改无特殊需求使用默认的即可点击右下角的继续。 另外如果需要自己设定文件夹一定要先mkdir文件夹否侧hdfs会无法启动并且报错文件夹不存在并确保访问权限。 集群启动 集群会首次运行所有的组件这过程中可能会有一些错误不要担心解决重试即可。下面会依次给出我遇到的情况供大家参考基本上都是权限或者驱动问题。 正确首次启动后如下图(是不是很激动^^) 右下角继续离成功安装一步之遥。 可能遇到的问题---hdfs启动失败--创建/tmp目录失败 Directory /tmp does not currently exist Cant open /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp/supervisor.conf: Permission denied. 报错信息 Mon Nov 28 14:20:59 CST 2016JAVA_HOME/usr/java/latest/using /usr/java/latest/ as JAVA_HOMEusing 5 as CDH_VERSIONusing /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp as CONF_DIRusing as SECURE_USERusing as SECURE_GROUPunlimitedDirectory /tmp does not currently exist. HADOOP_CLASSPATH/opt/cm-5.8.2/share/cmf/lib/plugins/event-publish-5.8.2-shaded.jar:/opt/cm-5.8.2/share/cmf/lib/plugins/tt-instrumentation-5.8.2.jar:/opt/cm-5.8.2/share/cmf/lib/plugins/navigator/cdh57/audit-plugin-cdh57-2.7.2-shaded.jar set -x replace_conf_dir find /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp -type f ! -path /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp/logs/* ! -name *.log ! -name *.keytab ! -name *jceks -exec perl -pi -e s#{{CMF_CONF_DIR}}#/opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp#g {} ;Cant open /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp/supervisor.conf: Permission denied. make_scripts_executable find /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp -regex .*\.py∥shpy‖sh$ -exec chmod ux {} ; [ DATANODE_MAX_LOCKED_MEMORY ! ] ulimit -l export HADOOP_IDENT_STRINGhdfs HADOOP_IDENT_STRINGhdfs [ -n ] acquire_kerberos_tgt hdfs.keytab [ -z hdfs.keytab ] [ -n ] [ validate-writable-empty-dirs mkdir ] [ file-operation mkdir ] [ bootstrap mkdir ] [ failover mkdir ] [ transition-to-active mkdir ] [ initializeSharedEdits mkdir ] [ initialize-znode mkdir ] [ format-namenode mkdir ] [ monitor-decommission mkdir ] [ jnSyncWait mkdir ] [ nnRpcWait mkdir ] [ -safemode supergroup -a get 1777 ] [ monitor-upgrade mkdir ] [ finalize-upgrade mkdir ] [ rolling-upgrade-prepare mkdir ] [ rolling-upgrade-finalize mkdir ] [ nnDnLiveWait mkdir ] [ refresh-datanode mkdir ] [ mkdir mkdir ] [ 5 -ne 5 ] DIR/tmp USERhdfs GROUPsupergroup PERMS1777 RET0 /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hadoop-hdfs/bin/hdfs --config /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp dfs -test -d /tmp 原因是hdfs用户或者cm用户对这个文件没有操作权限。我们进入这个目录查看 cd /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp/ ls -l 发现确实是这个文件只有root才能读写那么我们应该设置一下权限因为cm是用hdfs用户在操作的。 使用命令 cd /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp/ chmod 666 supervisor.conf ls -l 然后点击右下角的重试。 可能遇到的问题--启动 Key-Value Store Indexer, YARN (MR2 Included)---Create Job History Dir 失败 启动 Key-Value Store Indexer, YARN (MR2 Included) 仅完成 0/2 个步骤。首个失败在服务 Key-Value Store Indexer 上执行命令 Start 失败仅完成 0/2 个步骤。首个失败在服务 YARN (MR2 Included) 上执行命令 Create Job History Dir 失败使用用户 mapred 组 hadoop 和权限 1777 创建 DFS 目录 /tmp/logs 主机运行状况变成不良时主机 cm0 (id3) 上的进程 dfs-create-dir (id72) 被标记为失败Mon Nov 28 14:53:18 CST 2016JAVA_HOME/usr/java/latest/using /usr/java/latest/ as JAVA_HOMEusing 5 as CDH_VERSIONusing /opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir as CONF_DIRusing as SECURE_USERusing as SECURE_GROUPunlimitedDirectory /tmp/logs does not currently exist.Created directory /tmp/logs.Changed ownership of /tmp/logs to mapred:hadoop.Cant open /opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir/supervisor.conf: Permission denied. HADOOP_CLASSPATH/opt/cm-5.8.2/share/cmf/lib/plugins/event-publish-5.8.2-shaded.jar:/opt/cm-5.8.2/share/cmf/lib/plugins/tt-instrumentation-5.8.2.jar:/opt/cm-5.8.2/share/cmf/lib/plugins/navigator/cdh57/audit-plugin-cdh57-2.7.2-shaded.jar set -x replace_conf_dir find /opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir -type f ! -path /opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir/logs/* ! -name *.log ! -name *.keytab ! -name *jceks -exec perl -pi -e s#{{CMF_CONF_DIR}}#/opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir#g {} ;Cant open /opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir/supervisor.conf: Permission denied. make_scripts_executable find /opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir -regex .*\.py∥shpy‖sh$ -exec chmod ux {} ; [ DATANODE_MAX_LOCKED_MEMORY ! ] ulimit -l export HADOOP_IDENT_STRINGhdfs HADOOP_IDENT_STRINGhdfs [ -n ] acquire_kerberos_tgt hdfs.keytab [ -z hdfs.keytab ] [ -n ] [ validate-writable-empty-dirs mkdir ] 点击stderr看了详细的报错发现仍然是权限问题解决方法跟之前一样进入这个路径后更改下权限即可。 可能遇到的问题--Solr, HBase--Command Start is not currently available for execution 这种情况界面上没有详细的信息但是在日志中可以看到是超时了这种情况下确保局域网网络好的情况下并且master服务器服务良好的情况下直接重试。 可能遇到问题---启动hive---Failed to Create Hive Metastore Database Tables false exec /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hadoop/bin/hadoop jar /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/lib/hive-cli-1.1.0-cdh5.8.0.jar org.apache.hive.beeline.HiveSchemaTool -verbose -dbType mysql -initSchemaJava HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize512M; support was removed in 8.0org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driverorg.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driverat org.apache.hive.beeline.HiveSchemaHelper.getConnectionToMetastore(HiveSchemaHelper.java:79)at org.apache.hive.beeline.HiveSchemaTool.getConnectionToMetastore(HiveSchemaTool.java:113)at org.apache.hive.beeline.HiveSchemaTool.testConnectionToMetastore(HiveSchemaTool.java:159)at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:257)at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:243)at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:473)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.hadoop.util.RunJar.run(RunJar.java:221)at org.apache.hadoop.util.RunJar.main(RunJar.java:136)Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driverat java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:264)at org.apache.hive.beeline.HiveSchemaHelper.getConnectionToMetastore(HiveSchemaHelper.java:70)... 11 more*** schemaTool failed *** 这是hive的lib包中缺少mysql的驱动导致的。我们之前已经把mysql驱动包mysql-connector-java-*-bin.jar放到主节点cm0的/opt中,现在复制一份到/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/lib这里CDH-5.8.0-1.cdh5.8.0.p0.42要跟自己的版本对应 使用命令如下 cd /opt/mysql-connector-java-5.1.40cp mysql-connector-java-5.1.40-bin.jar /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/lib把mysql-connector-java-5.1.40-bin.jar放到/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/lib中。 cd /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/libls|more确认已经放进去了。 然后点击右下角的重试。 可能遇到的问题---启动 Oozie, Impala---Create Oozie Database Tables 失败 Error: Could not connect to the database: java.lang.ClassNotFoundException: com.mysql.jdbc.DriverStack trace for the error was (for debug purposes):--------------------------------------java.lang.Exception: Could not connect to the database: java.lang.ClassNotFoundException: com.mysql.jdbc.Driverat org.apache.oozie.tools.OozieDBCLI.validateConnection(OozieDBCLI.java:905)at org.apache.oozie.tools.OozieDBCLI.createDB(OozieDBCLI.java:185)at org.apache.oozie.tools.OozieDBCLI.run(OozieDBCLI.java:129)at org.apache.oozie.tools.OozieDBCLI.main(OozieDBCLI.java:80)Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driverat java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:264)at org.apache.oozie.tools.OozieDBCLI.createConnection(OozieDBCLI.java:894)at org.apache.oozie.tools.OozieDBCLI.validateConnection(OozieDBCLI.java:901)... 3 more-------------------------------------- [ 0 1 ] [ CLOUDERA_MYSQL_CONNECTOR_JAR ! ] eval JAR_LOCATION$CLOUDERA_MYSQL_CONNECTOR_JAR JAR_LOCATION/usr/share/java/mysql-connector-java.jar echo Copying JDBC jar from /usr/share/java/mysql-connector-java.jar to /var/lib/oozie cp /usr/share/java/mysql-connector-java.jar /var/lib/oozie/cp: cannot stat /usr/share/java/mysql-connector-java.jar: No such file or directory OOZIECPPATH 跟hive启动的问题一样缺少驱动。 Oozie的lib包中缺少mysql的驱动导致的。我们之前已经把mysql驱动包mysql-connector-java-*-bin.jar放到主节点cm0的/opt中,现在复制一份到/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/Oozie/lib这里CDH-5.8.0-1.cdh5.8.0.p0.42要跟自己的版本对应 再复制一份到/var/lib/oozie/ 使用命令如下把mysql-connector-java-5.1.40-bin.jar放到/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/oozie/lib中。 cd /opt/mysql-connector-java-5.1.40 cp mysql-connector-java-5.1.40-bin.jar /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/oozie/lib cp mysql-connector-java-5.1.40-bin.jar /var/lib/oozie cd /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/oozie/lib ls|more 确认已经放进去了。 cd /var/lib/oozie ls|more 点击右下角重试。 安装完成 恭喜您安装完成。 点击完成后会进入监控界面。如果有红色的话还是需要我们去解决的。。。 主机报错是没有启动ntpd服务或者是cm客户端没启用。 每台机器都执行如下命令启动ntpd并设置为开机启动 [rootcdh1 ~]# systemctl start ntpd[rootcdh1 ~]# systemctl enable ntpd 如果还不行就打开主机的抑制功能如下图 然后主机报错的就排查了。 其他服务错误启动一下试试如果重启不行就按照下面文章的方法排查错误。 具体排查的情况可以参考文章或者自己查资料。 hadoop基础----hadoop实战(九)-----hadoop管理工具---CDH的错误排查(持续更新) 全部解决后就全绿了。 备份安装配置完好的系统 到这里我们的安装就算完成了。为了以后的修复方便我们可以对分别对linux系统进行备份。虚拟机的就很方便直接复制压缩虚拟机文件即可。 参考文章https://www.cnblogs.com/felixzh/p/9082344.html转载于:https://www.cnblogs.com/qqflying/p/10697737.html