本文是章鱼大数据的笔记,好吧,其实就是我复制粘贴过来的,不过亲测有效。老铁双击666,hadoop和jdk的安装包好像上传不了,大家可以上网百度一下hadoop的下载方法hadoop官网
jdk下载
我下载的是:jdk-8u241-linux-i586.tar.gz
首先来配置SSH免密码登陆
SSH免密码登陆需要在服务器执行以下命令,生成公钥和私钥对
ssh-keygen -t rsa
此时会有多处提醒输入在冒号后输入文本,这里主要是要求输入ssh密码以及密码的放置位置。在这里,只需要使用默认值,按回车即可。
ssh-keygen -t rsa
会出现
The key's randomart image is:
+--[ RSA 2048]----+
| .oo++.. o. |
| . .ooo....+. |
| +. . o. +. |
| . .. o = |
| ..S E |
| . + |
| . |
| |
| |
+-----------------+
此时ssh公钥和私钥已经生成完毕,且放置在/.ssh目录下。切换到/.ssh目录下
cd ~/.ssh
可以看到~/.ssh目录下的文件
下面在~/.ssh目录下,创建一个空文本,名为*authorized_keys
*
touch ~/.ssh/authorized_keys
将存储公钥文件的id_rsa.pub里的内容,追加到authorized_keys中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
下面执行ssh localhost测试ssh配置是否正确
ssh localhost
改命令可能无效,见我的另一篇文章
ssh:connect to host localhost port 22: Connection refuse解决
第一次使用ssh访问,会提醒是否继续连接,输入“yes"继续进行,执行完以后退出
exit
注销
Connection to localhost closed.
后续再执行ssh localhost时,就不用输入密码了
下面首先来创建两个目录,用于存放安装程序及数据。
sudo mkdir /apps
sudo mkdir /data
两个目录的作用分别为:/apps目录用来存放安装的框架,/data目录用来存放临时数据、HDFS数据、程序代码或脚本。
切换到根目录下,执行 ls -l 命令
cd /
4.配置HDFS。
将hadoop安装包和jdk安装包放在/apps目录下,
tar -zxvf 文件名
将解压后的文件分别命名为hadoop和java
cd /apps/
ls -l
6.下面来修改环境变量:系统环境变量或用户环境变量。我们在这里修改用户环境变量。
sudo vim ~/.bashrc
输入上面的命令,打开存储环境变量的文件。空几行,将java的环境变量,追加进用户环境变量中。
#java
export JAVA_HOME=/apps/java
export PATH=$JAVA_HOME/bin:$PATH
输入Esc, 进入vim命令模式,输入 :wq !进行保存。
让环境变量生效。
source ~/.bashrc
执行source命令,让java环境变量生效。执行完毕后,可以输入java,来测试环境变量是否配置正确。如果出现下面界面,则正常运行。
java
$ java
用法: java [-options] class [args...]
(执行类)
或 java [-options] -jar jarfile [args...]
(执行 jar 文件)
其中选项包括:
-d32 使用 32 位数据模型 (如果可用)
-d64 使用 64 位数据模型 (如果可用)
-server 选择 "server" VM
默认 VM 是 server,
因为您是在服务器类计算机上运行。
-cp <目录和 zip/jar 文件的类搜索路径>
-classpath <目录和 zip/jar 文件的类搜索路径>
用 : 分隔的目录, JAR 档案
和 ZIP 档案列表, 用于搜索类文件。
-D<名称>=<值>
设置系统属性
-verbose:[class|gc|jni]
启用详细输出
-version 输出产品版本并退出
-version:<值>
需要指定的版本才能运行
-showversion 输出产品版本并继续
-jre-restrict-search | -no-jre-restrict-search
在版本搜索中包括/排除用户专用 JRE
-? -help 输出此帮助消息
-X 输出非标准选项的帮助
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
按指定的粒度启用断言
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
禁用具有指定粒度的断言
-esa | -enablesystemassertions
启用系统断言
-dsa | -disablesystemassertions
禁用系统断言
-agentlib:<libname>[=<选项>]
加载本机代理库 <libname>, 例如 -agentlib:hprof
另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
-agentpath:<pathname>[=<选项>]
按完整路径名加载本机代理库
-javaagent:<jarpath>[=<选项>]
加载 Java 编程语言代理, 请参阅 java.lang.instrument
-splash:<imagepath>
使用指定的图像显示启动屏幕
有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。
zhangyu@6ebe6fe49149:~$
8.修改用户环境变量,将hadoop的路径添加到path中。先打开用户环境变量文件。
sudo vim ~/.bashrc
将以下内容追加到环境变量~/.bashrc文件中。
#hadoop
export HADOOP_HOME=/apps/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
让环境变量生效。
source ~/.bashrc
验证hadoop环境变量配置是否正常
hadoop version
9.下面来修改hadoop本身相关的配置。首先切换到hadoop配置目录下。
cd /apps/hadoop/etc/hadoop
10.输入vim /apps/hadoop/etc/hadoop/hadoop-env.sh,打开hadoop-env.sh配置文件。
vim /apps/hadoop/etc/hadoop/hadoop-env.sh
将下面JAVA_HOME追加到hadoop-env.sh文件中。
export JAVA_HOME=/apps/java
11.输入vim /apps/hadoop/etc/hadoop/core-site.xml,打开core-site.xml配置文件。
vim /apps/hadoop/etc/hadoop/core-site.xml
添加下面配置到与标签之间。
<property>
<name>hadoop.tmp.dir</name>
<value>/data/tmp/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
这里有两项配置:
一项是hadoop.tmp.dir,配置hadoop处理过程中,临时文件的存储位置。这里的目录/data/tmp/hadoop/tmp需要提前创建。
mkdir -p /data/tmp/hadoop/tmp
另一项是fs.defaultFS,配置hadoop HDFS文件系统的地址。
12.输入vim /apps/hadoop/etc/hadoop/hdfs-site.xml,打开hdfs-site.xml配置文件。
vim /apps/hadoop/etc/hadoop/hdfs-site.xml
添加下面配置到与标签之间。
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/tmp/hadoop/hdfs/name</value>
</property>
:<property>
<name>dfs.datanode.data.dir</name>
<value>/data/tmp/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
配置项说明:
dfs.namenode.name.dir,配置元数据信息存储位置;
dfs.datanode.data.dir,配置具体数据存储位置;
dfs.replication,配置每个数据库备份数,由于目前我们使用1台节点,所以,设置为1,如果设置为2的话,运行会报错。
dfs.permissions.enabled,配置hdfs是否启用权限认证
另外/data/tmp/hadoop/hdfs路径,需要提前创建,所以我们需要执行
mkdir -p /data/tmp/hadoop/hdfs
13.输入vim /apps/hadoop/etc/hadoop/slaves,打开slaves配置文件。
vim /apps/hadoop/etc/hadoop/slaves
将集群中slave角色的节点的主机名,添加进slaves文件中。目前只有一台节点,所以slaves文件内容为:
localhost
14.下面格式化HDFS文件系统。执行:
hadoop namenode -format
15.切换目录到/apps/hadoop/sbin目录下。
cd /apps/hadoop/sbin/
16.启动hadoop的hdfs相关进程。
./start-dfs.sh
这里只会启动HDFS相关进程。
17.输入jps查看HDFS相关进程是否已经启动。
jps
我们可以看到相关进程,都已经启动。
18.下面可以再进一步验证HDFS运行状态。先在HDFS上创建一个目录。
hadoop fs -mkdir /myhadoop1
19.执行下面命令,查看目录是否创建成功。
hadoop fs -ls -R /
以上,便是HDFS安装过程。
20.下面来配置MapReduce相关配置。再次切换到hadoop配置文件目录
cd /apps/hadoop/etc/hadoop
21.下面将mapreduce的配置文件mapred-site.xml.template,重命名为mapred-site.xml。
mv /apps/hadoop/etc/hadoop/mapred-site.xml.template /apps/hadoop/etc/hadoop/mapred-site.xml
22.输入vim /apps/hadoop/etc/hadoop/mapred-site.xml,打开mapred-site.xml配置文件。
vim /apps/hadoop/etc/hadoop/mapred-site.xml
将mapreduce相关配置,添加到标签之间。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
这里指定mapreduce任务处理所使用的框架。
23.输入vim /apps/hadoop/etc/hadoop/yarn-site.xml,打开yarn-site.xml配置文件。
vim /apps/hadoop/etc/hadoop/yarn-site.xml
将yarn相关配置,添加到标签之间。
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
这里的配置是指定所用服务,默认为空。
24.下面来启动计算层面相关进程,切换到hadoop启动目录。
cd /apps/hadoop/sbin/
25.执行命令,启动yarn。
./start-yarn.sh
26.输入jps,查看当前运行的进程。
jps
27.执行测试。
切换到/apps/hadoop/share/hadoop/mapreduce目录下。
cd /apps/hadoop/share/hadoop/mapreduce
然后,在该目录下跑一个mapreduce程序,来检测一下hadoop是否能正常运行。
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.4.5.jar pi 3 3
因为刚刚装的双系统,没有截图,反正大家觉得差不多就行了