引言
公司有搭建大数据平台,为了让java能访问大数据平台,本人先在测试环境上自行搭建了一个单机版的hadoop,研究java和hbase之间的jdbc连接。
参考网站
1.大数据开发入门之hadoop单机版部署
2.hadoop单机安装,小白上手最详细教程-Ali0th
3.hadoop 3.1.2 单机模式安装配置
下载地址
正式安装
1. java安装
jdk的安装与配置这里不叙述了,网上随便百度一下就有。
2. hadoop的下载
2.1 下载地址参考上面的链接,下载命令:
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz -O /usr/local/hadoop/hadoop-3.1.3.tar.gz
若是报出目录不存在,请先自行创建目的地址。下载完成后解压缩。
tar -zxvf hadoop-3.1.3.tar.gz
2.2配置hadoop启动项
vim /etc/profile.d/hadoop.sh
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
3. 创建hadoop用户
用户查看
cut -d : -f 1 /etc/passwd
用户组查看
cut -d : -f 1 /etc/group
新建用户
adduser #{name}
adduser hadoop
设置密码
passwd #{name}
passwd hadoop
新建用户组
groupadd #{gname}
groupadd hadoop
用户加到用户组
usermod -G #{gname} #{name}
usermod -G hadoop hadoop
删除用户
userdel -rf #{name}
删除用户组
groupdel #{gname}
查看用户情况
id #{name}
id hadoop
4. 创建hadoop文件目录并授权
mkdir -p /home/hadoop/tmp # hadoop临时文件目录
mkdir -p /home/hadoop/hdfs/name # hadoop主节点(namenode)文件目录
mkdir -p /home/hadoop/hdfs/data # hadoop数据节点(datanode)文件目录
mkdir -p /home/hadoop/log # hadoop日志文件目录
sudo chown -R hadoop /home/hadoop # 设置hadoop文件目录所有者
[注]下面的描述,如果没有写明全目录,表示都是基于此目录下的
/usr/local/hadoop/hadoop-3.1.3/
5. 修改hadoop配置文件
hadoop的配置文件都在 etc/hadoop 目录下,配置文件有很多,最基本要修改3个文件:hadoop-env.sh ,core-site.xml,hdfs-site.xml。
5.1 hadoop-env.sh:
export JAVA_HOME=/opt/java/jdk1.8.0_151 # 修改JAVA_HOME环境变量为JDK的安装路径。
5.2 core-site.xml:
设置hdfs的监听端口(一般配置为9000,我改为了9001,因为和已有的配置冲突)。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9001</value>
<description>hdfs内部通讯访问地址</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
<description>hadoop数据存放</description>
</property>
</configuration>
5.3 hdfs-site.xml:
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
6. 设置SSH免密访问本地
需要用前面创建的hadoop用户通过ssh免密访问本地,先切换到hadoop用户目录下,执行以下命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
测试是否成功,执行下面命令,若不用输入密码则成功。
ssh localhost
若创建的时候发现 ~/.ssh文件目录不存在,则切换成root创建一下ssh登录再重新回到hadoop用户创建即可。
ssh localhost
7. 启动hadoop
7.1 格式化hadoop文件系统
./bin/hdfs namenode -format
7.2 一键启动
./sbin/start-all.sh
输入jps:
hadoop@www:~$ jps
17761 NameNode
17889 DataNode
18083 SecondaryNameNode
18532 NodeManager
22474 Jps
18399 ResourceManager
可以看到namenode、secondarynamenode、datanode、nodemanager、resourcemanager这三个服务已经启动。
7.3 检验
输入命令 ,没有报错,则hadoop单机版安装成功。
bin/hadoop fs -ls /
在网页上可以访问 http://ip:9870/
若是在7.1 格式化的时候出现namenode 主机名错误,可以尝试下列修改
修改对应的host地址
1.vim /etc/hosts
2.vim /etc/sysconfig/network
重启网络 /etc/rc.d/init.d/network restart
8.hadoop相关的端口和命令
8.1 参考网址
8.2 hadoop3的新端口
分类 | 应用 | Haddop 2.x port | Haddop 3 port |
---|---|---|---|
NNPorts | Namenode | 8020 | 9820 |
NNPorts | NN HTTP UI | 50070 | 9870 |
NNPorts | NN HTTPS UI | 50470 | 9871 |
SNN ports | SNN HTTP | 50091 | 9869 |
SNN ports | SNN HTTP UI | 50090 | 9868 |
DN ports | DN IPC | 50020 | 9867 |
DN ports | DN | 50010 | 9866 |
DN ports | DN HTTP UI | 50075 | 9864 |
DN ports | Namenode | 50475 | 9865 |
常用命令
Start-all.sh/Stop-all.sh # 开启关闭所有进程
Start-dfs.sh # 开启hdfs 进程
Start-yarn.sh # 开启yarn进程
Hadoop namenode –format # 对HDFS进行格式化
hadoop-daemon.sh start namenode # 单独启动namenode
hadoop-daemons.sh start datanode # 单独启动datanode
yarn-daemon.sh start resourcemanager # 启动resourcemanager
yarn-daemons.sh start nodemanager # 启动nodemanager
yarn-daemon.sh start proxyserver # 启动yarn日志代理服务
mr-jobhistory-daemon.sh start historyserver # 启动MR的jobhistory服务 历史服务器开启