1.注意hadoop和hbase的版本兼容问题
目前测试用:hadoop 2.6.5 Hbase 1.1.2
2.创建hadoop用户
Sudo useradd –m hadoop –s /bin/bash
创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shel.
Sudo passwd hadoop
Sudo adduser hadoop sudo
3.更新apt
Sudo apt-get update
Sudo apt-get install vim
4.安装ssh,设置无密码登陆
Sudo apt-get install openssh-server
Ssh localhost
Exit
Cd ~/.ssh/
Ssh-keygen –t rsa
Cat ./id_rsa.pub >> ./authorized_keys
再使用ssh localhost就不需要密码
5.安装java环境
Sudo apt-get install default-jre default-jdk
vim ~/.bashrc
在文件前面添加export JAVA_HOME=/usr/lib/jvm/default-java
Source ~./bashrc
echo $JAVA_HOME
java -version
$JAVA_HOME/bin/java -version
6.安装hadoop
Sudo tar –zxf ~/下载/hadoop-2.6.5.tar.gz –C /usr/local
Cd /usr/local
Sudo mv ./hadoop-2.6.5/ ./hadoop
Sudo chown –R hadoop ./hadoop
Cd /usr/local/hadoop
./bin/hadoop version
7.Hadoop单机检测
Cd /usr/local/hadoop
Mkdir ./input
Cp ./etc/hadoop/*.xml ./input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/*
8.Hadoop伪分布式配置
Vim ./etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
Vim ./etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
配置完成后,执行namenode的格式化
./bin/hdfs namenode –format
如果此处失败,出现JAVA_HOME is not set and could not be found. 那么需要检查.bashrc文件中是否设置了JAVA_HOME。如果设置,就需要在/usr/local/hadoop/etc/hadoop/hadoop-env.sh,在里面找 到“export JAVA_HOME=${JAVA_HOME}”这行,然后,把它修改成JAVA安装路径的具体地址,比如,“export JAVA_HOME=/usr/lib/jvm/default-java”,然后,再次启动Hadoop。
开启:./sbin/start-dfs.sh
输入:jps 来验证是否成功开启
9.创建hdfs用户目录
Cd /usr/local/hadoop
./bin/hadoop fs –mkdir –p /user/hadoop
./bin/hadoop fs –ls. (这个.是hdfs用户当前目录,等价于./bin/hadoop fs –ls /user/hadoop)
./bin/hdfs dfs –mkdir input
(在创建个input目录时,采用了相对路径形式,实际上,这个input目录创建成功以后,它在HDFS中的完整路径是“/user/hadoop/input”。
./bin/hdfs dfs –mkdir /input
是在HDFS的根目录下创建一个名称为input的目录
10.Hdfs文件操作
本地文件系统上传到hdfs
.
/bin/hdfs dfs -put /home/hadoop/myLocalFile.txt input
./bin/hdfs dfs –ls input 查看是否成功上传
./bin/hdfs dfs –cat input/myLocalFile.txt
Hdfs下载到本地文件系统
./bin/hdfs dfs -get input/myLocalFile.txt /home/hadoop/下载
Hdfs的一个目录拷贝到hdfs的另一个目录
./bin/hdfs dfs -cp input/myLocalFile.txt /input
11.Hbase安装
sudo tar -zxf ~/下载/hbase-1.1.2-bin.tar.gz -C /usr/local
sudo mv /usr/local/hbase-1.1.2 /usr/local/hbase
vim ~/.bashrc
export PATH=$PATH:/usr/local/hbase/bin
source ~/.bashrc
cd /usr/local
sudo chown -R hadoop ./hbase
/usr/local/hbase/bin/hbase version
12.Hbase伪分布式配置
Vim /usr/local/hbase/conf/hbase-env.sh
添加:export JAVA_HOME=/usr/lib/jvm/default-java
export HBASE_CLASSPATH=/usr/local/hadoop/conf
export HBASE_MANAGES_ZK=true
vim /usr/local/hbase/conf/hbase-site.xml
设置:<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>
ssh localhost
cd /usr/local/hadoop
./sbin/start-dfs.sh
Jps
cd /usr/local/hbase
bin/start-hbase.sh
jps
bin/hbase shell
exit
bin/stop-hbase.sh
- 关闭hadoop:./sbin/stop-dfs.sh
- 访问hbase web管理页面 http://172.19.32.118:16010/
访问hdfs web管理页面http://172.19.32.118:50070/
- 解决namenode –format后,namenode正常启动但是datanode无法启动的问题。
找到namenode文件中的VERSION文件,复制文件中的clusterid 到datanode文件中的version文件的对应位置。
- Hdfs找hbase存储的数据和.snapshot文件。
./hadoop fs –ls /
./hadoop fs –ls /hbase
- Hbase数据迁移到本地
./bin/hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot tttt5 -copy-to file:///home/aa