Linux目录结构:
mkdir software 存放软件安装包
mkdir app 存放软件安装目录
mkdir data 存放使用的数据
mkdir lib 存放开发过程中的jar包
mkdir shell 存放相关的脚本
mkdir maven_resp 存放maven依赖
hadoop环境搭建
使用的Hadoop相关版本: CDH
CDH相关软件包下载地址: http://archive.cloudera.com/cdh5/cdh/5
Hadoop使用版本: hadoop-2.6.0-cdh5.15.1
Hadoop下载:wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.15.1.tar
Hive使用版本: hive-1.0.0-cdh5.15.1
Hadoop/Hive/Spark相关框架的学习:
使用单机版足够
如果使用集群学习会导致: 从入门到放弃
使用Linux/Mac学习,一定不要使用Windows搭建Hadoop环境
Hadoop安装前置要求
Java 1.8+
ssh
安装Java
拷贝安装包到服务器: scp jdk-8u91-linux-x64.tar.gz hadoop@192.168.199.233: ~/software
解压到~/app: tar -zvxf jdk-8u91-linux-x64.tar.gz -C ~/app
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
source .bash_profile
echo .bash_profile
安装ssh无密码登录
ls
ls -a显示隐藏文件夹
ls -la
ssh localhost
ssh-keygen -t rsa
cd .ssh
ls
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
Hadoop(HDFS)安装
下载
解压:~/app
添加HADOOP_HOME/bin到系统环境变量
修改Hadoop配置
hadoop-env.sh
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_91
core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop000:8020</value>
</property>
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/app/tmp</value>
</property>
slaves
hadoop000
启动HDFS:
第一次执行的时候一定要格式化文件系统,不要重复执行: hdfs namenode -format
启动集群: $HADOOP_HOME/sbin/start-dfs.sh
2032 SecondaryNameNode
1776 NameNode
1858 DataNode
2135 Jps
http://http://192.168.101.130:50070
如果发现jps ok, 但是浏览器不ok? 十有八九是防火墙问题
centos7: firewall-cmd --state
centos6: service iptables status
永久关闭防火墙
centos7: systemctl stop filewall.service
centos6: chkconfig iptables off
start-dfs.sh 等于下面三个
./hadoop-daemon.sh start namenode
./hadoop-daemon.sh start datanode
./hadoop-daemon.sh start secondarynamenode
Hadoop软件包常见目录说明
bin: hadoop客户端名单
etc/hadoop: etc hadoop相关配置文件安装目录
sbin:启动hadoop相关进程的脚本
share:常用例子
HDFS命令行操作:
hadoop fs -ls /
hadoop fs -put
hadoop fs -copyFromLocal
hadoop fs -moveFromLocal
hadoop fs -cat
hadoop fs -text
hadoop fs -get
hadoop fs -cp
hadoop fs -mv
hadoop fs -mkdir
hadoop fs -getmerge
hadoop fs -rm
hadoop fs -rmr == hadoop fs -rm -r
HDFS存储扩展:
put: 1file ==> 1....n block ==>存放在不同的块上
get: 去nn上查找这个file对应的元数据信息
-rw-r--r--. 1 root root 15 May 27 06:31 blk_1073741828_1004.meta
-rw-r--r--. 1 root root 128M May 27 06:45 blk_1073741829
-rw-r--r--. 1 root root 1.1M May 27 06:45 blk_1073741829_1005.meta
-rw-r--r--. 1 root root 45M May 27 06:45 blk_1073741830
使用HDFS API的方式来操作HDFS文件系统
IDEA/Eclipse
Java
使用Maven来管理项目