您的位置:首页 > 运维架构

hadoop集群环境部署之cloudera

2011-09-20 14:39 411 查看
1、下载所需要软件 http://archive.cloudera.com/cdh/3/hadoop-0.20.2-cdh3u1.tar.gz hadoop http://archive.cloudera.com/cdh/3/hbase-0.90.3-cdh3u1.tar.gz hbase http://archive.cloudera.com/cdh/3/hive-0.7.1-cdh3u1.tar.gz hive http://archive.cloudera.com/cdh/3/pig-0.8.1-cdh3u1.tar.gz pig http://archive.cloudera.com/cdh/3/sqoop-1.3.0-cdh3u1.tar.gz sqoop http://archive.cloudera.com/cdh/3/zookeeper-3.3.3-cdh3u1.tar.gz zookeeper
http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.tar.gz jdk-bin http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.rpm jdk-rpm

2、前期准备工作[以下步骤需要在集群中各个节点执行]
1、同步各台服务器之间的时间,使其一致,否则会发生不可预料的错误
  vi /etc/crontab 00 07 * * * root  /usr/sbin/ntpdate 60.28.210.10
2、服务器之间建立互信机制,实现ssh无密码互通 基本步骤就是ssh-keygen -d rsa/des 生成密钥对在机器之间拷贝
【这一步很重要】
3、修改系统文件打开限制
  默认系统文件读取限制是1024,由于集群读取数据超过这个限制,所以需要调整
  步骤:
sudo echo "*                soft    nofile          10240" >> /etc/security/limits.conf

sudo echo "*                hard    nofile          10240" >> /etc/security/limits.conf

4、创建相应的目录
  应用目录:
/usr/local/cloudera/*
  chown -R hadoop:hadoop /usr/local/cloudera 
  chmod ug+rwx /usr/local/cloudera
  数据目录:

  mkdir -p /data/disk1
ln -s /data/disk1 /disk1
  mkdir -p /data/disk2
ln -s /data/disk2 /disk2
 
  mkdir -p /disk1/cloudera

  mkdir -p /disk2/cloudera
5、修改/etc/hosts文件 加入各台机器ip->域名映射
  暂定如下:
10.0.8.18
namenode-c2.hadoop.cn
10.0.8.19
datanode-1-c2.hadoop.cn
10.0.8.20
datanode-2-c2.hadoop.cn
10.0.8.40
sync-test.cn

3、软件安装
1、安装最新版本JDK
sudo chmod u+x jdk-7-linux-x64.rpm.bin
./jdk-7-linux-x64.rpm.bin

如果是rmp包的话运行下面命令安装
rpm -ivh ./jdk-7-linux-x64.rpm

java默认安装在/usr/java/jdk1.7.0_/

2、hadoop安装
tar -zxvf hadoop-0.20.2-cdh3u1.tar.gz
mv hadoop-0.20.2-cdh3u1
/usr/local/cloudera/
3、hive安装
tar -zxvf hive-0.7.1-cdh3u1.tar.gz
mv hive-0.7.1-cdh3u1
/usr/local/cloudera/
4、hbase安装
tar -zxvf hbase-0.90.3-cdh3u1.tar.gz
mv hbase-0.90.3-cdh3u1
/usr/local/cloudera/
5、zookeeper安装
tar -zxvf zookeeper-3.3.3-cdh3u1.tar.gz
mv zookeeper-3.3.3-cdh3u1
/usr/local/cloudera/
6、sqoop安装
tar -zxvf sqoop-1.3.0-cdh3u1.tar.gz
mv sqoop-1.3.0-cdh3u1
/usr/local/cdh3u1/

修改/usr/local/cdh3u1/sqoop-1.3.0-cdh3u1/conf目录下配置文件
7、修改环境变量/etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0  #####更好的方法是:/usr/java/default
export CLASSPATH=.:$JAVA_HOME/lib
export CLOUDER_HOME=/usr/local/cloudera
export HADOOP_HOME=$CLOUDER_HOME/hadoop-0.20.2-cdh3u1
export HADOOP_CONF_DIR=$HADOOP_HOME/conf
export HBASE_HOME=$CLOUDER_HOME/hbase-0.90.1-cdh3u1
export ZOOKEEPER_HOME=$CLOUDER_HOME/zookeeper-3.3.3-cdh3u1
export HIVE_HOME=$CLOUDER_HOME/hive-0.7.0-cdh3u1
export SQOOP_HOME=$CLOUDER_HOME/sqoop-1.2.0-cdh3u1
export PATH=$SQOOP_HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:$HIVE_HOME/bin:$PATH

source /etc/profile

4、集群拷贝(远程拷贝scp)
scp -r /usr/local/cloudera/*
datanode-1-c2.hadoop.mathon.cn:/usr/local/cloudera
scp -r /usr/local/cloudera/*
datanode-2-c2.hadoop.mathon.cn:/usr/local/cloudera

5、配置环境
1、hadoop-conf
hadoop-env.sh

core-site.xml
hdfs-site.xml
mapred-site.xml
masters
slaves
log4j.properties

2、hive
hive-env.sh
hive-site.xml
3、hbase
hbase-env.sh
hbase-site.xml
regionservers
log4j.properties

4、zookeeper
zoo.cfg
指定dataDir目录和服务列表
log4j.properties

在配置的每个服务器列表的dataDir目录下面创建myid文件
添加服务器列表编号进myid文件中:如
server.0=namenode-c2.hadoop.maxthon.cn:2888:3888
server.1=datanode-1-c2.hadoop.maxthon.cn:2888:3888
echo 0>myid
echo 1>myid

6、集群启动测试
1、启动测试hadoop
hadoop namenode -format
bin/start-all.sh 如果环境变量已经添加 可以直接运行start-all.sh
jps查看进程是否都启动

hadoop dfsadmin -safemode get/leave
hadoop dfsadmin -report

hadoop测试
hadoop fs -rmr hdfs://namenode-c2.hadoop.maxthon.cn:9000/rand
hadoop jar ./hadoop-0.20.2-cdh3u1/hadoop-examples-0.20.2-cdh3u1.jar randomwriter -Dtest.randomwrite.bytes_per_map=400000000 /rand
hadoop jar ./hadoop-0.20.2-cdh3u1/hadoop-examples-0.20.2-cdh3u1.jar sort /rand rand-sort
2、启动zookeeper
bin/zkServer.sh start
注意:zoo.conf里面配置了几台服务器就要在几台服务器上启动zookeeper
jps查看进程是否启动
3、启动hbase
bin/start-hbase.sh
查看进程是否启动
4、启动hive
hive
show tables;

hwi
hive --service hwi&

【注意:】
hadoop集群启动过程:
hadoop --> zkServer --> hbase --> collector
hadoop关闭过程
collector --> hbase --> zkServer --> hadoop

zkServer配置的几台就需要在几台机器上进行停止
相应命令

start-hdfs.sh|start-mapred.sh|start-all.sh
zkServer.sh start
start-hbase.sh
start-collector.sh

stop-collector.sh
stop-hbase.sh
zkServer.sh stop
stop-mapred.sh|stop-hdfs.sh|stop-all.sh

【注:】如果需要将chukwa和hadoop用户分离,折中办法是将/chukwa目录修改为chukwa:hadoop权限

hadoop dfs -chown -R chukwa:hadoop /chukwa
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息