1、下载所需要软件
Hadoop-0.20.2-cdh3u1.tar.gzhadoop
Oracle.com/otn-pub/Java/jdk/7/jdk-7-linux-x64.tar.gzjdk-bin
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/disk1ln -s /data/disk1 /disk1
mkdir -p /data/disk2ln -s /data/disk2 /disk2
mkdir -p /disk1/cloudera
mkdir -p /disk2/cloudera
5、修改/etc/hosts文件 加入各台机器ip->域名映射
暂定如下:
10.0.8.18namenode-c2.hadoop.cn
10.0.8.19datanode-1-c2.hadoop.cn
10.0.8.20datanode-2-c2.hadoop.cn
10.0.8.40sync-test.cn
3、软件安装
1、安装最新版本JDK
sudo chmod u+x jdk-7-linux-x64.rpm.bin
./jdk-7-linux-x64.rpm.bin
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权限