Hadoop CDH四种安装方式总结及实例指导

本文详细介绍Cloudera CDH的四种安装方式:Cloudera Manager、Tarball、Yum和Rpm,并针对每种方式提供了具体步骤。重点介绍了通过Cloudera Manager安装CDH的过程,包括配置和解决常见问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CDH安装有四种方式


  • Cloudera manager
  • Tarball
  • Yum
  • Rpm


下面是四种方式分别介绍:

  • Cloudera manager 安装



Cloudera Manager和CDH4.1的安装




Cloudera Manager的安装需要先修改机器的三个配置:
关闭防火墙:service iptables stop;
关闭selinux:setenforce 0或修改/etc/selinux/config:SELINUX=disabled;
配置代理:在/etc/yum.conf加入如下内容:http_proxy=http://server:port。
最好在/etc/yum.conf增加timeout时间,timeout=55555。自己设置长点就行。
准备安装文件cloudera-manager-installer.bin,这是个二进制文件,下载地址:https://ccp.cloudera.com/display ... a+Manager+Downloads,这个要在64位的机器上运行,我让它运行在CentOS-6.2,x86_64上。然后设置下执行权限,chmod u+x cloudera-manager-installer.bin,接着就直接执行它./ cloudera-manager-installer.bin。这里有个问题,在我自己的虚拟机上一直运行不了,出现的问题:cannot execute binary file,可能因为它是32位的吧。


在整个安装过程中,要确保你的机器能够联网,会出现让你选择的画面,一般就ENTER,next,accpet就行了,然后慢慢等待等到它自行安装结束。
启动cloudera manager:在浏览器输入你的主机,我的是http:192.168.20.195:7180。注册一个账号登陆如(admin,admin),进去后,会让我们选择主机,我就装了伪分布式,然后安装CDH4.1和impala,这个安装过程时间比较长,因为它是外国的网站,网络稳定与否对安装的影响很大,我装这个花费很长时间,期间如果出现某个安装包错误,就必须重新开始安装,因此强调下,最好使用一个干净的系统(没装过hadoop相关程序),它会去网上下载很多rpm包,默认地把hadoop,hbase,zookeeper,hive,impala等都装到了user/lib底下,耐心等待吧。


安装好了之后,我们就可以启动自己需要的服务,当然某些服务彼此会有依赖,没关系的cloudera manager太强大了,它能帮你识别,帮助你开启相关服务。我开启的服务界面如下图所示:

<ignore_js_op style="word-wrap: break-word; color: rgb(68, 68, 68); font-family: Tahoma, 'Microsoft Yahei', Simsun; font-size: 14px; line-height: 21px;"> 


在开启服务的过程中,其他的服务都正常开启了,但是最关键的我需要的服务却一直显示不良状态,如下图:
<ignore_js_op style="word-wrap: break-word; color: rgb(68, 68, 68); font-family: Tahoma, 'Microsoft Yahei', Simsun; font-size: 14px; line-height: 21px;"> 


Impala没正常启动,这是我这次研究的重中之重。出现问题,就开始找问题,后来发现是impala和数据库(我用的是mysql)没连接成功。下面着重讲述下配置mysql连接impala。

  Impala的运行需要有配置了Mysql或PostgreSQL的hive metastore,hive本身支持的derby数据库,impala不支持。

  一、配置远程数据库作为Hive Mestastore。

  A:安装MySQL JDBC连接器,从'http://www.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.22.tar.gz下载连接器,并把解压后的mysql-connector-java-5.1.22-bin.jar文件拷贝至/usr/lib/hive/lib下。

  B:MySQL管理员需要用hive-schema-0.9.0.mysql.sql来建立初始数据库:

  1. mysql –u root –p
  2. mysql > CREATE DATABASE hivemetastoredb;
  3. mysql > USE hivemetastoredb;
  4. mysql > SOURCE /usr/lib/hive/scripts/metastore/upgrade/mysql/
  5. hive-schema-0.9.0.mysql.sql;
  6. mysql > CREATE USER ‘hive’@’%’ IDENTIFIED BY ‘hive’;
  7. mysql > CREATE ALL PRIVILEGES ON hivemetastoredb.* TO ‘hive’@’%’ WITH GRANT OPTION;
  8. mysql > FLUSH PRIVILEGES;
  9. mysql > QUIT;
复制代码

C:配置mysql用utf8作为默认的字符编码。

  1. $ vim /etc/my.cnf
  2. 在[mysqld]下加入
  3. Default-character-set=utf8
复制代码

这是因为,impala去连接mysql时所用到的连接字符串为:URL="jdbc:mysql://localhost:3306/hivemetastoredb?useUnicode=true&characterEncoding=UTF-8”,它默认用的就是utf8。

二、新增Impala服务

进入cloudera manager管理界面,新增impala服务,点击impala,点击配置,可看到如下界面:



<ignore_js_op style="word-wrap: break-word; color: rgb(68, 68, 68); font-family: Tahoma, 'Microsoft Yahei', Simsun; font-size: 14px; line-height: 21px;"> 



在这个配置里面,需要配置如下参数:

PropertyValue
DataNode Local Path Access Users dfs.block.local-path-access.userimpala
DataNode Data Directory Permissions dfs.datanode.data.dir.perm755
Enable HDFS Block Metadata API dfs.datanode.hdfs-blocks-metadata.enabledtrue
Enable HDFS Short Circuit Read dfs.client.read.shortcircuittrue




Hive Metastore的配置如上图所示,数据库连接密码:hive。

三、配置好impala后,点击重新启动impala。启动成功后可以看到如下界面:


<ignore_js_op style="word-wrap: break-word; color: rgb(68, 68, 68); font-family: Tahoma, 'Microsoft Yahei', Simsun; font-size: 14px; line-height: 21px;"> 

两个服务都完成,才算impala启动成功。

配置Hue Beeswax连接到Impala。
这个配置是为了让Hue Beeswax网站接口来执行Impala语句。修改/etc/hue/hue.ini,如下内容:

  1. [beeswax]
  2. beeswax_server_host=192.168.20.195
  3. beeswax_server_port=8003
复制代码

重启Hue服务。至此,impala这个服务也算是正常启动了。

最后说明一下,这次配置遇到的问题及解决方法。

问题一:无法安装hadoop-hdfs包。

如下图所示: 


<ignore_js_op style="word-wrap: break-word; color: rgb(68, 68, 68); font-family: Tahoma, 'Microsoft Yahei', Simsun; font-size: 14px; line-height: 21px;"> 


    图中说明的错误是:事务验证出错,后面的信息显示了是版本冲突问题。也就是说,本来电脑里面已经有装了hadoop-1.0.3现在和cloudera的hadoop-hdfs-2.0.0冲突,导致hadoo-hdfs无法安装,也就使得安装失败,又得重新来一次了,悲剧啊。

    解决问题,我找到了系统里安装hadoop-1.0.3的所有包,然后把它们全部删掉,包括安装的目录。

  1. $ rpm –qa | grep –i hadoop-1.0.3
  2. hadoop-1.0.3+20.38283-1.el6.x86_64
  3. $ rpm –ql hadoop-1.0.3+20.38283-1.el6.x86_64(查找安装的位置)
  4. $ rpm –e hadoop-1.0.3+20.38283-1.el6.x86_64(卸载)
复制代码

卸载过程中,可能会有包依赖,没关系,继续按照上述方法把他们全部删光,重新安装就行啦。

问题二:启动impala时,impala daemon无法启动,查看日志出现如下问题。

<ignore_js_op style="word-wrap: break-word; color: rgb(68, 68, 68); font-family: Tahoma, 'Microsoft Yahei', Simsun; font-size: 14px; line-height: 21px;"> 



这个问题,说是连接到mysql被禁止,但是我用java自己做了个程序去连接mysql没有问题,很奇怪,

javax.jdo.JDOFatalDataStoreException: Access denied for user 'hive'@'localhost' (using password: YES),最主要是这句话,我本来连接数据库是,用root登录mysql建立了个新用户hive,然后不使用密码,同时在impala中的配置目录里,默认数据库用户hive登录也是不需要密码的,但是却始终连不上,后来经过分析这句话,using password:YES,也就是说,本来不需要密码,你却用了密码登陆到mysql,这就有问题了,也就是说,虽然配置里的密码是空的,但是impala默认还是以有密码的形式登录到mysql,这样连接就一直被禁止了。解决的方案是:删掉hive用户,建立一个用户名和密码都是hive的用户接着,把配置里密码也输入hive,问题终于解决了。

----------------------------------------------------------------------------------------------------------------------------------------------------------------


hadoop CDH3U5 使用tarball完整安装过程





用在线安装的方式, 需要依赖于外部网络, 等待时间够长的, 不利于重复部署. 用tarball的方式重新部署了一下. 牵扯到以前是root用户做的, 本次按要求用非root用户遇到了些权限控制方面的问题

 

统一说明

 

部署:

ipHostname安装组件
10.0.0.123Hadoop-master -namenode, JobTracker,datanode,taskTracker
-hbase-master,hbase-thrift
-secondarynamenode
-zookeeper-server
10.0.0.125Hadoop-lave-datanode,taskTracker
-hbase-regionServer
-zookeeper-server

   



下载

https://ccp.cloudera.com/display ... wnloadable+Tarballs下载需要的组件

hadoop,hbase,Hive,zookeeper

 

http://archive.cloudera.com/cdh/3/hadoop-0.20.2-cdh3u5.tar.gz

http://archive.cloudera.com/cdh/3/zookeeper-3.3.5-cdh3u5.tar.gz

http://archive.cloudera.com/cdh/3/hive-0.7.1-cdh3u5.tar.gz

http://archive.cloudera.com/cdh/3/hbase-0.90.6-cdh3u5.tar.gz

将压缩包放到/hadoop/cdh3中去.

计划如下

 

目录所有者权限 
/hadoop/cdh3hadoop755Hadoop及其组件的运行环境
/hadoop/datahadoop755见下
/hadoop/data/hdfshadoop700数据节点存放数据的地方, 后续由hdfs-site.xml中的dfs.data.dir指定
/hadoop/data/storagehadoop777所有上传到Hadoop的文件的存放目录,所以要确保这个目录足够大后续由hadoop.tmp.dir 指定



用户名Home用途
hadoop/home/hadoop[1]用于启动停止hadoop等维护
[2] /hadoop/data/hdfs目录的700权限拥有者. 也可以另选用户
   
   
   

 

安装过程

[1]下载JDK

此时选的是jdk1.6.0_43

http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html
Linux x64  68.7 MB   jdk-6u43-linux-x64.bin

 

放到/usr/local/share/下并执行 ./ jdk-6u43-linux-x64.bin

然后设置JAVA_HOME及PATH环境变量,注意PATH要增加, 不要覆盖

root@hadoop-master:~# which java

/usr/local/share/jdk1.6.0_43/bin/java

root@hadoop-master:~# echo $JAVA_HOME

/usr/local/share/jdk1.6.0_43

master与slave都要安装, 为了配置方便拷贝, 一定给要一样的目录



[2]建立hadoop操作用户

root@hadoop-master:/hadoop/cdh3/hadoop-0.20.2-cdh3u5/bin# useradd hadoop -m
root@hadoop-master:/hadoop/cdh3/hadoop-0.20.2-cdh3u5/bin# su - hadoop
$ bash
hadoop@hadoop-master:~$
hadoop@hadoop-master:~$ pwd
/home/hadoop
hadoop@hadoop-master:~$ ll
total 28
drwxr-xr-x 3 hadoop hadoop 4096 2013-03-07 05:03 ./
drwxr-xr-x 4 root   root   4096 2013-03-07 05:02 ../
-rw-r--r-- 1 hadoop hadoop  220 2011-05-18 03:00 .bash_logout
-rw-r--r-- 1 hadoop hadoop 3353 2011-05-18 03:00 .bashrc
-rw-r--r-- 1 hadoop hadoop  179 2011-06-22 15:51 examples.desktop
-rw-r--r-- 1 hadoop hadoop  675 2011-05-18 03:00 .profile

执行ssh授信
hadoop@hadoop-master:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
17:cc:2b:9c:81:5b:48:53:ee:d6:35:bc:1b:0f:9a:14 hadoop@hadoop-master
The key's randomart image is:
+--[ RSA 2048]----+
|      o..        |
|     . = o .     |
|      o + E +    |
|       = + = o   |
|      . S = +    |
|       . + o =   |
|          o . .  |
|                 |
|                 |
+-----------------+
hadoop@hadoop-master:~$
hadoop@hadoop-master:~$ cd .ssh
hadoop@hadoop-master:~/.ssh$ ll
total 16
drwxr-xr-x 2 hadoop hadoop 4096 2013-03-07 05:04 ./
drwxr-xr-x 3 hadoop hadoop 4096 2013-03-07 05:04 ../
-rw------- 1 hadoop hadoop 1675 2013-03-07 05:04 id_rsa
-rw-r--r-- 1 hadoop hadoop  402 2013-03-07 05:04 id_rsa.pub
hadoop@hadoop-master:~/.ssh$ cat id_rsa.pub  >> authorized_keys




在hadoop-slave添加hadoop用户, 用户名要与master相同

然后将master的id_rsa.pub 追加到slave机器的/home/hadoop/.ssh/authorized_keys中

到此, master应该可以ssh免密码登录slave了

 

[3]安装hadoop-0.20.2-cdh3u5

解压缩:

cd /hadoop/cdh3

tar zxvf hadoop-0.20.2-cdh3u5.tar.gz

修改配置文件

cdh3\hadoop-0.20.2-cdh3u5\conf\core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<!--- global properties -->
<property>
  <name>hadoop.tmp.dir</name>
  <value>/hadoop/data/storage</value>
  <description>A directory for other temporary directories.</description>
</property>
<!-- file system properties -->
<property>
  <name>fs.default.name</name>
  <value>hdfs://hadoop-master:8020</value>
</property>
</configuration>
cdh3\hadoop-0.20.2-cdh3u5\conf\hadoop-env.sh

将# export JAVA_HOME=/usr/lib/j2sdk1.6-sun
修改为
export JAVA_HOME=/usr/local/share/jdk1.6.0_43
cdh3\hadoop-0.20.2-cdh3u5\conf\hdfs-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
  <name>dfs.data.dir</name>
  <value>/hadoop/data/hdfs</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>
<property>
  <name>dfs.datanode.max.xcievers</name>
  <value>4096</value>
</property>
</configuration>
cdh3\hadoop-0.20.2-cdh3u5\conf\mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
  <name>mapred.job.tracker</name>
  <value>hdfs://hadoop-master:8021</value>
</property>
<property>
  <name>mapred.system.dir</name>
  <value>/mapred/system</value>
</property>
</configuration>
cdh3\hadoop-0.20.2-cdh3u5\conf\masters

hadoop-master
cdh3\hadoop-0.20.2-cdh3u5\conf\slaves

hadoop-slave
注:如果将hadoop-master也加进来, 那在master机器上也启动一个datanode, 如果机器规划多的话就不要加了,



Hadoop用户下创建目录
sudo mkdir -p /hadoop/data/storage
sudo mkdir -p /hadoop/data/hdfs
sudo chmod 700 /hadoop/data/hdfs
sudo chown -R hadoop:hadoop /hadoop/data/hdfs
sudo chmod 777 /hadoop/data/storage
sudo chmod o+t /hadoop/data/storage

Hadoop用户下执行格式化
hadoop@hadoop-master:~$ hadoop namenode -format



启动hadoop

hadoop@hadoop-master:~$ cd /hadoop/cdh3/hadoop-0.20.2-cdh3u5/bin
hadoop@hadoop-master:/hadoop/cdh3/hadoop-0.20.2-cdh3u5/bin$ ./start-all.sh
starting namenode, logging to /mnt/hgfs/hadoop/cdh3/hadoop-0.20.2-cdh3u5/bin/../logs/hadoop-hadoop-namenode-hadoop-master.out
hadoop-slave: starting datanode, logging to /mnt/hgfs/hadoop/cdh3/hadoop-0.20.2-cdh3u5/bin/../logs/hadoop-hadoop-datanode-hadoop-slave.out
hadoop-master: starting secondarynamenode, logging to /mnt/hgfs/hadoop/cdh3/hadoop-0.20.2-cdh3u5/bin/../logs/hadoop-hadoop-secondarynamenode-hadoop-master.out
starting jobtracker, logging to /mnt/hgfs/hadoop/cdh3/hadoop-0.20.2-cdh3u5/bin/../logs/hadoop-hadoop-jobtracker-hadoop-master.out
hadoop-slave: starting tasktracker, logging to /mnt/hgfs/hadoop/cdh3/hadoop-0.20.2-cdh3u5/bin/../logs/hadoop-hadoop-tasktracker-hadoop-slave.out

查看启动结果
hadoop@hadoop-master:/hadoop/cdh3/hadoop-0.20.2-cdh3u5/bin$ jps
5759 SecondaryNameNode
5462 NameNode
5832 JobTracker
5890 Jps
hadoop@hadoop-master:/hadoop/cdh3/hadoop-0.20.2-cdh3u5/bin$



----------------------------------------------------------------------------------------------------------------------------------------


对于Yum,Rpm的方式就不详细介绍了,下面总体介绍一下:


Redhat/Centos系列可以下载rpm包安装,也可以配置repo,使用Yum方式一键安装:

Redhat/Centos/Oracle 5

  1. wget http://archive.cloudera.com/cdh4/redhat/5/x86_64/cdh/cdh4-repository-1-0.noarch.rpm
  2. sudo rpm --import http://archive.cloudera.com/cdh4/redhat/5/x86_64/cdh/RPM-GPG-KEY-cloudera
复制代码

Redhat/Centos 6 wget http://archive.cloudera.com/cdh4/redhat/6/x8664/cdh/cdh4- repository-1-0.noarch.rpm sudo rpm --import http://archive.cloudera.com/cdh4 ... PM-GPG-KEY-cloudera

然后安装各组件:

  1.   $ sudo yum install hadoop-yarn-resourcemanager
  2.     $ sudo yum install hadoop-hdfs-namenode
  3.     $ sudo yum install hadoop-hdfs-secondarynamenode
  4.     $ sudo yum install hadoop-yarn-nodemanager hadoop-hdfs-datanode hadoop-mapreduce
  5.     $ sudo yum install hadoop-mapreduce
复制代码

----------------------------------------------------------------------------------------------------------------------------------------


CDH5已经使用了Hadoop2.2.0,我们介绍一下如何手动安装:

Hadoop CDH5 手动安装伪分布式模式



由于Cloudera强烈建议使用rmp包或者apt-get的方式安装,一时半刻我都没有找到手动安装的说明,在安装的遇到多个问题,稍作记录

首先环境要求

         JDK1.7_u25+

         Maven3.0.5

         protoc2.5

         cmake

         ant

         zlib1g-dev


在安装完protocbuf后无法正常运行protoc命令,报错

protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared object file: No such file or directory
解决方案是在make install后再执行一句sudo ldconfig

修改配置文件

etc/hadoop/core-site.xml
  1. <property>  
  2.         <name>fs.defaultFS</name>  
  3.         <value>hdfs://localhost</value>  
  4. </property>  
复制代码
etc/hadoop/hdfs-site.xml
  1. <property>  
  2.         <name>dfs.replication</name>  
  3.         <value>1</value>  
  4. </property>  
  5. <property>  
  6.         <name>hadoop.tmp.dir</name>  
  7.         <value>/home/username/src/cdh5/hadoop/hdfs</value>  
  8. </property>  
  9. <property>  
  10.         <name>dfs.namenode.http-address</name>  
  11.         <value>localhost:50070</value>  
  12. </property>  
  13.   
  14. <property>  
  15.         <name>dfs.namenode.secondary.http-address</name>  
  16.         <value>localhost:50090</value>  
  17. </property>  
复制代码
etc/hadoop/yarn-site.xml
  1. <property>  
  2.   <name>yarn.resourcemanager.hostname</name>  
  3.   <value>localhost</value>  
  4. </property>  
  5.   
  6. <property>  
  7.   <name>yarn.nodemanager.aux-services</name>  
  8.   <value>mapreduce_shuffle</value>  
  9. </property>  
  10.   
  11. <property>  
  12.   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>  
  13.   <value>org.apache.hadoop.mapred.ShuffleHandler</value>  
  14. </property>  
复制代码

 

然后format,启动start-all.sh

启动伪分布式模式碰到的第一个问题是找不到JAVA_HOME


原因是启动命令调用sbin/slaves.sh脚本,这个脚本中有使用ssh远程调用其他机器的命令


在这种情况下bashrc中的设置环境变量的语句没有被执行,原因是bashrc中第一句语句([ -z "$PS1" ] && return)会判断调用模式是否是交互式模式,如果是非交互式模式则直接退出,所以写在下面的语句都没有被执行,解决方法有两个


1.是把设置JAVA_HOME的语句写在bashrc文件的最前面


2.是修改etc/hadoop/hadoop-evn.sh中的export JAVA_HOME=${JAVA_HOME},不要使用系统的环境变量赋值,直接改成绝对路径


修改完后再次启动成功


使用jps会看到所有的进程


3536 ResourceManager

3116 DataNode

2900 NameNode

3378 SecondaryNameNode

3755 NodeManager

2168 Jps

使用hadoop fs -ls 查看文件系统的时候会遇到报错


WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable


原因是缺少libhadoop.so文件


在src目录或者hadoop-common子项目中重新build,命令:mvn package -DskipTests -Pdist,native,docs -Dtar


再次遇到报错[ERROR] class file for org.mortbay.component.AbstractLifeCycle not found


这次是遇到BUG了按照 https://issues.apache.org/jira/browse/HADOOP-10110官方说明在hadoop-common-project/hadoop-auth/pom.xml文件中添加


  1. <dependency>  
  2.    <groupId>org.mortbay.jetty</groupId>  
  3.    <artifactId>jetty-util</artifactId>  
  4.    <scope>test</scope>  
  5. </dependency>
复制代码

再次编译遇到报错Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (make) on project hadoop-common:
这是没有安装zlib1g-dev的关系,这个可以 使用apt-get安装

最后把生成的.so文件全部拷贝到lib/native/目录下,再次运行hadoop fs -ls没有报错信息
 

 

 

<think>我们正在阿里云2核4G服务器上搭建伪分布式CDH 6.3.2环境。由于资源有限,需要特别注意资源配置优化。以下是详细步骤: ### 一、环境准备 1. **服务器规格** - 阿里云ECS实例:2 vCPU, 4 GiB内存 - 操作系统:**CentOS 7.9**(最小化安装)[^3] - 磁盘:40GB系统盘 + 100GB数据盘(挂载至`/data`) 2. **基础配置** ```bash # 关闭防火墙 systemctl stop firewalld && systemctl disable firewalld # 禁用SELinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0 # 配置主机名解析 echo "127.0.0.1 hadoop01" >> /etc/hosts hostnamectl set-hostname hadoop01 ``` 3. **磁盘格式化** ```bash # 格式化数据盘(假设为/dev/vdb) mkfs.xfs /dev/vdb mkdir -p /data/{dfs,nn,dn,yarn} mount /dev/vdb /data echo "/dev/vdb /data xfs defaults 0 0" >> /etc/fstab ``` --- ### 二、安装CDH 6.3.2 1. **下载Parcel** ```bash mkdir -p /opt/cloudera/parcel-repo cd /opt/cloudera/parcel-repo # 下载主Parcel(CentOS 7) wget https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel wget https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha # 重命名 # 下载manifest.json wget https://archive.cloudera.com/cdh6/6.3.2/parcels/manifest.json ``` 2. **安装Cloudera Manager(简化版)** 由于资源限制,我们使用Cloudera Manager的**单节点嵌入式模式**: ```bash wget https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm wget https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm wget https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm # 安装依赖 yum install -y java-1.8.0-openjdk-devel mysql-connector-java # 安装RPM包 rpm -ivh cloudera-manager-daemons-6.3.1*.rpm rpm -ivh cloudera-manager-agent-6.3.1*.rpm rpm -ivh cloudera-manager-server-6.3.1*.rpm ``` --- ### 三、配置伪分布式集群 1. **内存优化配置(关键!)** 在2核4G环境下,需严格限制内存使用: | 服务 | 最大堆内存 | 配置路径 | |------------|------------|------------------------------| | **NameNode** | 512 MB | HDFS配置 → Java堆栈大小 | | **DataNode** | 256 MB | DataNode高级配置 | | **NodeManager** | 384 MB | YARN配置 → 容器内存 | | **ResourceManager** | 384 MB | ResourceManager高级配置 | > **注意**:剩余内存留给操作系统和Cloudera Manager进程 2. **HDFS配置** - NameNode数据目录:`/data/nn` - DataNode数据目录:`/data/dn` ```xml <!-- hdfs-site.xml --> <property> <name>dfs.replication</name> <value>1</value> <!-- 伪分布式设为1 --> </property> ``` 3. **YARN配置** ```xml <!-- yarn-site.xml --> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>1024</value> <!-- 总可用内存1GB --> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>256</value> <!-- 最小容器内存256MB --> </property> ``` --- ### 四、启动集群 1. **初始化数据库(嵌入式PostgreSQL)** ```bash /opt/cloudera/cm/schema/scm_prepare_database.sh postgresql scm scm scm_password ``` 2. **启动Cloudera Manager** ```bash systemctl start cloudera-scm-server systemctl start cloudera-scm-agent ``` 3. **通过Web UI部署** 访问 `http://<阿里云公网IP>:7180`,按向导操作: - 选择 **"Parcel"** → 本地存储库路径:`file:///opt/cloudera/parcel-repo` - 集群模板选择:**"单节点伪分布式"** - 应用步骤三的优化配置 --- ### 五、验证安装 1. **检查服务状态** ```bash # 所有服务应显示正常 hdfs dfsadmin -report yarn node -list ``` 2. **运行测试任务** ```bash hadoop jar /opt/cloudera/parcels/CDH/jars/hadoop-mapreduce-examples-*.jar pi 2 10 ``` > **资源不足时的应急方案**: > 若内存溢出,可临时添加1GB交换空间: > ```bash > dd if=/dev/zero of=/swapfile bs=1M count=1024 > mkswap /swapfile && swapon /swapfile > ``` --- ### 相关问题 1. 如何调整HDFS的块大小以适应小规模环境? 2. 伪分布式模式下如何启用Hive? 3. 如何监控CDH 6.3.2的资源使用情况? 4. 阿里云安全组需要开放哪些端口? 5. 如何备份伪分布式集群的元数据? [^1]: How To Install Apache Hadoop Pseudo Distributed Mode [^2]: CDH 6.2.1版本验证示例 [^3]: CDH5.14配置分发操作 [^4]: CDH5.15单机安装路径 [^5]: DolphinScheduler下载地址</think>### 阿里云2核4G服务器搭建伪分布式CDH 6.3.2指南 由于资源有限(2核4G),需精简配置。以下是关键步骤: --- ### 一、环境准备(关键优化) 1. **操作系统配置** ```bash # 关闭防火墙和SELinux systemctl stop firewalld && systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config # 配置主机名解析(伪分布式需映射到127.0.0.1) echo "127.0.0.1 hadoop01" >> /etc/hosts hostnamectl set-hostname hadoop01 ``` 2. **资源限制调整**(防止OOM) ```bash # 增大最大进程数和文件描述符限制 echo "* soft nproc 65535" >> /etc/security/limits.conf echo "* hard nofile 65535" >> /etc/security/limits.conf ``` 3. **磁盘优化** ```bash # 为HDFS单独挂载高性能云盘(推荐ESSD) mkfs.xfs /dev/vdb # 假设vdb是新数据盘 mkdir /data mount /dev/vdb /data ``` --- ### 二、CDH 6.3.2安装流程 1. **下载必要组件** ```bash # CDH Parcel(核心组件) wget https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel # Cloudera Manager(管理工具) wget https://archive.cloudera.com/cm6/6.3.1/cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm ``` 2. **Java环境配置** ```bash yum install -y java-1.8.0-openjdk-devel echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0" >> /etc/profile ``` 3. **安装Cloudera Manager** ```bash # 安装嵌入式PostgreSQL(轻量级数据库) yum install -y postgresql-server postgresql-setup initdb # 安装CM Agent rpm -ivh cloudera-manager-agent-*.rpm ``` --- ### 三、伪分布式关键配置 1. **HDFS配置** (`hdfs-site.xml`) ```xml <configuration> <!-- 单节点复用本地目录 --> <property> <name>dfs.namenode.name.dir</name> <value>file:///data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///data/datanode</value> </property> <!-- 关闭副本冗余 --> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> ``` 2. **YARN配置** (`yarn-site.xml`) ```xml <configuration> <!-- 严格控制内存使用 --> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>3072</value> <!-- 保留1GB给系统 --> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>512</value> <!-- 最小容器内存 --> </property> </configuration> ``` 3. **MapReduce配置** (`mapred-site.xml`) ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!-- 限制Map任务内存 --> <property> <name>mapreduce.map.memory.mb</name> <value>512</value> </property> </configuration> ``` --- ### 四、启动与验证 1. **格式化HDFS** ```bash hdfs namenode -format ``` 2. **启动所有服务** ```bash # 启动HDFS start-dfs.sh # 启动YARN start-yarn.sh ``` 3. **资源验证** ```bash # 检查节点状态 hdfs dfsadmin -report # 运行测试任务 hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 2 10 ``` --- ### 五、资源节省技巧 1. **禁用非必要服务** ```bash # 在Cloudera Manager中关闭: - HBase - Impala - Oozie ``` 2. **配置Linux SWAP**(防OOM) ```bash # 添加2GB交换空间 dd if=/dev/zero of=/swapfile bs=1M count=2048 mkswap /swapfile swapon /swapfile ``` --- ### 相关问题 1. 如何监控CDH 6.3.2的资源使用情况? 2. 伪分布式环境下如何调试YARN任务失败? 3. CDH 6.3.2与Apache Hadoop 3.x的兼容性差异? 4. 如何为CDH 6.3.2配置TLS/SSL加密? 5. 小内存环境下Hive的最佳配置参数是什么? > **注意**:2核4G环境仅适合开发测试,生产环境需至少8GB内存[^2][^4]。若安装失败,检查`/var/log/cloudera-manager-installer`日志定位问题。 [^1]: 伪分布式安装参考 [^2]: CDH 6.2.1版本验证 [^3]: 配置文件分发示例 [^4]: CDH单机部署路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值