https://hadoop.apache.org/releases.html


# JDK安装:  https://abc.htmltoo.com/thread-46002.htm


#系统环境

IP

服务

角色

192.168.34.27

NameNode、SecondaryNameNode、ResourceManager

node1

192.168.34.28

DataNode、NodeManager

node2

192.168.34.29

DataNode、NodeManager


wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.4/hadoop-3.1.4.tar.gz

mkdir -p /opt/hadoop

tar -zxvf hadoop-3.1.4.tar.gz -C /opt/hadoop

vi /etc/profile

#java

JAVA_HOME=/usr/java/jdk1.8.0_181-amd64

#hadoop

export HADOOP_HOME=/opt/hadoop/hadoop-3.1.4

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile


---node1、node2、node3 三个节点都需要修改,重启生效

[root@node1 conf]# cat /etc/hostname   #设置hostname 需要重启机器

node1

[root@node1 hadoop]# cat /etc/hosts    #设置hosts

192.168.34.27  node1

192.168.34.28  node2

192.168.34.29  node3


---配置免密码登陆

ssh-keygen -t rsa      #生成公钥(四个回车就可以了)

ssh-copy-id node1      #将公钥拷贝到node1

ssh-copy-id node2      #将公钥拷贝到node2

ssh-copy-id node3      #将公钥拷贝到node3

-测试 ssh 无密登陆是否成功

 ssh node2

 ssh node3


---配置hadoop

vim  /opt/hadoop/hadoop-3.1.4/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64  #配置JAVA_HOME 环境变量


vim core-site.xml

<configuration>
<!-- 指定 namenode 的通信地址 默认 8020 端口 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1/</value>
    </property>
    <!-- 指定 hadoop 运行时产生文件的存储路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/mydata/hadoop/hadoop-3.1.4/tmp</value>
    </property>
</configuration>


vim  yarn-site.xml

#添加如下内容
<configuration>
    <!-- 指定ResourceManager的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
    </property>
    <!-- reducer取数据的方式是mapreduce_shuffle -->  
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>


vim workers

#默认是localhost 修改为本机hostname 如果是集群环境则需要配置多个即可但是多个机器需要免密码登录的
node2
node3


vim hdfs-site.xml

#添加如下内容
<configuration>
 <!-- namenode 上存储 hdfs 名字空间元数据-->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/mydata/hadoop/hadoop-3.1.4/namenode</value>
    </property>
    <!-- datanode 上数据块的物理存储位置-->  
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/mydata/hadoop/hadoop-3.1.4/datanode</value>
    </property>
    <!-- 设置 hdfs 副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
  <property>
    <name>dfs.http.address</name>
    <value>0.0.0.0:50070</value>
  </property>
</configuration>


vim mapred-site.xml

#添加如下内容
<configuration>
 <!-- 指定yarn运行-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=/mydata/hadoop/hadoop-3.1.4</value>
    </property>
    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=/mydata/hadoop/hadoop-3.1.4</value>
    </property>
    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=/mydata/hadoop/hadoop-3.1.4</value>
    </property>
</configuration>


vim  /opt/hadoop/hadoop-3.1.4/sbin/start-dfs.sh

vim  /opt/hadoop/hadoop-3.1.4/sbin/stop-dfs.sh

-添加如下内容
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root


vim   /opt/hadoop/hadoop-3.1.4/sbin/start-yarn.sh

vim   /opt/hadoop/hadoop-3.1.4/sbin/stop-yarn.sh

-添加如下内容
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root


scp -r /opt/hadoop root@node2:/opt/   #同步到node2节点配置文件

scp -r /opt/hadoop root@node3:/opt/   #同步到node2节点配置文件


# 启动hadoop


---启动 hadoop 之前在 master 上 format 名称节点

-先格式化

cd /mydata/hadoop/hadoop-3.1.4/bin

-出现Storage directory /opt/hadoop/hadoop-3.1.4/tmp/dfs/name has been successfully formatted.

-说明格式化成功

hdfs namenode -format   

cd /mydata/hadoop/hadoop-3.1.4/sbin

start-all.sh


---查看 hadoop 服务是否启动成功

-查看master节点

jps

17840 NameNode

24032 Jps

18105 SecondaryNameNode

18350 ResourceManager

-查看node2节点

jps

7762 DataNode

8003 Jps

7883 NodeManager

-查看node3节点

jps

26979 NodeManager

26858 DataNode

27101 Jps

-当 3 台节点分别出现这些 java 进程,则 hadoop 启动成功


# hdfs 常用的命令语句

-列出 hdfs 下的文件

hadoop dfs -ls

-列出 hdfs / 路径下的所有文件,文件夹  

hadoop dfs -ls -R /

-创建目录 /input

hadoop dfs -mkdir /input

-列出 hsfs 名为 input 的文件夹中的文件

hadoop dfs -ls input

-将 test.txt 上传到 hdfs 中

hadoop fs -put /home/binguner/Desktop/test.txt /input

-将 hsdf 中的 test.txt 文件保存到本地桌面文件夹

hadoop dfs -get /input/test.txt /home/binguenr/Desktop

-删除 hdfs 上的 test.txt 文件

hadoop dfs -rmr /input/test.txt

-查看 hdfs 下 input 文件夹中的内容

hadoop fs -cat input/*

-进入安全模式

hadoop dfsadmin –safemode enter

-退出安全模式

hadoop dfsadmin -safemode leave

-报告 hdfs 的基本统计情况

hadoop dfsadmin -report


# 运行 wordcount 示例

Wordcount 是 MapReduce 的示例程序,可以统计某个文件中,各个单词出现的次数。

-在 hdfs 文件系统中创建存放被测试文件的目录 input

hadoop fs -mkdir /input

-查看 input 目录是否创建成功

hadoop fs -ls -R /

-创建测试文件 test.txt 并上传到 hdfs 中

vim  /opt/test.txt

#添加内容

hello world

hello hadoop

-将 test.txt 上传到 hdfs 中

hadoop fs -put /opt/test.txt /input


# 运行 wordcount 程序

hadoop jar /opt/hadoop/hadoop-3.1.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar wordcount /input /output

-日志信息出现则运行成功

INFO mapreduce.Job: Job job_1553342123652_0001 completed successfully

-/output/part-r-00000 里就是本次运行的结果

hadoop fs -cat /output/part-r-00000

hadoop  1

hello   2

world   1


# 页面访问

http://IP:50070/ #hdfs文件系统

http://IP:8088/cluster #hadoop 集群


# hadoop能做什么

 hadoop擅长日志分析,facebook就用Hive来进行日志分析,2009年时facebook就有非编程人员的30%的人使用HiveQL进行数据分析;淘宝搜索中    的 自定义筛选也使用的Hive;利用Pig还可以做高级的数据处理,包括Twitter、LinkedIn 上用于发现您可能认识的人,可以实现类似Amazon.com的协同过滤的推荐效果。淘宝的商品推荐也是!在Yahoo!的40%的Hadoop作业是用pig运行的,包括垃圾邮件的识别和过滤,还有用户特征建模。(2012年8月25新更新,天猫的推荐系统是hive,少量尝试mahout!)


# hadoop能为我公司做什么

• 零数据基础,零数据平台,一切起点都是0

• 日志处理

• 用户细分特征建模

• 个性化广告推荐

• 智能仪器推荐

•  一切以增加企业的商业价值为核心目的、最终目的



签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回