最近公司云主机可以申请使用了,搞了几台机器打算弄个小集群,便于调试目前使用的各个组件。本系列只是个人备忘使用,会怎么方便怎么来,并不一定是正常的ops操作方法。同时,因为专注点有限(目前主要是spark、storm),并不会将目前CDH的各个组件都完整都搭一遍,只是按照个人需要进行,然后会记录下来,备忘一下。
虽然看起来只是一个安装过程,可是我们仍然有必要了解现在的CDH的软件栈,下文围绕的CDH5.2.1版本。
选择CDH5.2.X的原因有几个:
1.集成了MR2,同时还向后兼容MR1,这样就可以使用YARN来调度;
2.集成了spark,这样可以充分利用HDFS、yarn的功能,配合起来应用,这个会是重要探究的地方
3.继承了Cloudera Search的功能,Search源自于apache solr,是一个值得关注的地方
以上提到的组件可以在这里下载:
http://www.cloudera.com/content/cloudera/en/documentation.html
目录:
零、安装准备
一、配置
二、单机启动
三、分发配置
四、测试集群功能
零、安装准备
在安装之前,常规检查及配置先搞好,这个比较简单,就是比较细碎,每一项都可以在网上找到资料,不赘述
1.防火墙
2.修改/etc/hosts
3.安装JDK及配置
4.打通ssh
etc...
搞定以上内容后,选择master操作,解压文件hadoop-2.5.0-cdh5.2.1.tar.gz
配置软链设置config路径
/apps/conf/hadoop_conf -> /apps/svr/hadoop/etc
一、配置
我们需要配置的conf在这里:/apps/conf/hadoop_conf/hadoop
详细如下:
-
conf/core-site.xml <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> conf/hdfs-site.xml <property> <name>dfs.namenode.name.dir</name> <value>file:///apps/dat/hard_disk/0/dfs/nn</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/apps/dat/hard_disk/0/dfs/dn</value> </property> conf/yarn-site.xml <property> <name>yarn.resourcemanager.address</name> <value>master:8032</value> </property> <property> <name>yarn.web-proxy.address</name> <value>master:8042</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8141</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> conf/slaves master slave1 conf/hadoop-env.sh export JAVA_HOME=/apps/svr/jdk6
二、启动
启动前需要针对HDFS进行格式化
bin/hdfs namenode
-format
格式化完成后,会在配置的NN路径下看到如下文件
[[email protected] hadoop]# ll /apps/dat/hard_disk/0/dfs/nn/
total 4
drwxr-xr-x 2 root root 4096 Dec 30 16:21 current
[[email protected] hadoop]# ll /apps/dat/hard_disk/0/dfs/nn/current/
total 16
-rw-r--r-- 1 root root 351 Dec 30 16:21 fsimage_0000000000000000000
-rw-r--r-- 1 root root 62 Dec 30 16:21 fsimage_0000000000000000000.md5
-rw-r--r-- 1 root root 2 Dec 30 16:21 seen_txid
-rw-r--r-- 1 root root 200 Dec 30 16:21 VERSION
配置完成可以现在master上进行单机测试
启动dfs:
[[email protected] sbin]# ./start-dfs.sh
启动yarn
sbin/start-yarn.sh
三、分发配置
确认单机启动无误后,将配置文件及配置进行分发
--检查发生更改的文件,以作分发使用
[[email protected] hadoop]# ls -alt
total 152
drwxr-xr-x 2 1106 592 4096 Dec 30 17:26 .
-rw-r--r-- 1 1106 592 21 Dec 30 17:26 slaves
-rw-r--r-- 1 1106 592 3484 Dec 30 17:01 hadoop-env.sh
-rw-r--r-- 1 1106 592 4567 Dec 30 16:59 yarn-env.sh
-rw-r--r-- 1 1106 592 1197 Dec 30 16:18 yarn-site.xml
-rw-r--r-- 1 1106 592 997 Dec 30 16:15 hdfs-site.xml
-rw-r--r-- 1 1106 592 863 Dec 30 16:11 core-site.xml
查看master创建的新目录操作
[[email protected] sbin]# history |grep "mkdir -p"
556 mkdir -p /apps/dat/hard_disk/0/dfs/dn
575 mkdir -p /apps/logs/hadoop
689 mkdir -p /apps/dat/hard_disk/0/dfs/nn
到datanode节点上,进行解压、创建配置路径、scp 配置文件
tar xvzf hadoop-2.5.0-cdh5.2.1.tar.gz && ln -s hadoop-2.5.0-cdh5.2.1 hadoop
ln -s /apps/svr/hadoop/etc /apps/conf/hadoop_conf
scp slaves hadoop-env.sh yarn-env.sh yarn-site.xml hdfs-site.xml core-site.xml [email protected]:/apps/conf/hadoop_conf/hadoop
部署完成后,在master节点启动
sbin/start-all.sh
四、测试集群功能
测试HDFS功能及MR2的功能
bin/hdfs dfs -put etc/hadoop
/tony
bin/hadoop jar share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.5.0-cdh5.2.1.jar grep /tony/hadoop /tony/test-mr2 ‘dfs[a-z.]+‘
[[email protected] hadoop]# hadoop fs -cat /tony/test-mr2/part-r-00000
14/12/31 16:16:56 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
6 dfs.audit.logger
4 dfs.class
3 dfs.server.namenode.
2 dfs.period
2 dfs.audit.log.maxfilesize
2 dfs.audit.log.maxbackupindex
1 dfsmetrics.log
1 dfsadmin
1 dfs.servers
1 dfs.namenode.name.dir
1 dfs.file
1 dfs.datanode.data.dir
Yarn: http://master:8080
NN: http://master:50070
到这里,hadoop集群的基础服务就可以使用了