Hadoop
- Zookeeper 分布式协作服务
- HBase 实时分布式数据库
- Hive 数据仓库
- Pig 数据流处理
- Mahout 数据挖掘库
- MapReduce 分布式计算框架
- HDFS 分布式文件系统
- Flume 日志收集工具
- Sqoop 数据库ETL工具Hadoop
Hadoop部署模式:
单机模式、伪分布模式、完全分布式模式
伪分布式安装
vim /etc/sysconfig/network //设置机器名
vim /etc/hosts //添加ip和对应的主机名
//关闭防火墙
service iptables status
chkconfig iptables off
//关闭SELinux
vim /etc/selinux/config
SELINUX=enforcing 改为SELINUX=disabled
//更新OpenSSL
yum update openssl
vim /etc/ssh/sshd_config
放开一下配置:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
service sshd restart
//生成私钥和公钥
ssk-keygen -t rsa
cp id_rsa.pub authorized_keys
chmod 400 authorized_keys
tar -xzvf tar
mkdir tmp
mkdir hdfs
mkdir hdfs/name
mkdir hdfs/data
cd hdfs/data
chmod -R 755 data
hadoop-env.sh
由于从1.x版本起,HADOOP_HOME环境变量由HADOOP_PREFIX这个环境变量替代,新版本已经用HADOOP_PREFIX这个环境变量替代HADOOP_HOME了。
使用export HADOOP_HOME_WARN_SUPPRESS=1屏蔽掉警告信息
export JAVA_HOME=jdk路径
export PATH=$PATHhadoop路径
export HADOOP_HOME_WARN_SUPPRESS=1
source hadoop-env.sh
hadoop version
/etc/profile
export HADOOP_HOME=hadoop路径
export PATH=$HADOOP/bin
core-site.xml
<configuration>
<property>
<name>fs.default.nane</name>
<value>hdfs://hadoop:9000</value>
</proprty>
<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop-1.1.2/tmp</value>
</proprty>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/app/hadoop-1.1.2/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/app/hadoop-1.1.2/hdfs/data</value>
</property>
</configuration>
mapred-sit.xml
<property>
<name>mapred.job.tracker</name>
<value>hadoop:9001</value>
</property>
vi masters 主节点
vi slaves 从节点
./hadoop namenode -format
./start-all.sh
./stop-all.sh
启动和停止haoop(不使用start-all.sh 和 stop-all.sh)
//start
//hdfs
./hadoop-daemons.sh start namenode
./hadoop-daemons.sh start datanode
./hadoop-daemons.sh start secondarynamenode
//mapreduce
./hadoop-daemons.sh start jobtracker
./hadoop-daemons.sh start tasktracker
//stop 顺序和start相反
....
执行jps
NameNode
DataNode
SecondaryNameNode
TaskTracker
JobTracker
Jps
可在浏览器中访问Web页面:
hadoop ip:8088 和 ip:50070
常用命令
删除hdfs文件夹
hadoop ls -rm dirPath
hadoop ls -rmr dirPath
查看hdfs文件夹
hadoop ls -ls dirPath
创建hdfs文件夹
hadoop ls -mkdir dirPath
查看hdfs文件
hadoop ls -cat dirPath/fileName
查看所有命令
hadoop fs
hadoop fs -help ls
执行文件
//hdfs创建文件
hadoop fs -mkdir -p /class5
//设置本地环境(hadoop-env.sh文件)
export HADOOP_PATH = //class的目录
//编译java文件
javac -classpath ../hadoop-core-1.1.2.jar:../../lib/commons-cli-1.2.jar 文件
//上传文件到hdfs
hadoop fs -copyFromLocal fileName.txt /class5/fileName.txt
或者:hadoop fs -put fileName.txt /class5/fileName.txt
hadoop fs -ls /class5
hadoop fs -ls -R /class5
//执行任务
hadoop classFileName arg[?]
//查看hdfs
hadoop fs -cat fileName.txt
MapReduce:
- map side join
- reduce side join
- semi join
执行MapReduce
- 编译java文件
- 打包jar
jar cvf ./jarFileName.jar ./classfilName.class
rm *.jar
zcat *.gz > fileName.txt //将gz文件合并成txt文件
3.运行程序:
hadoop jar jarFileName.jar jarFileName arg[?]