Hadoop快速上手入门教程
- 环境
Linux系统或者装有linux系统的虚拟机
- 配置虚拟机NAT网络
- 安装jdk
- Hadoop伪分布式模式安装(一般都是这个安装模式)
4.1、创建一个hadoop的普通用户
命令:useradd hadoop
这个用户hadoop创建一个密码 passwd hadoop
我的密码是1235678(建议不要创建密码)
4.2、给用户hadoop sudo权限
命令:chmod +w /etc/sudoers 让sudoers可写
命令:vi /etc/sudoers 编辑文件
{
彻底解决权限问题
- 现在root里面,确保sudo可以用
如果连sudo命令都无法使用,记得下载
去除之前有问题的sudo :yum remove sudo
下载:yum install sudo
2、然后输入chmod +w /etc/sudoers
3、vi /etc/sudoers
4、在root下复制一行,把root改成你的另一个用户名
5、然后:wq保存
6、su Hadoop 你的另一个用户名
7、chmod -R 777 /文件夹名称
设置拥有所有权限,777代表所有的权限}
起初是以下这样的
在root ALL=(ALL) ALL下方输入我们新增的用户
Hadoop ALL=(root) NOPASSWD:ALL 这个代码的意思是hadoop用户有root权限并且不用验证密码的
添加好了以后,按esc,输入:wq退出。
4.3、切换到hadoop用户
命令:su hadoop
4.4、创建存放hadoop文件的目录
命令:sudo mkdir /opt/modules
4.5、将hadoop文件夹的所有者指定为hadoop用户
如果hadoop目录的所有者不是hadoop用户,那么运行的时候权限就会有问题。
命令是:sudo chown -R Hadoop:Hadoop /opt/modules
4.6、复制hadoop压缩包的/opt/modules下,
记住是hadoop-版本信息.tar.gz不是hadoop-src-版本信息.targz
后者需要编译才能运行,而且目录都不一样
4.7、解压这个hadoop-2.3.0.tar.gz压缩包
命令:tar -zxvf hadoop-2.3.0.tar.gz
4.8、查看当前目录下的文件 ls
4.9、配置hadoop环境变量
命令: vi /etc/profile
追加配置
export HADOOP_HOME="/opt/modules/hadoop-2.3.0"
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
然后保存
执行:source /etc/profile 使得配置生效
如果提示只读不能写,记得修改权限
{
复制一个会话
切换hadoop用户
命令:sudo chown -R hadoop:hadoop /etc
}没有提示就不需要进行{}里面的操作
4.10、执行 source /etc/profile 让配置生效,不然配置失败
4.11、然后输入echo $HADOOP_HOME 查看是否安装成功
返回/opt/modules/Hadoop-版本就是成功的
4.12、配置hadoop-env.sh、maperd-env.sh、yarm-env.sh文件的java_home参数
命令:vi ${HADOOP_HOME}/etc/Hadoop/Hadoop-env.sh
修改JAVA_HOME为你安装java的目录
4.13、配置core.site.xml文件
命令:vi ${HADOOP_HOME}/etc/hadoop/core-site.xml
查看主机名的命令:hostname
所有要配置的文件都在安装的conf文件夹下,注意hadoop1.X版本的默认端口是9000,hadoop2.X版本默认的端口是8020
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs:// localhost.localdomain:8020</value>
# localhost.localdomain为 主机名
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/tmp</value>
</property>
</configuration>
然后保存退出
4.14、由于hadoop.tmp.dir配置的是hadoop的临时目录,很多数据存储在这个目录下,一旦操作系统重启了,那么系统会清空/tmp下的东西。所以需要修改这个路径
4.14.1、创建临时目录 mkdir -p /opt/data/tmp
4.14.2、将临时目录的所有者设置为hadoop用户
命令是: chown -R Hadoop:Hadoop /opt/data/tmp
5、配置hdfs-site.xml文件
官网命令:vi ${HADOOP_HOME}/etc/Hadoop/hdfs-site.xml
dfs.replication 配置的是 HDFS存 储时的备份数量,因为这里是伪分布式环境只有一个节点,所以这里设置为1。
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
保存退出
6、cd 到/opt/modules/hadoop-2.3.0/etc/hadoop下
7、cp mapred-site.xml.template mapred-site.xml
因为是没有mapred-site.xml文件,需要复制修改的。
8、vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
9、vi yarn-site.xml
##其中localhost.localdomain是你的主机名,可以通过hostname查看
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost.localdomain</value>
</property>
<!—webapp是外部访问你的端口 -->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.209.236:8088</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
10、vi slaves
Localhost.localdomain #主机名
11、初始化HDFS
命令是: hdfs namenode -format
验证hdfs是否初始化成功,
查看 core-site.xml 里 hadoop.tmp.dir(本例是 /opt/data 目录)指定的目录下是否有了 dfs 目录,如果有,说明格式化成功。
查看/opt/data下是否有一下的文件夹
/opt/data/tmp/dfs/name/current
12、进入/opt/modules/hadoop-2.3.0/sbin下,
输入 start-all.sh命令
等结束以后,输入jps,
如果出现6个,就说明hadoop启动成功
外部验证是否可以访问:
我们在自己的windows电脑上面访问linux的ip与端口
我的是192.168.209.236
所以我訪問的是 htpp://192.168.209.236:8088
Hadoop的小测试:
13、HDFS上测试创建目录、上传、下载文件
13.1、HDFS上创建目录
${HADOOP_HOME}/bin/hdfs dfs -mkdir /demo1
13.2、上传本地文件到HDFSshang1
${HADOOP_HOME}/bin/hdfs dfs -put ${HADOOP_HOME}/etc/hadoop/core-site.xml /demo1
13.3、读取HDFS上的文件内容
${HADOOP_HOME}/bin/hdfs dfs -cat /demo1/core-site.xml
13.4、从HDFS上下载文件到本地
命令是:bin/hdfs dfs -get /demo1/core-site.xml