hadoop伪分布式安装
准备工作
1.修改IP
yum -y install net-tools
cd /etc/sysconfig/network-scripts/ifcfg-eno***
2.修改主机名
使用root账户
------修改主机名称
hostnamectl --static set-hostname n1
3.----修改/etc/hosts
192.168.190.111 n1
安装
1.创建用户组和用户
groupadd hadoop
useradd -g hadoop hadoop
passwd hadoop
2.配置ssh无密码登录
切换到hadoop用户
su - hadoop
生成密钥
ssh-keygen -t rsa -P "" 执行后会在.ssh目录下生成id_rsa和id_rsa.pub两个文件
cd /home/hadoop/.ssh 进入.ssh目录,并将id_rsa.pub追加到authorized_keys文件中
cat id_rsa.pub >> authorized_keys --将id_rsp.pub里边的文件内容追加到 或者复制到 authorized_keys文件里边
chmod 600 authorized_keys -rw------- (600) -- 只有属主有读写权限。
测试是否可以登录
ssh localhost
执行后会提示输入 yes or no. 输入yes后
如果提示为最后一次登录时间 则表明ssh无密码登陆 配置成功了。
3.配置hadoop
3.1 检测安装的jdk,自己下载的jdk
检验系统原版本
java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.1) (rhel-1.45.1.11.1.el6-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
进一步查看JDK信息:
rpm -qa | grep java
tzdata-java-2012c-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64
卸载OpenJDK,执行以下操作:
rpm -e --nodeps tzdata-java-2012c-1.el6.noarch
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64
确认还有没有卸载干净 如果执行后下边什么都没有 证明卸载干净
rpm -qa | grep java
------------安装JDK 1.7
安装JDK
放在/usr/local/src下执行以下安装命令:
rpm -ivh jdk-7u79-linux-x64.rpm
默认会安装在/usr/java下
检查是否安装
java -version
显示:java version"1.7.0_80" ...表示成功
配置环境变量
vi /etc/profile
在最后加入以下几行:
JAVA_HOME=/usr/java/jdk1.7.0_80
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASS_PATH PATH
--生效
source /etc/profile
-------------centos 7修改 从中文 修改到英文
cat /etc/locale.conf
--修改成为英文
localectl set-locale LANG=en_US.UTF-8
--修改成为中文
localectl set-locale LANG=zh_CN.utf8
-------------
命令的几个常用方法如下:
查看当前配置
[root@localhost ~]# localectl status
------------------------
演示
----确认防火墙状态是否关闭
闭防火墙
# service iptables status //查看防火墙的状态
# service iptables stop //关闭防火墙
# chkconfig iptables --list //查看防火墙开机启动状态
# chkconfig iptables off //关闭防火墙开机启动
*systemctl start firewalld.service#启动firewall
*systemctl stop firewalld.service#停止firewall
*systemctl disable firewalld.service#禁止firewall开机启动
之前都是hadoop安装的准备工作
3.2
tar -zvxf hadoop-2.6.5.tar.gz
mkdir -p /usr/local/
mv /tmp/hadoop-2.6.5/ /usr/local/
cd /usr/local/
mv hadoop-2.6.5 hadoop
3.3 修改配置文件
3.3.1 vi /etc/profile
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=${HADOOP_INSTALL}/bin:${HADOOP_INSTALL}/sbin${PATH}
export HADOOP_MAPRED_HOME=${HADOOP_INSTALL}
export HADOOP_COMMON_HOME=${HADOOP_INSTALL}
export HADOOP_HDFS_HOME=${HADOOP_INSTALL}
export YARN_HOME=${HADOOP_INSTALLL}
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_INSTALL}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_INSTALL}/lib:${HADOOP_INSTALL}/lib/native"
3.3.2 设置hadoop-env.sh中的java环境变量
hadoop-env.sh该文件存放路径为:
/usr/local/hadoop/etc/hadoop/hadoop-env.sh
cd /usr/local/hadoop
vi ./etc/hadoop/hadoop-env.sh
export JAVA_HOME= {你的java环境变量} // /usr/java/jdk1.7.0_80
4.配置伪分布式
hadoop的配置文件主要有core-site.xml 、 hdfs-site.xml 、 yarn-site.xml 三个文件。
---这些文件存放在/usr/local/hadoop/etc/hadoop下
cd /usr/local/hadoop/etc/hadoop
--手动创建tmp文件夹
切换到hadoop用户
cd /usr/local/hadoop
mkdir tmp
cd /usr/local/hadoop/etc/hadoop
core-site.xml
<!--一定要配置 系统默认的缓存文件夹在每次重启后会被删除-->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> // 尽量写名,不要写localhost
</property>
</configuration>
-------vi hdfs-site.xml
切换hadoop用户
mkdir -p /usr/local/hadoop/dfs/name
mkdir -p /usr/local/hadoop/dfs/data
<!--这个属性节点是为了防止后面eclipse存在拒绝读写设置的 -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
--------vi yarn-site.xml
yarn-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
5. 若上面配置有错误,删除重新配置
接下来创建需要的文件夹
rm -rf /usr/local/hadoop/tmp
rm -rf /usr/local/hadoop/dfs
mkdir -p /usr/local/hadoop/tmp
mkdir -p /usr/local/hadoop/dfs/name
mkdir -p /usr/local/hadoop/dfs/data
配置完成
6. 运行
切换hadoop对象
cd /usr/local/hadoop/bin
首先格式化文件系统
/usr/local/hadoop/bin
./hdfs namenode -format
启动
./sbin/start-dfs.sh
./sbin/start-yarn.sh
或者
./sbin/start-all.sh
./sbin/stop-all.sh
如果不识别hadoop命令: 在vi ~/.bash_profile 中将jdk的环境变量写进去
---jps查看后台java进程是否存在 都存在证明配置成功 该命令在sbin下
namenode,datanode,resourcemanager,nodemanager,secondarynamenode
提示如下则表明成功了。
Starting namenodes on [localhost]
localhost: starting namenode, logging to /usr/opt/hadoop-2.6.0/logs/hadoop-hadoop-namenode-.out
localhost: starting datanode, logging to /usr/opt/hadoop-2.6.0/logs/hadoop-hadoop-datanode-.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/opt/hadoop-2.6.0/logs/hadoop-hadoop-secondarynamenode-.out
在hdfs中创建目录
bin/hdfs dfs -mkdir /x
这样就在hdfs中创建了一个目录x
5、向hdfs中放入文件
bin/hdfs dfs -put README.txt /x
上面的命令会把当前目录下的README.TXT放入hdfs的/x目录中,在web管理界面里也可以看到该文件
http://192.168.190.112:50070/
http://192.168.190.112:8088/
运行WordCount实例
----讲解在shell下执行 和在web图形化界面执行效果:
创建测试两侧文件file1.txt,file2.txt
vi file1.txt
welcome to hadoop
hello world!
vi file2.txt
hadoop hello
在HDFS上创建输入input输入目录:
hdfs dfs -mkdir /input
将file1.txt与file2.txt文件上传到HDFS的input目录
hdfs dfs -put file1.txt /input
hdfs dfs -put file2.txt /input
查看刚才上传的两个文件
hdfs dfs -put file2.txt /input
14/10/25 14:43:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
hdfs dfs -ls /input
14/10/25 14:43:43 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 2 items
-rw-r--r-- 1 hadoop supergroup 31 2014-10-25 14:43 /input/file1.txt
-rw-r--r-- 1 hadoop supergroup 13 2014-10-25 14:43 /input/file2.txt
执行hadoop自带的WordCount程序,统计单词数
进入/opt/hadoop-2.6.0/share/hadoop/mapreduce执行命令:
hadoop jar hadoop-mapreduce-examples-2.6.0.jar wordcount /input /output
执行没报错,查看运行结果:
hdfs dfs -ls /output/part-r-00000
14/10/25 14:54:04 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
ls: `/outputpart-r-00000': No such file or directory
hdfs dfs -cat /output/part-r-00000
14/10/25 14:54:30 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
hadoop 2
hello 2
to 1
welcome 1
world! 1
统计结果正确!
7.伪分布配置成功
----------------
退出安全模式
hadoop dfsadmin -safemode leave
hdfs启动:
namenode
datanode
secondarynode
yarn启动
resourcemanager
namenode 进程启动
hadoop伪分布式安装

最新推荐文章于 2025-03-11 21:17:16 发布
